尽管敏捷与开源实践近年来受欢迎程度可谓齐头并进,但将二者融合同一对话中的场景倒是相对少见。毕竟在涉及这两个概念时,我们往往会发现这两种模式中存在的所谓矛盾观点。虽然存在核心差异,但敏捷并不一定是开源的敌人——事实上,我倒认为这是一对好兄弟。
在开源的基础上对敏捷开发的核心概念进行分层,不仅能够提高项目整体的透明度与协作水平,同时也有益于参与度,进而为参与进来的每个人提供项目价值。
敏捷与开源真的水火不容吗?
目前,我们在践行敏捷编程中采取的大部分方法,来自所谓“敏捷宣言”——这是一份以敏捷为核心原则的章程。最重要的是,敏捷宣言中强调了以下四项关键原则:
- 以流程与工具为基础的独立与交互。
- 以完备文档为基础的软件运作。
- 以合约协议为基础的客户协作。
- 以计划遵循为基础的变更响应。
而其中的前两条,似乎与大多数开源项目的结构方式有所冲突。
第一,敏捷编程强调协同定位与面对面交互的重要性;而开源则拥有自己明确的基础理念——任何身份、任何位置以及任何背景级别的参与者,都能够以有意义的方式为项目做出贡献。