当我们学习项目管理的时候,会了解有个项目管理铁三角:范围、进度和成本。这3个因素应当是相互制约,一个项目要成功,就要在这3个因素间达成一种微妙的平衡。比如范围(主要指需求项)增加了,那么就要增加进度或成本。 可是,在实际项目当中,要达成这3个目标是非常困难的,常见的情况都是顾此失彼,导致项目状况也是乱糟糟的。 军软项目尤其如此。经常是需求增加了,但进度不变,成本靠加班,很少会增加人手。 而且领导对军软项目进度的要求通常会超过质量。通常只会看到领导跟踪军软开发的进度,在周例会上会要求汇报进度,但很少会要求汇报质量状况。 由此,我们不禁要思考,软件开发是以完成任务为目标吗? 当然不是。 软件开发的目标应当是向用户交付对其业务最具有价值的软件。 对于军软来说,交付的软件应当是简单易用、稳定可靠、快速高效。 软件开发不应以满足软件研制任务书要求、按计划交付为目标。一个按时交付、功能全部实现但非常难以使用,运行起来缓慢无比的软件,显然不是用户想要的软件。 实际上,任务书中的每条需求并不都是有价值的需求。即使任务书中的需求都是用户自身提出的,也可能会因为专业的限制用户无法提出对其业务更有价值的需求;更何况军软项目的任务书都是系统/组件设计师编写的。 所以,我们的军软开发不能以完成开发任务为目标。 Jim Highsmith(2011)提出了软件项目要实现3个新目标:
丛斌博士对其解读是:
笔者深以为然。 如果把这3个项目目标用于军软项目,笔者理解的是: 在给定节点、人员、系统方案的约束条件下,开发出具有一定质量水平(安全、可靠、易维护)的,对最终用户更有价值(功能性、易用性、效率)的软件。 软件开发应当以价值实现为核心。 这正是: 范围成本和进度,即使满足又何如 软件开发为用户,价值实现应为主 参考书目:知行合一:实现价值驱动的敏捷和精益开发,作者:丛斌,出版社:人民邮电出版社 |
|