软件项目管理是一个很年轻的领域,在初期它的管理方式源自于建筑工程,即需要先做好严谨的规划,继而拆分详细的任务,最终从范围、时间和成本三个维度将所有任务锁定在一个稳定的三角形内,继而有条不紊的达到规划的目标。这大概也是项目管理三角形的由来:
- 范围:基本在项目前期已经规划好,并且有为完成项目所需要的详细待办任务清单,在后续执行的过程中很少会去进行调整;
- 时间:完成范围内待办任务所需要的时间投入;
- 成本:完成范围内待办任务所需要的成本投入。
所以在传统的项目管理中,范围在前期经过大量调研和规划进而最终确定的情况下,只能通过时间和成本的调整来完成既定的任务。即,如果要节省时间则需要加大成本,如果要节省成本则延长时间,对于范围本身因为前期的大量投入,很难说在范围上面做太大的调整。
这种项目管理的方式在预定义过程控制的场景下是合适的,例如建大楼、造火箭。但是在当前的时代背景下,软件领域快速发展、客户要求的不断提高、用户诉求的日新月异,我们很难以保证在自己先期投入大量成本的项目规划是准确无误的,因为对于变化我们很难以去预判,也难以去管控。我们更需要不断的尝试和总结来,即采用经验过程控制的方式来完成软件项目的管理,也就是敏捷项目管理三角的由来。
- 价值:将目标聚焦在客户和用户的视角,软件用来交付他们需要的价值,而非站在项目角度去完成对应的待办任务。
- 质量:软件行业发展至今,用户对软件的依赖越来越强,要求也越来越高。
- 约束:制约用户价值和软件质量的因素,由传统项目管理三角型中的范围、时间和成本构成。
对于传统三角的范围不变,敏捷三角反其道而行之,在既有的约束条件下,我们会高质量的优先完成高价值的事情。虽然约束条件中的三角和传统项目管理的三角在字面上是一样,但本质的区别在于,敏捷三角的范围是可变的而传统三角则很难。
约束点中的时间能够以敏捷项目管理中的迭代实践来进行计算,以周为单位将时间抽象成一个相对固定的基础单元;而成本最多在与人力投入,在敏捷实践中的全功能团队规模也很方便计算出整体的投入。在单位时间内的投入和产出相对稳定的情况下,可以合理的通过调整范围来灵活调配约束这个点,以满足三角形中的价值和质量要求。
敏捷三角相较于传统三角,将范围从固定演进为可变以灵活适应市场的变化,将目标聚焦于客户价值而非既定任务以满足多元化的用户需求,加强质量的权重以提升终端用户的体验。价值驱动的项目管理方式在当前的软件时代背景下显然是由于计划驱动的管理方式的。