今天我读了人月神话—外科手术队伍和巴比伦塔的失败。有许多体会。
在开发小组中,最好和最查人员生产率比在10:1,在运行效率和空间上5:1惊人差距。如果一个200人的项目中,有25个最能干和最有开发经验的项目经理,那么开除剩下的175名程序员,让项目经理来编程开发。
对于一个软件项目,适合的项目团队规模在20人左右,这是一个专职的IT项目经理可以管理的最大值。那由于项目进度压力需要增加团队规模到100人的时候,让项目经理来开发实际操作是很困难的方式,在这里推荐的方式是将系统按照高内聚,松耦合分解为5个子系统。这样则可以将100个分解为5个项目,由5个项目经理来管理,这是减少和有序化沟通渠道最有效的方式。
所以说小型敏捷的中小型团队可以保持最高的效率,但对于大型软件系统却不得不投入更多的人力资源来换取进度的提前。对于一个软件产品,在激励的竞争下对进度要求是非常严厉的,往往推迟半年推出都有可能失去竞争和市场,更不用说10年。对于信息化软件产品我们更强调的是迭代和多版本开发概念,每个迭代周期在1-2月左右,每个迭代周期都是真正可以向用户提供完整的可交付的功能。
据《创世纪》记载,巴比伦塔是人类继诺亚方舟之后的第二大工程壮举,但巴比伦塔同时也是第一个彻底失败的工程。为何拥有了清晰的目标,充足的人力和物力资源的项目最后仍然失败,巴比伦塔给我们的管理教训就是它们缺乏沟通和交流,以及交流的结果-组织。他们无法相互交谈,从而无法合作。当合作无法进行时,工作陷入了停顿。通过史书的字里行间,我们推测交流的缺乏导致了争辩、沮丧和群体猜忌。很快,部落开始分裂——大家选择了孤立,而不是互相争吵。
所以说沟通在一个团队中是非常重要的。团队沟通是整个项目团队的核心要素,关于项目的共同愿景,目标,进度任务,问题,风险,思想等都需要通过沟通来传达。有效的团队沟通是提升团队竞争力必不可少的要素,项目经理有90%的时间都花费在沟通上面,有了沟通就有了共同的愿景和协作氛围,就有了思想的交换和碰撞。