惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
Jina AI
Jina AI
U
Unit 42
月光博客
月光博客
宝玉的分享
宝玉的分享
博客园 - 叶小钗
Blog — PlanetScale
Blog — PlanetScale
The Cloudflare Blog
D
Docker
Y
Y Combinator Blog
P
Privacy & Cybersecurity Law Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Last Week in AI
Last Week in AI
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
G
Google Developers Blog
H
Hacker News: Front Page
罗磊的独立博客
博客园 - 【当耐特】
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog
A
About on SuperTechFans
有赞技术团队
有赞技术团队
P
Palo Alto Networks Blog
T
Tailwind CSS Blog
L
Lohrmann on Cybersecurity
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园_首页
H
Help Net Security
SecWiki News
SecWiki News
J
Java Code Geeks
I
InfoQ
T
Troy Hunt's Blog
GbyAI
GbyAI
M
MIT News - Artificial intelligence
Project Zero
Project Zero
Martin Fowler
Martin Fowler
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
Application and Cybersecurity Blog
Application and Cybersecurity Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
The Register - Security
The Register - Security
Cyberwarzone
Cyberwarzone
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
A
Arctic Wolf
P
Privacy International News Feed

博客园 - csdnexpert

美国程序员Peter:落脚北京只因这里的胡同 不是冷饭的冷饭:重评芙蓉姐姐现象 从早晨8点到晚上12点:WebEx合肥CTO的一天 转胡一虎Blog:父亲是我生命中的永恒 十年后,ELM会不会创造SOA现在所创造的局面? 来京两载,今日入清华读书,记一笔 传媒人应该具备的素质:批判 理性 正气 异国也有欢乐:北京Linux User Group探访实录 媒体的关键还是在于“软件”(人与规范) “Web开发之华山论剑”制作花絮与推荐导读 利用Radrails开发Ruby on Rails程序入门指南 “悲欣交集”的《开源大本营》制作之路 Alistair讲座的几点感受:纠正对敏捷方法的误解 在Eclipse里实现Ant自动编译 Java之父Gosling:Java没有受到PHP、Ruby或C#的威胁 PC-cillin 2005网络安全版使用简评 为什么刘彻会成为一代名君? 有选择才精彩 到哪里都是从零开始 可怜的微软与项目管理经典图解 从对一篇文章的修改看写作中的主题把握 谁说做软件测试没有好的前途?反驳之 《程序员》第9期:面对多核时代 我们以何应对? 8月的最后一天,我们开赴日照前线 Java Transaction Design Strategies推荐阅读 温总理对读书和思考问题的回答 共享软件大鳄来华抢人 是机遇还是挑战? 只有资源共享 中国共享软件才能突破性发展 又可以写Blog了 心里竟有点小小的激动 反射机制与系统耦合实例详解 事件驱动模型实例详解(Java篇) 商业项目应该向开源项目学习什么? 开源的软件+商业的服务=? 封印的武士 测试Google的网络Office——Writely 《男人装》2006.05 未来技术杂志会走向哪里? 评评点点,程序员的2006世界杯 终于理解了我的作者 你知道的Java,和你不知道的Java [投票]3·15消费者日 《程序员》杂志之现状调查 三言二拍 Eclipse+Tomcat实现Mysql数据库连接 解决在Eclipse中配置JBoss、Tomcat等插件时遇到的问题 Log4j日志管理系统简单使用说明 IntelliJ IDEA使用技巧一览表 我喜欢使用IntelliJ Idea的25个理由 新帆起航,目标新大陆,感谢大家.... 6.26南汇校园行 面向对象的授课感想 集合框架的授课感想 反射在Java Swing中的应用 从杭州到北京 华为“新同事文化”:爱你的同事如兄弟 读书的快乐 闻听06年研究生收费有感 用创新产品支撑流体计算 杂拌儿:歪评百度牵手MTV、雅虎推出优化IE7现象 有钱的IBM 有争议的开发者大会 7月最后一天脑袋里的杂事 2006-IBM开发者大会现场组图与技术点(部分) 火锅论坛:要团队不要群体 中国软件的井喷时代 热烈庆祝CSDN 2006年中大会顺利闭幕 听同学谈有中国特色的软件营销模式 马云于“赢在中国”的一些讲话 看图识性格,蛮有意思的,累的时候玩一下:) 8月19日BBUG:电信技术开发经验分享与前景展望 Yahoo!新成立Python开发者中心 推动Python发展 也谈如何举办一场成功的技术讲座? 不满SourceForge服务 JRuby迁移至CodeHaus 看完《天狗》,我对社会充满了失望 从写Blog看技术人员成长6要素 再次慨叹生命的脆弱,我辈当惜之 急雨、泥土与睡觉 Google继续扩张,“魔爪”伸向服务器 感慨国内技术网站的环境 外包,从拧螺丝钉开始 史上最大规模的Agile开源项目Callisto发布 畅快、郁闷、遗憾 阿根廷,让我如何不爱你? 好笑的那几个小时 人是应该有长远目标的 庆祝阿根廷挺进八强 博客究竟能做什么? 对Web标准的9大误解 Slashdot热点一览 Blogger的痛心事——没人回贴 一个责任编辑的日记 你可以赚钱,但你赚不来时间 印度软件外包发展简记 那一段情系列之一:Fangfang 从《读库》关于“报人”文章感叹今日技术媒体 Mop研发团队:网络时代的技术偏执狂(全文) DevCo专家李维推荐的学习方法 英雄迟暮,一声长叹,且看10个可怜的技术天才 《程序员》7月刊即将上市 10大看点值得关注 把软件外包给中国,放心吗? 我也是个博客青苹果 DirectX 10后面的微软牛人们 参加IBM开发者大会前一天
解释传统与敏捷方法最贴切的故事:大象与猴子
csdnexpert · 2007-12-17 · via 博客园 - csdnexpert

解释传统与敏捷方法最贴切的故事:大象与猴子

Posted on 2007-12-17 11:26  csdnexpert  阅读(96)  评论()    收藏  举报

很久以来我都对传统的软件工程方法和盛行的敏捷方法的联系与区别郁闷不已,因为每一个领域都是那么庞大,作为一个非专业人士,要能清楚地把握其中的关系,确实不是件容易的事情,直到我看到下面的这个故事(摘自《平衡敏捷与规范》Balancing Agility and Discipline: A Guide for the Perplexed,邓辉 孙鸣译 清华大学出版社)。在敲字的过程中我自己对一些名词对照着两个软件开发方法中的常用概念进行了注解,不当之处,还请大家指正。

 

很久以前,在一片充满隐喻的土地上,住着一头大象(喻传统开发方法)。很多年来,这头忠实的大象一直都是他所居住村庄主要的食物采集者,并且非常清楚这个村庄需要什么(喻工程前的事先计划性)。他在丛林中修建了一条路(喻最佳实践),这条路总是能指引他找到最好的根茎、蔬菜、坚果和水果等食物(喻项目的功能)。他知道哪种水果用鼻子可以够得着,也知道哪种水果需要鼻子去晃动才能摘取。他很强壮,能够一次带回足够好几天吃的食物,所以他总是预先估计这个村庄的需要(喻典型的项目需求),并提供恰当的供给。他恪尽职守,整个村庄的人都很感激他,并认为他的工作很有价值。

 

唉!就像生活和寓言中常常发生的那样,情况发生了变化(喻需求变更)。村庄里的厨师(喻项目干系人)想要一些奇特、罕见的原料来烹饪(喻个性化需求)。这些原料大象曾经听说过,但是不在他每天要走的路上(喻传统工程方法不适合涉及的领域)。他还在为存储那些无从需要的食物(喻开始的需求已经过时)疲于奔命,却没有时间去修建新的道路以满足新的需求。村庄里的人渐渐地对这头无法满足他们需求(可以理解为RUP等传统方法不适合网站开发)、越来越气馁的大象失去了耐心。

 

与此同时,附近村庄有一只猴子(喻敏捷方法)做着和这头大象类似的工作。但是,和这头大象不同,这只敏捷的小猴在这片丛林中快速地穿梭(喻XP等编程方法),采摘它所看到的果实。他只去寻找那些挂得很低的果实(喻无法满足企业级应用)并迅速把它们送回到厨师那里。这只猴子不像大象那样依赖于一条久经考验的道路,他依赖于自己的记忆和本能去找到食物,并且只带回当天所需要的食物(喻迭代编程、每日构建等)。有时,他会跑出去寻找那些日益珍奇的食物(喻新奇的功能,如AJAX功能),偶尔还会迷路(喻新的方法太多)。但事实证明,他的速度和敏捷完全能胜任村庄分派给他的任务。和那头大象一样,他也颇受爱戴(喻在自己的领域内,如Web开发)。

 

很不幸,这只猴子的生活也发生了变化。他所生活的村庄一天天地扩大起来(喻企业级Web应用)。这只小猴需要满足太多的需求,以至于他总是疲于奔命,努力记住在每个地方的所有需要。他不得不来来回回地跑很多次,因为他没有足够的力量一次运回人们需要的所有东西(喻功能太多)。同样地,这个村庄渐渐对这只猴子失去了耐心,而这只猴子也开始怀疑自己是否能够胜任这项工作。

 

碰巧有一天,这只疲倦的猴子遇到了那头气馁的大象。这只试图在背负重物的情况下快速奔跑的猴子发现大象背上的筐可以装得下那么多的食物。而大象也被猴子的速度震撼了(喻双方开始正视对方的优点),他能跑得那么远,他能那么轻而易举地拿到大象竭尽全力也无法获得的食物。这两只动物,虽然都以自己的技能而自豪(喻从前的论战),但还是承认了对方在某些方面技高一筹。

 

大象和猴子认识到一起工作的好处(喻一个控制大的流程,一个处理软件开发细节),于是决定联合起来。猴子利用他的敏捷去满足对于远距离水果的新需求,并让大象带回到他的村庄。大象则把充足的食物运到猴子的村庄去满足那里逐渐增多的需要。虽然他们花了一些时间去找出协作的方法(喻两个不同方法之间的磨合),但是很快他们就能够很好地满足两个村庄的需要了,从此,他们过着快乐的生活,彼此互相信任,从此丰衣足食的村民们又开始看重他们了(喻实用才是第一:))!

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1262383