软件项目一般经过需求分析、概要设计、详细设计、软件开发、测试与部署、培训与维护等阶段,其中需求分析阶段,项目经理在面对诸多收集来的需求如何确定哪些做哪些不做,哪些先做哪些放在项目二期去做?笔者认为应该根据需求的可行性、重要性、工作量进行量化评估,业务、开发、生产、维护等相关部门都参与评估,确定需求优先级,按优先级分批次迭代开发,做到公开、合理,为保障成果及时交付奠定基础。
那么如何根据需求的可行性、重要性、工作量确定需求的优先级指标呢?笔者给出以下具体算法:
- 可行性:1=可实现;0=无法实现
- 重要性:1=很重要,如关系数据正确性、安全性,产品无法正常使用,影响多数客户、重要客户和市场;5=一般性需求,值得做但不着急;10=少数派需求,锦上添花型需求
- 工作量(含设计+编码+测试+培训):1=1周之内完成;2=1~2周完成;3=2~3周完成,以此类推
- 优先级=可行性*重要性*工作量
以上计算出的优先级中,结果为0表示忽略此项需求,结果1为最高优先级。量化评估虽然不能完全摆脱主观认为因素,但毕竟向客观决策迈进了一步,实际工作中以上具体数值可以根据情况调整,还可加入资金投入等因素,进一步完善优先级指标的评估。