首页 > 其他 > 详细

《人月神话》,焦油坑与外科手术队伍

时间:2019-02-17 16:01:01      阅读:242      评论:0      收藏:0      [点我收藏+]

  人月神话作者将过去几十年的大型系统开发比作焦油坑,很多大型和强壮的动物在其中剧烈挣扎,他们中大多数开发出了可运行的系统,但是不得不承认只有极少数的项目满足了目标、进度和预算的要求。因为在各种团队中,无论是大型的或小型的,庞杂的或精炼的,一个接一个地淹没在了焦油坑中。


车库里生产的是什么

 在IT行业里,车库成为了传奇诞生地一般的存在,但人月神话的作者认为“两个程序员如何在经过改造的简陋车库中,编程超过大型团队工作量的重要程序”这种事是不存在的。作者在焦油坑章节强调了一个事实:并不是所有的产业化队伍都会被这专注的二人组合所替代,我们需要看产出的是什么,程序、编程产品、编程系统、编程系统产品完全不是同一个概念和层级。车库作业的程序员生产出来的只能说是程序,它本身是完整的,可以由作者在所开发的系统平台上运行,但如果吧平台上升一个层次,那它就是不完整的。

  所谓的编程产品,它可以被任何人运行、测试、修复和扩展的程序。它可以在多种操作系统平台上运行,供多套数据使用。要成为通用的编程产品,程序员必须按照普遍认可的风格来编写,特别是输入的范围和形式必须广泛地适用于所有可以合理使用的基本算法。接着,对程序进行彻底的测试,确保它的稳定性和可靠性,使其值得信赖。这就意味着必须准备、运行和记录详尽的测试用例库,用来检查输入的边界和范围。此外,要将程序提升为编程产品,还需要有完备的文档,每个人都可以加以使用、修复和扩展。经验数据表明,相同功能的编程产品的成本,至少是已调试的程序的成本的3倍。这就是车库程序员所生产不出来的东西(或是要废相当大的力气)。

  此外还有概念就是编程系统、编程系统产品,这个在我印象中就好像Windows系统或者像高级编程语言这类程序,他们有着各式各样的接口,在功能上能相互协作、具有规范的格式、可以进行交互的程序的集合,并且可以用来组装和搭建整个系统,要完成这个产品所经过的努力我很难想象得到,测试的范围、测试的用例都要足够且富余,测试工作将会非常耗时,因此相同功能的编程系统构件的成本至少是独立程序的3倍。如果系统有大量的组成单元,成本还会更高。

  这就是作者布鲁克斯最早认识到设计程序、开发软件的差别,这也就是为什么他把他过去几十年的大型系统的软件开发工作比作焦油坑——过于乐观而越陷越深。

外科手术队伍

  要说我最喜欢的章节,那就是这一节。一个团队需要什么?

  在开发小组中,最好和最查人员生产率比在10:1,在运行效率和空间上5:1惊人差距。如果一个200人的项目中,有25个最能干和最有开发经验的项目经理,那么开除剩下的175名程序员,让项目经理来编程开发。

  小型敏捷的中小型团队可以保持最高的效率,但对于大型软件系统却不得不投入更多的人力资源来换取进度的提前。一位首席程序员、类似于外科手术队伍的团队架构提供了一种方法——既能获得由少数头脑产生的产品完整性,又能得到多位协助人员的总体生产率,还彻底地减少了沟通的工作量。这就是一种具有效率的工作模式。

  对我来说,成为首席外科医生是我的理想,能在一个团队里成为顶梁柱会是我的目标,所以我会一直努力下去。

《人月神话》,焦油坑与外科手术队伍

原文:https://www.cnblogs.com/limitCM/p/10391461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!