所有敏捷软件项目都有目标:项目需要交付什么,何时交付以及预算是多少。但要管理这三个约束条件可能很复杂,需要左右兼顾。因此,让我们借鉴已有几十年历史的铁三角项目管理规划,了解平衡不同的变量如何帮助敏捷软件团队实现敏捷项目管理的必杀技。
什么是项目管理三角?
项目管理三角也称为铁三角,其约束条件之所以被认为“铁”,是因为您不能在不影响其他约束条件的情况下改变其中一个约束条件。最初的铁三角项目管理由 Martin Barnes 博士于 1969 年提出,遵循瀑布式的产品开发方法:范围是固定的,而资源和时间是可变的。对于软件团队来说,这意味着团队在开始项目时要定义产品需求,以确定项目的范围(工作项列表)。资源和时间表是可变的,并根据固定范围进行估算。
- 范围是交付有效产品所要做的工作,例如特性和功能。
- 资源包括预算和致力于交付和执行的团队成员。
- 时间是团队向市场交付产品的时间,例如发布和里程碑。
项目三角的目的是为产品团队提供必要的信息,以便做出有助于业务的权衡。例如,如果团队面对的是一个固定范围,他们可能在项目进行到一半时才意识到无法按期发布。他们能利用的变量只有:1) 时间 - 他们可以接受更晚的发布日期或 2) 资源 - 他们可以为项目添加更多人员,但这将增加成本。随着 21 世纪软件开发的发展,需要更好的协作并能够快速响应客户反馈,这一点至关重要,因此敏捷方法应运而生。

将项目三角映射到敏捷
如果您的团队采用瀑布式项目管理或是刚刚接触敏捷开发,那么切记,固定和估计之间是有区别的。与瀑布式开发不同,敏捷项目有固定的时间表和资源,而范围各不相同。虽然在敏捷开发中,项目的范围可能会发生变化,但团队会提交进行固定的工作迭代:如果使用 Scrum 框架和 WIP 限制,则是冲刺;如果使用看板框架,则是 WIP 限制。在整个开发过程中保持团队固定也是一种最佳实践。通过使团队在产品或项目上保持一致,他们可以通过建立信任和连续性来提高效率。

在敏捷开发中,范围的概念是相同的:要构建和交付什么样的软件。不过,敏捷开发侧重于高层次的需求,而不是试图在前期提出深入而详细的需求。项目范围由产品经理在 Jira 之类的工具中定期管理和梳理(确定优先级)。产品经理根据从各种渠道(市场状况、客户反馈、竞争等)获得的敏捷定性和定量反馈,决定下一个冲刺阶段应完成哪些工作。而且,由于资源和时间是固定的,开发团队更容易对市场变化做出反应,并更快地为客户提供价值。这种约束条件的透明性使团队能够诚实地保持一致、快速的发布节奏,而这正是敏捷开发的关键要素;通过项目管理三角的视角来审视项目,团队能够在不放弃计划的情况下进行调整。
敏捷规划和项目三角
随着项目规模越来越大,需要的团队越来越多,时间范围也越来越长。因此,尽管范围各不相同,但固定资源和时间的概念并不是所有敏捷项目的有效方法。长期的敏捷规划需要一个更灵活的项目管理三角,使团队能够提前计划并确保他们实现业务目标。例如,想想精益创业运动,以及最简可行产品 (MVP) 的概念。根据定义,MVP 是为客户创造价值的一小部分功能(范围)。要获得这个 MVP,团队可能需要坚持一个固定的范围,即功能的数量,而时间是他们唯一的变量(例如如果没有某些功能,就不能发布,因此发布日期会被推迟)。只有在推出 MVP 之后,团队才会切换到可变范围。
不管瀑布式开发和敏捷开发有什么不同,在使用项目三角形时,没有对错之分。它可以帮助您做出最佳决策和权衡,从而实现您的业务目标。时间线等工具可直观显示计划的各个组成部分(范围、人员和时间),从而帮助团队进行实时规划。您可以利用团队在 Jira 中的现有数据,轻松调整范围、团队和时间,以规划下一次产品发布。