*敏捷开发是一种开发方式,敏捷团队是按这种方式开发的团队
1:尽早的,持续的交付可以工作的软件来使客户的满意
尽早的交付有部分功能的系统和最终系统质量之间有很强的相关性,
初期交付的系统中所包含的功能越少最终交付的系统的质量越高
我们不赞成交付大量的文档或计划,那些不是客户需要的东西
以逐渐增加功能的方式经常性的交付系统,交付的越频繁,最终产品的质量越高
2:我们欢迎需求的变化,即使到了开发后期,敏捷团队能够驾御这些变化,为客户创造竞争优势
这是一个关于态度的声明,敏捷团队的参与者不惧怕变化,他们认为改变需求是好事情,
因为那些改变意味着团队已经学到了更多如何满足客户需要的知识
3:在整个项目开发期间,业务人员和开发人员必须朝夕的工作在一起
项目不会象发射出去就能自动导航的武器,必须对项目进行持续不断的引导
开发人员,业务人员,客户(所有利益相关者)之间必须进行有意义的,频繁的交互
4:围绕斗志高昂的人构建项目,给他们提供所需的环境和支持,信任他们能完成工作
人是取得项目成功最关键的因素,所有其他因素(过程,环境,管理等)都被认为是次要的,当他们对人有负面影响时,就要对他们进行改变.
5:在团队内部,最有效率,也是最有效果的信息传递方式就是面对面的交谈
书面文档和项目管理软件仅在需要的时候才进行编写和更新
6:可以工作的软件是进度度量的主要标准
软件进度与文档无关,只有30%的功能实现了,才能确定软件完成了30%
7:项目提倡可持续的开发,投资人,开发者和用户应该维持一个开发速度
太快导致团队精力耗尽,抄捷径导致项目崩溃,目标是使项目保持在一个高质量的开发速度上
8:对卓越的技术和良好的设计的不断追求有助于提高敏捷性
每个人都写他们能写的质量最高的代码,不会制造混乱然后告诉自己以后有时间再整理这些问题,
他们今天的代码出现什么问题就今天解决掉
9:简单--尽量减少工作量的艺术是很重要的
他们并不看重对于明天会出现的问题的预测,也不会为这些问题做防御,
他们只在今天用高质量的代码完成最简单的工作,并深信如果明天出问题,也会很容易进行处理
10:责任不是分配给单个团队成员而是分配给整个团队
每个成员都具有项目中所有方面的参与权,不存在某个团队成员仅对项目的架构,需求,或者测试负责的情况
整个团队共同承担那些责任,每个团队成员都能影响他们
11:每隔一定时间团队就要总结如何更有效率,然后做出相应的调整
原文是Robert C. Martin写的
这个人是业界牛人,原文地址已经遗矢,我对原文做了一些整理,加上了自己的一些认识.