注册 登录
爱吱声 返回首页

code_abc的个人空间 http://www.aswetalk.net/bbs/?2769 [收藏] [复制] [分享] [RSS]

日志

敏捷开发为什么能敏捷

热度 8已有 764 次阅读2012-9-1 21:08 |个人分类:有码| 敏捷开发, 测试

    通过观察和一些交流发现国内许多号称实施了敏捷开发的团队大多不是真正的敏捷。经常遇到一些令人无语的场面。比如:和他们将迭代、讲User Story、讲点数什么的都很好,末了大多会问那么测试该怎么写呢?

    ……

    我认为在没掌握测试驱动开发的情况下谈论任何敏捷过程都是没有意义的。敏捷开发之所以能够敏捷其核心是代码本身是敏捷的,也就是代码本身可以快速地响应变化。编写测试不仅仅在于测试令软件修改后的正确性验证得到保证,更在于先行的测试迫使程序员做出松耦合的设计,在代码的中间插入各种隔离措施。让我们修改程序的时候不至于发生牵一发而动全身的事故。而还只是测试提升代码敏捷性的其中一个作用。

    敏捷开发扬弃了早期英雄程序员的概念,但是回归到开发以程序员为主的概念。敏捷团队强调程序员的主动性,程序员应能主动花时间修改糟糕的设计。而这种主动性是建立在测试驱动的基础上的,否则在项目进度压力下除非万不得已,没有人愿意花时间冒险修改已经完成功能实现的代码,那怕这个修改看上去是那么轻而易举。而这种修改在敏捷团队中几乎是家常便饭,这些时间和风险投资的回报就是代码的敏捷性。

    只有代码具有敏捷性,敏捷过程才能真正体现其价值。这些过程协调了项目各方的关系,令工作有序地进行,并且将代码的敏捷性转换成项目的收益——这才是真正的敏捷。


膜拜

鸡蛋
6

鲜花

路过

雷人

开心

感动

难过

刚表态过的朋友 (6 人)

发表评论 评论 (5 个评论)

回复 profer 2012-9-1 22:15
在团队里应用了一段时间,有一定小感悟,基本的判断是:软件的架构,开发,测试是一体的,不是阶段的,流程的。顶级的程序员必然是在架构时想着测试,测试时想着实现等。三者在脑子里统一思考的,有点像冯友兰说的整体性把握的概念。但是这个工作缺乏符号化的表达和规范化的过程,导致顶级的产品非常依赖于天才的码农,我在看nginx代码时对这点感觉非常深刻。而敏捷,就是试图找到一条不依赖天才码农的方法学上的小小尝试,根据我现在看到的效果,有一点作用,但离达到终极目标还很遥远。
回复 code_abc 2012-9-1 22:28
profer: 在团队里应用了一段时间,有一定小感悟,基本的判断是:软件的架构,开发,测试是一体的,不是阶段的,流程的。顶级的程序员必然是在架构时想着测试,测试时想着 ...
贵在坚持。再天才的程序员其代码也是改了又改的。敏捷开发方式本来就是这些“天才”养成的方法。另外,你看到的精妙代码都是成品,其间也有惨不忍睹的状态,天才与庸才的区别在于前者愿意花时间去改,后者只想完成任务。
回复 profer 2012-9-1 22:56
code_abc: 贵在坚持。再天才的程序员其代码也是改了又改的。敏捷开发方式本来就是这些“天才”养成的方法。另外,你看到的精妙代码都是成品,其间也有惨不忍睹的状态,天才 ...
这个题目比较大,有空争取专门写一篇
回复 hotlemontea 2012-9-2 12:19
code_abc: 贵在坚持。再天才的程序员其代码也是改了又改的。敏捷开发方式本来就是这些“天才”养成的方法。另外,你看到的精妙代码都是成品,其间也有惨不忍睹的状态,天才 ...
同意,我觉得大多数人都是以完成任务为目标的,真正的完美主义者很少
回复 code_abc 2012-9-2 13:06
hotlemontea: 同意,我觉得大多数人都是以完成任务为目标的,真正的完美主义者很少
当完美主义者需要付出很大的代价的。

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

手机版|小黑屋|Archiver|网站错误报告|爱吱声   

GMT+8, 2024-5-16 17:07 , Processed in 0.027467 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部