人月神话阅读笔记01

  本篇阅读笔记是我对于《人月神话》一书中中关于团队扩建的感悟。

  开发团队在很多方面满足了迫切性的需要。十个人,其中七个专业人士在解决问题,而系统是一一个人或者最多两个人思考的产物,因此客观上达到了概念的一致性。要特别注意传统的两人队伍与外科医生副手队伍架构之间的区别。首先,传统的团队将工作进行划分,每人负责部分工作的设计和实现。在外科手术团队中,外科医生和副手都了解所有的设计和全部的代码。这节省了空间分配、磁盘访问等的劳动量,同时也确保了工作概念上的完整性。

  如果整个作能控制在范围之内,10人的团队无论如何组织,总是比较高效的。但是,当我们需要面对几百人参与的大型任务时,如何应用外科手术团队的概念呢?

  扩建过程的成功依赖于这样一个事实,即每个部分的概念完整性得到了彻底的提高——决定设计的人员是原来的七分之一或更少。 所以,可以让200人去解决问题,而仅仅需要协调20个人,即那些“外科医生”的思路。

  对于协调的问题,还是需要使用分解的技术。在这里,可以认为整个系统必须具备概念上的完整性,要有一个系统结构师从上至下地进行所有的设计。要使工作易于管理,必须清晰地划分体系结构设计和实现之间的界线,系统结构师必须一丝不苟地专注于体系结构。总的说来,上述的角色分工和技术是可行的,在实际工作中,具有非常高的效率。这与我之前看到的程序员修炼之道一书中所讲述的“注重实效的程序员”的概念不谋而合,所以效率永远是程序员要学习的东西。

  在程序员工作中,被打断是破坏程序员生产力的罪魁祸首。程序员在被打断后一般不能做到立刻重新开始编程。被打断之后继续编程通常程序员需要重新看一遍代码,才能进入到编程的思维环境中,才能想起来被打断之前的思维逻辑,再从被打断的点重新开始。这个过程大概要花 30 分钟以上。打断越多,烦心越多,工作质量也会降低,Bug 也会随之增加—成为恶性循环。

  如果从我刚开始编程,就这个事那个事不断打断我,那次数越多,我重新进入状态耗时越长。如果你一直打断我,就别怪我一天没写出来啥东西。所以降低外界干扰,减少打断能够显著提高程序员生产力。

posted @ 2020-04-10 20:01  DemonSlayer  阅读(120)  评论(0编辑  收藏  举报