人月神话阅读笔记03

史前史中,没有别的场景比巨兽门在焦油坑中垂死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越猛烈,焦油纠缠得就越紧,没有哪种猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。------《人月神话》

 

 在软件开发项目中,似乎也像是这样,每个问题单个看起来都可以得到完美的解决,但是当这些问题纠缠在一起的时候,就会变得像焦油坑一样,让人停滞不前。 那么,为什么我们还要热衷于开发软件项目?最重要的是创造事物的成就感,把一个东西从无变有,这会让我们对自己增加自信,这是我们一直喜欢这个领域的内在源泉。第二,我们快乐于开发对其他人有帮助的东西,我们总希望用自己的能力帮助到其他人,而软件开发可以让人们的行为变得方便。第三,我们能够把自己想象的东西以可视化的方式展现出来,这满足了我们内心对创造事物的渴望。但是软件项目也会让人很头疼,机器是死的,它只会按照既定的规则行事,不容任何情面,这就导致我们也要一丝不苟,当你犯了一丝错的时候,你就会得到一个错误的结果,最让人觉得枯燥的是一遍又一遍的检查程序的bug。然而万事万物都有代价。当你能够得到快乐的时候必然是需要付出一些东西。

 

 在软件开发中,人月是个工作量的单位,在大多数人的眼中,增加人,那么月数就会减少。确实,在某些繁重的体力劳动中,人数越多,意味着完工时间越短。可是,软件开发是个脑力劳动,而且软件开发是连续性的、交互性的,每个阶段、每个部分都是要沟通、要交互的。人数越多,意味着沟通的过程是原来的很多倍,这会导致项目延期,协调是个大问题。这时候就有人说,我只需要一个小型团队,里面的都是精英人才,这样就行了。这样真的可以吗?也许开发小型的项目是可以的,但是对于开发像系统那样的大型项目,即使你1个人能顶7个人,那么也需要至少10年的时间才能够开发出来。一个产品在提出来之后10年才真正上市,这还不算维护,在现在这种信息快速发展的时代,这款产品还有人要吗?是不是过时了呢?

 

 《人月神话》中提到了外科手术团队,即一个团队拥有一名外科医生(首席程序员),一名副手(能完成一部分工作,但经验少),一个管理员(boss),一个编辑(负责对文档进行分析和重新组织并提供信息),两个文秘(管理员和编辑各一个),程序职员,工具维护人员,测试人员,语言专家(寻求一种简洁的语言来解决复杂的问题)。这就是10人的一个团队。如果要完成更大的项目,那么就需要扩建,扩建成功依赖这样一个事实。决定设计的人员是原来的1/7甚至更少。据书本所说,在实际操作中,这样的分工具有非常高的效率。

 

posted on 2020-06-11 18:16  迎新  阅读(127)  评论(0编辑  收藏  举报