“敏捷”(Agile)一词于2001年被提出。目前有很多敏捷实践指南,如Scrum,包含了一系列原则、活动、概念和技术,但各种敏捷实践指南并未对“敏捷”一词形成统一的定义。
海史密斯曾经用如下两句话来描述敏捷:敏捷是创造并响应变化从而在动荡的商业环境中捕获利润的能力。敏捷是平衡灵活性和稳定性的能力。
需要说明的是,敏捷实践指南并不是专门为项目而提出的。各种敏捷实践指南更多关注在产品交付层面上,无论产品交付在项目中发生还是在日常运营工作中发生。
敏捷实践指南的成熟度与项目管理实践指南也不相同,仍处于飞速发展阶段,尚未出现成体系的“最佳实践”,因此大部分指南仍处于探索期的“涌现实践”阶段。
无论哪种敏捷实践指南,都基于敏捷联盟的创始成员所共同提出的“敏捷软件开发宣言”。
我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此,我们建立了如下价值观:
个体与互动 胜过 过程和工具
可工作的软件 胜过 完备的文档
用户合作 胜过 合同谈判
响应变化 胜过 遵循计划
尽管右项有其价值,但我们更重视左项的价值。
VersionOne在2021年发布的针对团队级敏捷实践指南应用情况的调查数据显示(见图3.1),Scrum是实践中使用最多的一种敏捷框架。66%的人反馈Scrum是他们最密切遵循的敏捷方法,另外15%的人遵循Scrum的派生方法。在应用Scrum的时候,通常也会与其他敏捷框架整合使用,如极限编程(Extreme Programming,XP)、看板(KanBan)等,这一现象也体现了“涌现实践”阶段的特征。
项目管理是从组织视角自上而下演变发展出来的,而敏捷是从交付团队自下而上演变发展而来的。敏捷实践指南不同于已经被广泛接受的项目管理理念和实践指南,当被应用于项目管理领域时,其会面临很大挑战:敏捷思想和方法如何与项目管理整合、如何与组织整合、多个团队之间如何实施敏捷等。这些在敏捷实践指南和项目管理实践指南中均没有很好地得到解决,而是要在实践中不断探索的课题。
图3.1 各种敏捷方法的应用情况
例如,在实践中,有些敏捷团队将编制项目计划等项目启动阶段的活动定义为冲刺0(Sprint0)。这种做法的必要性在敏捷领域是有争议的,至少冲刺0的概念并不是《Scrum指南》的一部分。
一个为了完成从待办事项列表(Backlog,交付物的功能列表)中选择的功能,而设定的固定长度的时段(通常为2~4周)。
大多敏捷实践都来源于IT行业,随着成熟度的提升,敏捷实践指南有了更广泛的适用性。表3.2列出了比较流行的敏捷实践指南。
表3.2 比较流行的敏捷实践指南