敏捷宣言已经诞生二十年,这份简短却“颠覆”规则的文件,帮助我们将产品开发交付的方式,从长途运输变成了“次日达”一样的存在。当下的我们正处在一个持续创新的世界,面对技术变革洪流,有时候我们可能会产生思考:敏捷宣言是否仍然应该成为我们的指南?
在正式讨论这个问题之前,我们先来重温一下敏捷宣言:
一、敏捷宣言的诞生
2001年2月11日至13日,在犹他州瓦萨奇山的雪鸟(Snowbird)滑雪胜地洛奇酒店,17位软件开发领域的领军人物聚在一起 ,他们分享、探讨了非常多的软件开发方式、经验,比如:极限编程(XP)、透明化、自适应软件开发(ASD)、特征驱动开发(FDD)、动态系统开发方法(DSDM)等等,并试图找到他们的共同点,以更简单的规则来适应快速变化的环境。
经过为期三天的讨论,他们在价值观和原则层面上达成共识,选择了 Agile 一词并为其赋予了特殊的意义,制定并发布了软件行业历史上最为重要的文件之一:《敏捷宣言》。
参会者将这个组织命名为“敏捷联盟( The Agile Alliance )”,希望能够帮助软件行业中的其他人以全新、更敏捷的方式思考软件开发、方法和组织。而“敏捷宣言”则被展示在一个网站上( https://agilemanifesto.org/ ) 。到目前为止,《敏捷宣言》已被翻译成了60多种语言,并作为一种信仰被推广至全球,甚至是非软件行业。
二、敏捷宣言的主要内容
1、敏捷宣言的4条价值观
我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下敏捷价值观:
- 个体和互动 高于 流程和工具
- 工作的软件 高于 详尽的文档
- 客户合作 高于 合同谈判
- 响应变化 高于 遵循计划
也就是说,尽管右边的项目有一定的价值,我们更重视左边项目的价值。
2、敏捷宣言遵循的12条原则
敏捷宣言的12条原则包括:
- 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
- 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
- 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
- 业务人员和开发人员必须相互合作,项目中的每一天都不例外。
- 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。
- 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。
- 可工作的软件是进度的首要度量标准。
- 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。
- 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
- 以简洁为本,它是极力减少不必要工作量的艺术。
- 最好的架构、需求和设计出自自组织团队。
- 团队定期地反思如何能提高成效,并依此调整自身的举止表现。
Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler | James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick | Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas |
三、关于敏捷宣言的讨论:敏捷宣言是否依然适用?
1、不断发展的敏捷实践
从敏捷宣言发布时起,其内容就几乎就没有发生过变化,但围绕敏捷的世界却大不相同。
敏捷宣言的17位发起人虽然成功地在几个核心原则下统一了他们不同的观点,但争论并没有就此结束。在某些方面,敏捷的发展早已经超越了创始人在开始时所提出的范畴,并且似乎每个人对敏捷都有自己的看法。比如SAFe、LeSS等等,甚至有些敏捷实践和软件开发没有任何关系,而敏捷宣言却曾这样描述:“我们正通过这样的方式,来帮助其他人发现更好的软件开发方法。”
Scrum.org 的 CEO 戴夫·韦斯特 (Dave West) 曾前往各个组织观察敏捷实践,然后组建了一个研究团队,并使用敏捷开发的模式研究病毒治疗遗传失明的方法。事实上,软件开发之外的领域利用敏捷方法的已经并不少见,但这并不在宣言提出人的意料之中。
敏捷专业人士布坎南曾这样解释《敏捷宣言》:“并不是说它不能被解释,而是需要更深入的理解才能确保这些原则/价值观被正确地翻译”,但即使在软件开发中,要正确理解并执行这些原则也并不容易。
2、像流水线一样生产敏捷
许多人认为,敏捷培训和咨询的泛滥加剧了“伪敏捷”之类的存在,有些人甚至将这种敏捷推广背后的组织称为“敏捷产业联盟”。敏捷专业人士布坎南曾这样评价这种现象:“你做的和说的可能都是对的,但你不理解基本的敏捷原则”。
甚至有些人认为敏捷管理工具制造厂商,比如 PingCode、Atlassian 也加剧了这种情况,因为工具支持像 Scrum 和 Kanban 这类敏捷框架,固化了敏捷,让使用敏捷的人不用加以理解就能直接使用。但实际上,敏捷是一种文化价值,团队应该可以用他们认为最合适的方式工作。而敏捷框架与敏捷文化价值观是并存的,但如果你没有文化上的认同,那么你所做的可能从一开始就有缺陷。
为了敏捷而敏捷,过度追求敏捷本身,往往会与宣言的原则背道而驰——过分关注细节、缺乏交付、僵硬的遵守流程原则,出现这种现象的从业者甚至有些是带有敏捷证书的。这些糟糕的敏捷体验很可能机会导致一些人完全放弃敏捷。但是在敏捷被广泛采用的同时,很多人也会因《敏捷宣言》有时被误导,那么《敏捷宣言》还是一份值得参考的指南吗?
四、《敏捷宣言》还有意义吗?
在与数以百计的客户、内部和外部敏捷教练、敏捷爱好者和狂热的实践者交谈之后,以及从社交媒体上花了大量的时间调研之后,可以确认的是:敏捷宣言仍然具有现实意义,甚至现在比以往更有意义。
Scrum.org的CEO 戴夫·韦斯特 (Dave West) 曾这样评价:敏捷原则其实根本不是什么新东西,它们只是以一种不同的方式被应用。敏捷宣言的价值就像是伽利略、阿基米德等科学工作者发现的定律/规律。
或者,我们可以这样认为,《敏捷宣言》最大的成就是整理出了一种尚未用于软件开发领域的思维方式。
那么,我们应该根据世界的变化对《敏捷宣言》进行更新吗?
不一定。
当像《敏捷宣言》这样具有文化意义的东西出现时,我们可以重新解释它,但没有什么能比得上原作。因为,与其试图更新它,不如花更多的时间弄清楚如何让它更好的应用于自己、团队或组织。