1 敏捷宣言
敏捷软件开发宣言也称敏捷宣言,由17位志同道合的IT人于2001年在犹他州盐湖城外群山中的Snowbirt Retreat旅馆写就。
下面是宣言的完整内容
我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人
由此我们建立了如下价值观
个体和互动高于流程和工具
可工作的软件高于详细的文档
客户协作高于合同谈判
响应变化高于遵循计划
也就是说,虽然右项有其价值,但是我们更重视左项的价值
1.1 个体和互动高于流程和工具
有很多支持个体和互动的敏捷实践,例如每日站立会议和回顾会议。
在回顾会议上,大家讨论当前项目或迭代的进展情况,以及可以吸取的教训。
用户故事也是这样一种实践,故事本身并不重要,重要的是这些故事可以帮助团队一起讨论故事代表的真正意义
1.2 可工作的软件高于详细的文档
可工作的软件是可以给公司组织带来价值的软件。可以是公司出售的软件,也可以是帮助公司员工提高工作效率的软件
文档还是要写的,但是通常撰写文档的人通常就是编写软件的人
测试驱动开发就是这样一种敏捷实践
- 程序员首先开发自动化的单元测试,再开发被测试的模块
- 自动化的测试代码和软件本身的代码并列保存
- 自动化的测试可以当作文档使用,因为测试可以帮助程序员记录代码应该完成的功能
1.3 客户协作高于合同谈判
如果程序员、测试员、产品所有者和项目经理在不同团队中工作,而且不是真正朝着交付可工作软件这个单一目标努力,他们的工作方式就好像是互相遵照合约合作
敏捷团队落实这项价值观的一种方法是在团队中安置一名产品所有者。
- 这位产品所有者可能不参与代码的开发,但是他会参加会议,贡献想法。
- 最重要的是,他要把最终的产品当作自己的东西。
- 产品所有者通常通过用户故事与团队中的其他成员合作
1.4 响应变化高于遵循计划
开发团队需要不断地发现变化,当用户需求发生变化,或者软件构建方式需要变化地时候,团队要保证正确地响应变化
制定计划的人抗拒变化是很常见的事情,因为改变计划需要耗费精力
任务板是一种良好的实践,可以帮助团队做出响应变化的正确决策。
- 他们会把任务或用户故事写在索引卡上
- 然后根据项目的进展移动卡片
- 很多团队还在任务板上画图跟踪进度
1.5 原则高于实践
没有具体的实践,原则是瘠薄的;但是如果缺乏原则,实践则是没有生命、没有个性、没有勇气。伟大的产品来自伟大的团队,而伟大的团队有原则、有个性、有勇气、有坚持、有胆量。
[Jim Highsmith, 《敏捷项目管理》]