人月神话7

发布时间 2023-06-11 08:27:59作者: 与孤独对酌

第七章 为什么巴比伦塔会失败

据《创世纪》记载,巴比伦塔是人类继诺亚方舟之后的第二大工程壮举,同时,其也是一个彻底失败的工程。

我们把建造巴比伦塔单纯作为一个工程项目来看待,进行经验总结。
(1)项目的目标:建造一座高达云霄的高塔
(2)项目资源:人力资源非常充足,在美索不达米亚有丰富的泥土和柏油沥青,材料资源也很充足
(3)项目工期:没有任何时间限制的迹象
(4)项目所需的技术:对砖石建筑技术,人类已经有过建造金字塔这种稳定结构的经验\

人们已经具备了以上的条件,然而这个项目还是失败了。失败的原因,是因为上帝混淆了他们的语言,还把他们分散到世界各地。他们因此缺少了组织和交流,无法相互交谈,从而无法合作。当合作无法进行时,工作就陷入了停顿。

一、缺失交流
我们现实中在做项目的时候也会出现这种情况,团队成员之间不知道彼此在做什么,导致了进度缓慢、功能不合理和系统缺陷等问题纷纷出现。因此,项目团队能够进行有效的交流沟通也是项目成功的关键因素。

项目团队进行交流沟通的方式有: 非正式沟通(邮件、电话)、会议和项目工作手册。

项目工作手册不是一篇独立的文档,它包含了项目过程的所有文档(项目目的、外部规格说明、接口说明、技术标准、内部说明、备忘录、工作计划等)。

如果某人就硬件或软件的某一部分,去查看项目工作手册,他不仅可以知道设计思路,还可以追溯到早期的备忘录中的建议以及解释等内容。同时,项目工作手册也可以控制信息发布,控制信息发布并不是为了限制信息,而是确保信息能够到达所有需要它的人的手中。因此,项目工作手册的实时更新是非常关键的。

二、缺少组织
项目团队的工作人员越多,需要相互交流的接口就越多。团队组织的目的是减少所需的交流和合作的数量。减少交流的方法是人力划分和限定职责范围。

组织中最关键的两种角色是产品负责人和技术主管。

产品负责人负责组建团队,划分工作及制定进度表,并一直保证必要的资源。他确保项目进度目标的实现,根据环境变化调整资源和团队的构架。

技术主管负责对系统进行设计构思,提供整个设计的一致性和概念完整性,控制系统的复杂程度,并提供问题的解决方案。他的工作几乎完全是技术性的。

在项目实践中,因为产品负责人和技术主管所需的技能不同,但是团队成员又不一定都同时具备所有技能,所以我们可以按不同方式进行组合。

一、产品负责人和技术主管是同一个人
这种方式在小型项目团队中很适用,但是在大型项目中则不容易获得应用。原因有两个:第一,同时具有管理技能和技术技能的人很难找到。思考者很少,实干家更少,既是思考者又是实干家的太少了。第二,大型项目中,每个角色都必须全职工作,甚至还要加班。对产品负责人来说,很难在承担管理职责的同时,还能抽出时间进行技术工作。对技术主管来说,很难在保证设计的概念完整性的同时,担任管理工作。

二、产品负责人作为总指挥,技术主管充当其左右手
这种组合可以使工作很有效。项目经理可以使用并不擅长管理的技术天才来完成工作。然而在实施过程中,产品负责人必须对技术主管的技术才能表现出尊重,并能支持技术主管的技术决定,从而建立其在技术决策上的权威。

三、技术主管作为总指挥,产品负责人充当其左右手
这种安排同样能使工作非常有效。技术主管能够专心解决系统设计的问题,并保证系统的概念完整性。其余的杂事都由产品负责人进行处理(做合同、接电话、协调资源等)。