第一章-焦油坑。焦油坑是作者用来形容大型系统开发的一个概念。史前时代,恐龙、猛犸象、剑齿虎这些大型食肉动物碰到焦油坑也是没有办法挣脱的,而且越用力就越容易被沉入坑底。这种场景就像极了大型系统开发的工作。基本上一个大型的编程系统产品的开发成本会是单个的简单程序的9倍。这里的编程系统产品是指的由很多编程程序以及系统组合而成的可交互、协作的程序集合。我们每个人都应清晰的认识到这样一种非线性关系,认识到真正的大型编程系统产品并不是简单程序的简单堆叠。这也就是所谓的“焦油坑”。既然是明知是焦油坑,那我们为什么要跳进去呢?因为软件开发有其独有的的乐趣。比如创建事物的快乐、开发对其他人有用的东西的乐趣、面对不重复的任务不断学习的乐趣。
第二章-人月神话。在软件项目中我们往往用人月这个指标在衡量项目的工作量。但是人月这个指标实际上是一个危险的带有欺骗性的神话。它暗示着人员数量和时间是可以互相替换的。只有在将任务分解给参与人员后他们之间不需要互相交流的情况下,人数和时间才是可以互换的。简单来说就是,3个人要干3个月的事情不是说安排9个人就能1个月干完了。看到作者有一个很有意思的结论:在进度落后的项目中增加人手的做法,往往只会使进度更加落后。但现实是一旦发现进度落后很多,除了增加人手,很难有更有效的办法来解决这个问题。当然了,走到这一步确实本身也是因为前面的计划有严重问题。
第三章-外科手术队伍。面对软件项目的“焦油坑”以及“人月神话”,作者给出的一个解决办法是——“外科手术队伍”。分别是外科医生、管理员及其文秘、编辑及其文秘、副手、程序职员、工具维护人员、测试人员和语言专家。有研究表明,同样有两年经验而且受到同样培训的情况下,优秀的专业程序员的生产率是较差程序员的10倍。在软件项目中,一个小型的、精干的队伍是最好的,这样既减少了沟通成本,又提高了生产率。但是对于真正意义上的大型系统来说,小型精干的队伍往往意味着太慢。这就是矛盾的所在,对于效率和概念的完整性来说,最好由少数精干的人员来设计和开发,而对于大型系统来说,则需要大量的人手,以使产品能在时间是满足市场的需求。
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/267642.html