问题一:

在课本第二章2.12--好的单元测试的标准,我看到这一段文字:

  • 单元测试应该产生可重复,一致的结果。如果单元测试的结果是错的,那一定是程序出了问题,而且这个错误一定是可以重复的。

我觉得这句话很费解,为什么说单元测试结果是可重复的,重复指的是什么?代码测试在不同情况下可能会产生不同的结果,为什么又说单元测试结果是一致的呢?
我百度一下,网上几乎都是原文照写,并没有什么解释。希望作者指点!

问题二:

在第四章4.5.2--为什么要结对编程,有这样一段文字:

  • 在结对编程中,因为有随时的复审和交流,程序各个方面取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就会减少很多,程序的初始质量会高很多,这样会省下很多以后修改测试的时间。

据我了解学校在潜移默化中都是教导我们编程是一个人的活动(不然为什么每次上完编程实验课,老师都要求每个人交一份实验报告),原文的上一段也提出同样的疑问,所以这就导致大部分的学生无法理解为什么要结对编程。作者用驾驶员和领航员的搭档关系就让我明白了结对编程的重要性和可行性。但我有个疑问:如果说程序取决于一对程序员中各个水平较高的那一位,会不会导致高水平的程序员始终掌握着主动权,决定想法的实行和程序的编写,低水平的程序员觉得自己能力不够或认为自己的想法不够好甚至觉得有没有自己都无所谓,最终结果是高水平的程序员做了几乎全部的工作,低水平的程序员无所事事?所以想参与结对编程的人该怎么去选择“另一半”(以什么标准选择)?

问题三:

  • 第六章的敏捷开发原则,其中一条是以有进取心的人为项目核心,充分支持信任他们。

这里说要充分信任支持有进取心的人,是否跟前文的结对编程的两人平等有冲突?是否跟团队合作的分工有冲突?

问题四:

  • 第16章16.1.4创新者都是一马当先,文中提到大部分行业的先行者并非后来市场的领导者,例如互联网的搜索引擎的先行者是Excite,而领导者是Goole;个人电脑的先行者是Altair,而领导者是Dell,HP,Lenovo;等等。

既然大部分成功者都不是先行者,那是否可以说明我们没必要做创新的领头羊,也就是说没必要那么积极做出创新,而是等先行者做出创新后,我们再跟进并发展壮大?

问题五:

  • 第16章16.1.5要成为领域的专家,才能创新,文中举了一个例子:
    索尼公司在大型收录机领域取得成功后,其创始人盛田招夫有“随身听”的想法,但公司专家们做了多次市场调查证明随身听没有市场。盛田坚持己见,强迫推出随声听这个新产品,最终开辟一个新市场。

这里也说到多次市场调查都证明随身听没有市场,但随身听上市后却取得成功。说明民众开始对创新是持反对意见的,但了解了创新的好处后又可能会接受创新。既然这样,那我们还有必要做需求分析吗?

【附加题】:请将问题提交至豆瓣:https://book.douban.com/subject/27069503/, 并在博客中给出链接

读书笔记链接https://book.douban.com/annotation/54372850/