转贴 agile的新认识

来源:互联网 发布:视频添加水印软件 编辑:程序博客网 时间:2024/06/05 00:37

周五晚上培训,老板给我找来了thoughtworks的两个agile的实践者来讲讲agile
听了两个顾问对agile的讲解,以及他们以他们团队为模型来介绍他们是如何实践敏捷开发的
发现自己原来对agile的理解都是比较片面的,所以这篇文章是对那天晚上学习到一些敏捷方法的总结

 

敏捷软件开发宣言:我们正在通过亲身实践和帮助其他人实践,揭示更好的软件开发方法,通过这项工作,我们认为:

人和交流胜过过程和工具

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

客户协作胜过合同谈判

响应变化胜过遵循计划

虽然右项也有价值,但是我们认为左项更重要。

—— Kent BeckMike BeedleArie van BennekumAlistair CockburnWard CunninghamMartin FowlerJames GrenningJim HighsmithAndrew HuntRon JeffriesJon KernBrian Marick Robert C. MartinSteve MellorKen SchwaberJeff SutherlandDave Thomas

两个老师上来首先和我们一起做了一个游戏:
两个人扮演成两个客户,找了10个人做为员工,分成两组,5人一组,然后要求每组人在2分钟内叠 50个纸帽子出来。2分钟过去了,一组叠了24个帽子,一组叠了27个帽子,但是客户在验收时却对帽子提出了要求,不能歪,要对齐,头要尖。。。结果24 个的只有一个合格,27的有3个合格。这时候问题就反映出来了:
任务开始之前没有详细的调研客户的需求,而我们也只关注了任务的两个要素:时间和数量,并没有关注到另外一个——质量。这其实也是我们在平时开发中经常犯的一个问题,我们经常在疲于奔命项目的交工而忽略了我们交出去的产品是否符合客户的要求。

所以两个老师让我们首先明白了第一点:agile不是简单的快速,而是在保证用户需求质量的前提下快速实现目标。

然后,他们介绍了agile的agile中的4个基本实践:TDD,重构,结对,迭代

上面的图片是我在我理解的基础上对4 个实践的关系理解:一次迭代包含着另外3种实践,结对的目的是为了最有效的实现TDD,而TDD又将导致对代码的重构。下面我将简单介绍一下我理解的4个实践


1、迭代:把以往开发的普通瀑布流程转化为一个个小瀑布
就是:需求——〉设计——〉开发——〉测试——〉发布
转化为:需求1〉设计1〉开发1〉测试1〉版本1发布--需求2〉设计2〉开发2〉测试2〉版本2发布

2、结对,主要目的是为经验共享,同时也可以达到代码review和测试实现分开的一个

3、TDD,测试驱动,可以在刚才结对的基础上实现,一个专门写测试,一个负责实现

4、重构,为了代码的清晰性和可扩展性 
原创粉丝点击