- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本立而道生,追溯敏捷开发最佳实践之源
http :/// mailto:morningspace@126.com
立而道生,追溯敏捷开发最佳实践之源
撰文 / 莫映
敏捷开发的悄然兴起
就在几年前,敏捷开发作为一种软件开发的方法学,自国外悄然传入了国内。也许现在已经很难
再精确找寻最初的时间起点了,不过在笔者的记忆当中,2002 年在 《程序员》杂志上刊载的一
篇由林星撰写的介绍敏捷方法的文章,以及包括新方法学在内的由Martin Fowler 先生所
写的一系列文章的中译版本在国内网络媒体上的出现, 概可以算作是敏捷开发在国内籍由传统
媒体与现代媒体为普通大众所了解和认识的一个开端。
敏捷开发以轻量和反正统的姿态显身,刮起了一股清新的微风。它拒绝繁文缛节,强调对变化的
快速适应能力,强调人在开发过程中所起的重要作用。套用一下Gabriel Tarde 的创新扩散理
论1,这样的观点很快就赢得了不少早期适用者 (early adopter),获得了他们坚定不移的支
持和拥护。想必读者很容易就能猜到,这群早期适用者的主体,便是一直工作于国内开发一线的
程序员们。
就如同早先敏捷开发在西方的传 方式一样,凭借着一群早期适用者们自发的言传身教,诸多所
谓的敏捷最佳实践,得以为更多的人所听闻。尽管这种传布方式带有明显的经验主义意味,但是
作为一项实践活动,软件开发原本就不是形而上的理论空谈,因此从现实的角度出发,这群实践
者们对敏捷开发在国内的传 所起的作用,是功不可没的。
日历翻到了2007 年,我们可喜的发现,敏捷开发已经不再是阳春白雪,少数人的游戏了。不
少软件开发团体,无论是 公司还是小公司,都在或多或少的进行着各种各样的敏捷实践。他们
将敏捷的最佳实践应用于软件开发活动,并从中获得了益处,敏捷开发还在影响着更多的IT 从
业人员。或许可以毫不夸张的说,国内的敏捷开发已经步入了一个新的发展阶段。
质疑的声音
任何事物的发展都不是一帆风顺的,敏捷开发也不例外。一方面,常识和惯性思维会对人们接受
新事物 成障碍,因此我们时常听到一些对敏捷的质疑声音,也就不足为奇了;另一方面,作为
早期适用者的部分程序员们,在传 敏捷的过程中,也有其自身的局限性,从而导致对敏捷的片
面认识与夸 ,这也更加促成了质疑的合理性。
一些人认为,以极限编程为代表的敏捷方法对人有很高的要求,开发者需要具备相当的素质,才
能驾驭极限编程中像测试驱动开发、重 这样的高阶敏捷实践,否则,开发效率只会更低,项目
风险只会更 。另一些人认为,敏捷方法过于强调对变化的适应,它采用一个一个零散的用户故
事来捕获用户的需求,致使对需求的把控无法做到全面而系统,最后只能是来一个需求实现一个
需求,太过盲目。还有一些人认为,极限编程中所倡导的通过一步一步重 的方式来演化最终的
系统架 的方法是不现实的,因为好的架 是没有办法重 出来的,而是必须要经过先期的系统
1这一理论解释了创新事物在不同时间段为不同类型的人群所接受的过程,见:
http :///wiki/Diffusion_of_innovations
1
http :/// mailto:morningspace@126.com
分析与建模设计,才能保证有一个稳定的架 基础,否则,频繁的重 反而会导致架 的频繁变
化,甚至是推倒重来,这会造成软件开发的浪费。凡此种种,不一而足。
寻找敏捷开发的源头
要想以一篇文章的篇幅来 一应对如上的每一条质疑,恐怕是不够的,这也并非本文所要表达的
主旨。以笔者的愚见,如果要想一劳永逸的释疑,就不能纠缠于细枝末节,而是必须要追本溯源,
搞清楚敏捷开发到底是为了什么。只有明晰了敏捷开发的目的,才能更好的理解那些所谓的最佳
实践,明白它们如何能够保证项目的成功,进而更好的加以有效运用,而不是误用。那么,敏捷
开发中的诸多最佳实践到底是为了提高开发效率?加强团队沟通?提升代码质量?还是别的什
么目的呢?
2
对于这一问题,或许我们可以从Martin Fowler 先生的新方法学 一文中获得启示。在文中,
Martin Fowler 对众多敏捷方法做了概括,提出了所有敏捷方法共有的显著特征,其中之一便
是适应
文档评论(0)