敏捷是一种管理软件的系统方法
我们需要回到原点,找出敏捷的精髓。在2001年,17名软件大师提出了敏捷宣言,但是敏捷宣言并没有规定怎么做:
个体和互动高于流程和工具
工作的软件高于详尽的文档
客户合作高于合同谈判
响应变化高于遵循计划
他们还提出了12条原则,其中的一些规定了做什么(比如业务人员和开发人员面对面的交谈传递信息),但是,大部分还是跟价值观念有关。如果我们仔细分析这12条原则,我们可以看到它实际上构成了一座金字塔。
在最顶端的是“通过满足客户不断变化的需求使客户满意。”我们通过“经常地交付可工作的软件”实现这一目标。但是为了交付可工作的软件,需要重要的技术和管理支持。确保变化的需求不会破坏系统和延缓开发进程是最重要的一个技术问题:如何设计一个灵活的系统和如何构建可以确保变化不会破坏系统的自动化测试。为了在团队里培养高级专业技能,团队需要积极从错误中学习并进化自我。
(顺便提一下,我选择对原则10中的简单进行解释的原意跟Jobs一样,都是为了强调易用性的重要意义:“简单可以比复杂更难:你必须非常努力地让你的想法足够清晰,使之变得简单”)