软件工程网络15个人阅读作业2-提出问题
part one
p334 16.1.2 迷思之二:大家都喜欢创新
现在大众认为钻石很值钱,买的人也不少。钻石和石墨都是由碳原子组成,我们大胆设想一下,如果有人发明了一种在常温常压下能把石墨变成钻石的方法,可以廉价地生产大量的钻石,那么目前钻石产业链上的公司和从业人员,以及已经购买、储存了钻石的人们会有什么反应?他们会非常喜欢这个创新么?
……
可以看出,在算法和数据库领域,创新的想法一开始往往不被接受,而那些建立在前人基础上的“线性扩展”则往往有着更好的命运。而这些决定还是很有经验的期刊审稿人做出来的。
文中的反问“已经购买、储存了钻石的人们会非常喜欢这个创新么“,他们之所以会不喜欢,是因为损害了他们的利益,当钻石变成了廉价的大量的存在,也就不再有其超高的价值,而他们之前购买钻石所付出的大量的金钱也就不再值得了,所以他们才会排斥这样的创新。
我个人认为最富有创意和意义的钻石创新,是骨灰钻石。
骨灰钻石化学原理在于钻石的基本成分是碳,而人体含有18%的碳,火化后的骨灰含有2%的碳,可被提取制炼钻石。
被火化的人骨灰转变成“晶莹的钻石”,实现了让最亲爱的人“真正永垂不朽”之目的。
——参考资料骨灰钻石
但是,骨灰钻石的制作需要非常昂贵的费用,而且中国还未掌握这项技术。
当然,打造这样的“骨灰钻石”价格也不菲。最初的时候,制成0.25克拉的钻石,需要4000美元的工本费。如果要制作更大的钻石,譬如一克拉,那就得花上2.2万美元。不过,随着技术的成熟,现在,和上述克拉数相同的“钻石”,价格已分别降为2500美元和1.4万美元了。
——引用自骨灰钻石 缅怀永挂心头
所以,如果有人发明了一种在常温常压下能把骨灰变成钻石的方法,大家还会不喜欢这个创新吗?创新的出现往往产生利益相关的一系列事情,而大家往往第一考虑的都是自己的利益。
part two
p252 12.1.5 不让用户犯简单的错误
“不让用户犯简单的错误”(Fool Proof)的原则当然是大多数人都同意的,高明的设计能让操作者不需要花费格外注意力,也不需要经验与专业知识即可凭直觉完成正确的操作。
经常看到新闻报道,说司机把油门当成刹车踩,结果造成交通事故。那么在设计汽车时,为什么不能把刹车和油门分开呢?把又问当成刹车这对于司机来说就是一个非常简单的错误,但是为什么在汽车出现了一百年的今天油门和刹车放在一起的设计还一直沿用呢?
在突发事件时,大脑作出的应急反应(无意识的)就是向神经信号更密集的右脚发出肌肉发力的动作。这个动作是源于人类DNA中原始的“受惊逃跑”(人类保留了未进化动物祖先留下来的,遇到危险马上逃跑,因此下意识会向腿部发出信号)。
而未经驾驶训练的人和经过驾驶训练的人,在应激反应下存在“是否会把脚移动到刹车”的区别。因此,实验证明了刹车放在油门旁边的必要性,也强调了驾驶训练的重要性。
——引用自既然油门和刹车设计在一起容易出事,为什么不把它们分开设计?
在紧急情况下,油门刹车这个设计可以说是用户体验非常不好,但是因为这个与人类的天性相关,设计目前无法改进,所以至今踩错油门这样的简单错误还时有发生。驾驶训练非常重要,并不是“不需要经验与专业知识即可凭直觉完成正确的操作。”
part three
p42 2.1.3回归测试
所以,对于“回归测试”中的“回归”,我们可以将其理解为“回归到以前不正常的状态”。
回归测试最好要自动化,因为这样就可以对于每一个构建快速运行所有回归测试,以保证尽早发现问题。单元测试是回归测试的基础。
回归测试的自动化具体指的是什么?
我在这里找到了答案。
关于什么是自动化
James Bach 曾经在一篇博文提到,自动化测试这个名字是非常有误导性的。它让一般的人误以为就是测试完全被自动化了,就像一个自动的咖啡机一样,我只需要把杯子放在那里,按一个button就够了。James说更加准确的叫法应该是“工具辅助的测试”。当然他还有另一层意思,就是好的测试用例是没有办法100%被自动化的,测试人员的经验,逻辑判断和探索性的测试方法都不能被有效自动化。我非常同意这个观点。作为这个论断的补充和扩展,自动化应该是审视软件研发活动的每一个环节,去发现那些可以被工具化自动化的重复性活动,然后去实现。广义的自动化应该包括但不限于以下环节:
-测试环境的搭建和管理
-测试环境的检查,监控和报警
-测试代码的编译和测试构建
-测试代码的静态检查和报警
-测试用例的分发和执行
-测试结果的保存与管理
-测试报告的生成
-测试优先级的建议
——引用自自动化测试的意义在哪里?
part four
p146 7.2.6保持敏捷,预期和适应变化
软件工程,唯一不变的是变化。所以干脆别幻想客户的需求会在第一时刻很明确,然后保持不会变。要注意,我们是预期变化,不是期望变化。
预期变化和期望变化有什么区别?
预期:是对未来情况的估计。
期望:指人们对每样东西的提前勾画出的一种标准,达到了这个标准就是达到了期望值。
预期变化与期望变化最大的不同就在于,期望变化是有个标准,而这个标准一般情况下是不会变的,预期变化则是对用户需求的一种估计,而一般情况下用户的需求都是在运动中的,会变化的,所以要保持敏捷。
——参考资料 百度百科
part five
p277 13.2.11内部/外部公开测试(Alpha/Beta Test)
在开发软件的过程中,开发团队希望让用户直接接触到最新版本的软件,以便从用户那里收集反馈,这是开发团队会让特定的用户(Alpha/Beta 用户)使用正处在开发过程中的版本,用户会通过特定的反馈渠道(E-mail、BBS、微博等)与开发者讨论使用中发现的问题,等等。这种做法成功地让部分用户心甘情愿地替开发团队测试产品并提出反馈。
如果在公测阶段用户体验非常不好,这会不会导致正式版本上线后用户已经不再愿意使用该软件,即使问题已经修复?
我在网上没有找到相关这种问题的资料,我想可能是因为中国人太多,即使那些公测用户不愿意再使用,也只是很小很小的一部分,即使这部分用户流失也无伤大雅,因为还有基数庞大的中国网民。这就和广告宣传的力度有极大的关系了。