2009.05.07 敏捷开发宣言之我见

时间:2021-09-23 17:52:02

敏捷开发宣言:

个体和交互      胜过   过程和工具

可以工作的软件  胜过   面面俱到的文档

客户合作        胜过   合同谈判

响应变化        胜过   遵循计划

虽然右边的项也具有价值,但我们认为左边的项具有更大的价值

 

1.个体和交互  胜过  过程和工具

我们知道软件开发是一项创新性智力活动,高手和低手之间生产率的差距可能是几倍乃至几十倍的关系,因此选择合适的人是高效率、高质量软件最重要的基础;交互强调了需要加强沟通,这包括开发人员之间的沟通、和客户的沟通。通过交互为形成良好的团队打下坚实的基础。XP的一些实践如结对编程、计划游戏、现场客户无不体现了其沟通精神。从这条宣言可以看出,与CMM推崇的过程不同,敏捷开发更崇尚以人为本的理念。

 

2.可以工作的软件  胜过  面面俱到的文档

    敏捷认为,在项目开发过程中通过每一轮迭代获得通过测试的迭代版本,并向客户展示可以获得客户的及时反馈,最终更好地满足客户需求。
    实际工作中,见过不少团队前面文档写得很完整,但当发生变更时需要同步文档大家不太愿意去做,尤其是到了后期发生变更既要修改代码又要修改前面所有相关文档更是烦,文档和代码是否保持一致是个问号!不一致的文档也许更会误导后来者。而敏捷不需要长达几十上百页的文档,比如我们的设计可以是3,5页文档或者图片表述,又如详细设计干脆可以省掉-符合编码规范的代码即是我们敏捷开发中的中详细设计。敏捷提倡简单,实用,不需要太多的繁文如絮!

 

3.客户合作胜过合同谈判

敏捷开发提倡与项目的所有干系人为共同的目标而努力。而合同谈判一开始就会让项目组和客户产生分歧和争执。不可否认,合同是需要的,但合同中的条款和细节在很大程度上影响到不同的团体是对立还是进行合作式的努力。如果过分追求合同细节,很可能是两方都不舒服,也降低了项目的成功概率。而客户积极的合作,为项目的成功奠定了良好的基础,更容易实现双赢。曾经听过这样一个事情,ThoughtWork公司曾经为澳大利亚一家银行实施一个项目,TW通过调研认为该银行不需要实施此项目通过其他简单的方式也能解决问题,该银行认真分析接受了TW的观点取消了该项目,为此TW失去了这个高达1亿金额的项目,但从此该银行对TW极为信任。该项目被TW内部评为年度最成功的项目。

 

4.响应变化胜过遵循计划

对待变化的处理方式,传统的处理方式可能是成立一个CCB(变更控制委员会),发生变更需要提出申请、评估、审批一系列活动对变更进行控制。而敏捷开发的焦点是向客户交付更多的价值。随着项目的进展项目成员及客户对项目认识的加深,变更是很正常的。因此,敏捷积极响应变更,并希望通过变更可以为客户创造更大的价值而非遵循固定的计划。