Agile 学习1:核心价值观

什么是Agile?Agile区别于传统的开发模式的本质是什么?

Agile没有一个统一的定义,也没有统一的流程。据说Agile的实践有500多种。它们和传统的开发模式的区别,其实就是Agile的4个核心价值观。

1, Individual and interaction vs process and tools.    

个体和交流沟通胜于流程和工具。简单说就是以人(开发者)为本,以人为先,充分尊重和相信个人。

虽然以人为本是一句永远政治正确的话,但是敏捷开发在软件历史上第一次(注意是第一次)真正让开发人员置于最重要的地位。传统的waterfall软件流程其实把人当作零件和生产线上的智能工具而已,就像苹果iPHONE生产线上的工人。希望以严格标准化的流程和工具来组织软件的设计和开发。

流程和工具保证了标准化。对于简单重复劳动是高效的。但是对于软件开发这种高复杂度的工作来说,却限制了人的积极性,主动性去探索解决开发中大量的未知问题。不能充分发挥人的主动性潜能,释放出最大的生产力。

另一方面,软件开发本质还是取决于人。当团队成员的个人能动性没有激发,团队不能同心协力工作时,再好的流程和工具也是白搭,反而是束缚。很多大公司都拥有完美的流程,但是效率低下。一些小公司没有什么流程,但是依然能开发出很好的软件。就是这个道理。

2, working code vs comprehensive documents. 

可工作的代码比全面的文档更重要。

软件开发的交付物是什么?可工作的代码而不是文档。

可是传统的软件开发花在文档上的时间是巨大的。在传统的软件开发流程中,需求分析文档,总体设计文档,详细设计文档,测试文档等等,往往项目开始了2个月,1行代码还没有写呢。

一边是花费巨大代价写出的文档。另一边,这些文档往往没人看。不仅如此,在编码开始之后,由于情况变化,设计变化,文档根本无法和代码同步,并不能反映软件的实际情况。再说这些文档并不是顾客需要的文档。

当然在实际开发中,有些必要的文档还是要写的,比如说用户手册,特性需求说明等等。

3, Customer cooperation vs contract negotiation    - customer/partner first.

敏捷的第3个特征是强调与客户的协作,打造与客户的命运共同体,共同应对市场的快速变化,而不是拘泥于开发合同。一切以满足市场需要为目标。

以前的开发过程虽然认为客户第一,但是我们把客户的需求当做是一个固定的合同。这在需求变化越来越剧烈的今天已经不适用了。现在的商业环境要求我们把客户当作伙伴,要和客户组成更紧密的协作战斗单元一起捕捉需求,分析需求,尽快的推出产品,不断迭代,从而更加快速的响应市场的需求。

4, responding to change vs follow a plan. 

第4条和第3条是呼应的,在跟客户合作的过程中,我们必须对于市场的变化,客户需求的变化作出响应。而不是仅仅根据我们实现定义的计划和需求。进行开发。

软件的可靠性靠持续不间断、高强度的测试进行保证。

通过4个敏捷核心价值观的介绍,相信我们都明白了为什么敏捷可以做到敏捷,变得高效简洁了。但是敏捷开发模式也对团队提出了更高的要求和挑战。这一点我们下次再讲!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容