本节书摘来自华章出版社《SAFe 4.0参考指南:精益软件与系统工程的规模化敏捷框架》一书中的第3章,第3.14节 作者[美]迪恩·莱芬(DeanLeffingwell),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.14 迭代目标
清晰的阐述可以让深刻的思想更加出色。
——Luc de Clapiers
摘要
迭代目标是敏捷团队和产品负责人达成的共识,是可以在一个迭代内完成的业务和技术目标的高度概括性描述。敏捷发布火车作为自组织、自管理的众多团队的集合,可以通过各团队的迭代目标进行汇总和有效协调。迭代目标有助于团队成员和产品负责人把共同的使命对齐到迭代中,也有助于每个团队对齐到项目群的PI目标上,从而可以为理解和处理团队之间的依赖提供依据。最后,迭代目标可以为团队、管理层以及业务负责人之间的沟通提供一份简单的协议,让所有人可以朝一个共同的目标努力,管理层可以持续地获知工作进展。
无论团队应用Scrum还是看板,迭代目标都提供了一种共同的语言,让项目群利益相关者、管理层和敏捷团队可以保持一致,管理依赖,并在项目群增量的执行过程中进行必要的调整。
详述
正如3.9节中所述,计划过程会产生三个输出:
1.迭代待办事项列表,由承诺在迭代内完成的故事组成。
2.迭代目标的描述,如图3.14-1所示。
3.为了实现迭代目标,敏捷团队对于需完成工作的承诺。
迭代目标往往反映了以下几点:
特性、特性切片或特性部分,如研究、必要的架构等
业务或技术里程碑
架构、技术或基础设施工作
常规的工作
其他承诺,如维护、文档等
迭代目标可以通过完成迭代待办事项列表来实现,但这并不意味着要完成所有故事才能达成迭代目标。换句话说,迭代目标要高于任何特定的故事。有时候,甚至有必要添加预先未能想到的故事,才能实现迭代目标。
为什么需要迭代目标
迭代目标在SAFe和Scrum中是必需的(Scrum称之为冲刺目标)。敏捷团队在一个迭代里通过完成足够小的故事来开展工作。把用户价值分割成足够小的、纵向的、可测试的故事,这是一项基本的敏捷能力,但这样往往会造成“只见树木不见森林”。在敏捷发布火车中,迭代目标会帮助团队从更高的角度理解和维护每次迭代待完成的工作,以及要在下一次系统演示会议上的演示内容。这就是透明性、协调一致和项目群执行的基础,它们是SAFe四个核心价值观中的三个。简单地说,团队承诺在一个迭代里完成一系列用户故事是不够的,团队必须始终关注每次迭代的业务价值,而且能够用业务术语与业务负责人、管理层和其他利益相关者就这些价值进行沟通。
迭代目标提供了三方面的价值,从而构成了一个全面的方法来帮助团队和敏捷发布火车保持协调一致,并始终致力于一个共同的目标和使命,具体描述如下。
将团队成员对齐到共同的目标
迭代执行是一个快速和激烈的过程,两周的时间一晃而过。迭代目标可以帮助团队和产品负责人,回到他们最初计划发布业务价值时所达成的共识,保持团队和项目群PI目标的对齐,并帮助团队落地实现已确定的目标,如图3.14-2所示。
将项目群团队对齐到共同的PI目标并管理依赖关系
SAFe团队并不是一些敏捷孤岛。相反,它们属于一个更大的项目群环境和目标的有机整体。因此,每个团队必须与其他团队和发布火车工程师就下一个迭代的目标进行沟通,从而能够确保大家保持对齐到项目群PI目标上。此外,各个团队的迭代目标也提供了发现和解决依赖关系的必要环境,如图3.14-3所示。
提供持续的管理信息
为了扩展到项目群层面,同时又要保持精益和敏捷的理念,这就依赖于建立自管理、自组织的敏捷团队。这些团队应该很少需要行政管理干预或日常监管。在这种情况下,经理们可以向上管理和跨团队管理,而不是向下管理。这样就可以创建一个充分授权的、更加精益的组织,管理层就可以承担更多责任,用自己的组织能力来消除障碍并帮助推动组织级改进。然而,管理层不能也不应该抛弃理解团队的责任,他们应该了解团队正在进行的工作以及开展这些工作的原因,因为管理者仍然负有责任去提高组织的开发能力并保证价值发布的成果。为此,将发布火车上的迭代目标进行汇总,从而提供一个简单的、文本化的、以两周为周期的工作内容概要,如图3.14-4所示。
并帮助识别团队间的依赖关系
图3.14-4 迭代目标提供了可视化及与管理层的沟通途径
参考资料
[1] Leffingwell, Dean. Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise. Addison-Wesley, 2011.