我在咨询工作中遇到一些企业,他们会说:“在我们公司,项目的进度不是问题,比如要求两个月交付,开发人员全力以赴,最后总是准时交付。”这是真的吗?再进一步交流会发现,虽然项目准时交付了软件,然而需求文档、设计文档一概没有,并且交付后,因为质量问题,用户无法使用,还需要4个月的时间不停地修补,之后用户才真正地使用上。那么项目实际进度到底是2个月,还是6(2加4)个月呢?
很多项目产出了一个半成品,自欺欺人地号称项目结束了,然后再花费更多时间和精力给半成品打补丁。目前被普遍接受的软件的定义: 软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。所以,一个软件产品仅仅有程序而没有相关文档,那么一定是不完整的产品。很多人都有体会,在大学实验室编程序和在企业做出的软件绝对是两回事:在实验室的程序根本无法称为软件产品,没有文档,通常程序也没有大量的用户,非功能特性考虑得少,如可靠性、可维护性等,开发过程也不会按照软件工程方法进行的。
软件工程经典之作《人月神话》把程序(program)和编程系统产品(programming system product)做了区分,商业价值的是编程系统产品,也就是上面所说的软件,而编程系统软件所耗费的工作量是程序的9倍。
因此,在很多企业,号称以多高的效率完成了某软件产品开发,其实,完成的是程序(program),或者类似于大学实验室开发出产品,如果把程序再变成有用的变成系统产品,则要花费数倍的时间。如果以生产出“程序”作为项目结束的标志,那么这样这个看起来很让人满意项目进度只不过是个虚假的进度,它与项目真正的完成所需要的时间还有非常大差距。
虚假的进度,在很多情况是因为倒排进度计划导致,客户或者管理层要求4个月完成项目,那么项目要做出一个4月完成的进度计划;如果客户或者管理层要求2个月完成项目,那么项目就要做出一个2月完成的进度计划。接下来,项目会想方设法按时“结束”这样项目。当然这些项目“结束”的标志是代码已经写完了,至于代码是否满足客户的需求,以及是否完成了必要的文档,完全被排除到项目范围之外了。
虚假的项目进度掩藏了项目的开发问题,特别是项目开发效率问题。被虚假的进度所迷惑,大家看不清项目的实际进度和实际成本。我遇到一个企业,有个5万元的小项目,他们宣称2个人2个月完成了,但实质上后续投入了至少1人年的工作量在不断地完善那2个月完成的那个半成品。如果以总的实际的工作量来算,这个项目不知倒贴了多少钱。虚假的项目进度实际上大大降低了项目的开发效率,因为前期忽略了质量后期要以数十倍、百倍的代价来偿还。
在到处充斥着虚假项目进度的企业,不会孕育出“第一次把事情做好”的文化,质量和效率都不会在这样的企业中生根发芽;相反,会滋生隐瞒、欺骗、浮夸,蒙蔽了管理层的双眼,让团队斗志,让优秀员工心灰意冷。(周志龙 研发管理咨询顾问) |