敏捷软件开发图书概览_第1页
敏捷软件开发图书概览_第2页
敏捷软件开发图书概览_第3页
敏捷软件开发图书概览_第4页
敏捷软件开发图书概览_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、敏捷软件开发图书概览本文发表于程序员杂志 2006年第 5 期“敏捷软件开发宣言: 我们正在通过亲身实践和帮助其他人实践, 揭示更好的软 件开发方法,通过这项工作,我们认为: <o:p></o:p>人和交流胜过过程和工具 <o:p></o:p>可工作的软件胜过面面俱到的文档 <o:p></o:p>客户协作胜过合同谈判 <o:p></o:p>响应变化胜过遵循计划 <o:p></o:p>虽然右项也有价值,但是我们认为左项更重要。 ”<o:p></o:p>

2、Kent Beck , Mike Beedle , Arie van Bennekum , AlistairCockburn , Ward Cunningham , Martin Fowler , James Grenning , Jim Highsmith , Andrew Hunt , Ron Jeffries , Jon Kern , Brian Marick , Robert C. Martin , Steve Mellor , Ken Schwaber , Jeff Sutherland , Dave Thomas<o:p></o:p><o:p>

3、</o:p>敏捷软件开发这个词在 2006 年的中国软件界听起来仍然显得有些陌生。 自 2001 年 敏捷联盟被发起以来,敏捷方法的实践经验和理论研究都在不断的更 新。而我国的大多数程序员还是只能在书本上读到敏捷的好处, 很难在项目中进 行实践。这其中 的原因,主要是缺乏拥有实际敏捷项目经验的人来带领实施敏 捷。虽然敏捷开发是种实践行为, 很难从书本上直接学习, 不过多数程序员了解 敏捷,却都是先从书本 开始的。无论结果怎样,从认识到实践的过程是免不了 的。 <o:p></o:p><o:p> </o:p>敏捷软件开发之方法论篇 <

4、;o:p></o:p>大家都知道敏捷软件开发方法包括了多种方法论,主要有: SCRUM , Crystal, 特征驱动软件开发( FDD ),自适应软件开发( ASD ),以及最著 名的极限编程 (XP) 。这些方法论分别在不同的著作上专门论述过: <o:p></o:p>SCRUM : Agile Software Development with Scrum by Ken Schwaber, Mike Beedle , Agile Project Management With Scrum by Ken Schwaber<o:p><

5、/o:p>FDD: Java Modeling in Color with UML by Peter Coad, A Practical Guide to Feature-Driven Development ( 特征驱动开发 ) by Stephen R Palmer, John M. Felsing,<o:p></o:p>Crystal: Crystal Clear by Alistair Cockburn<o:p></o:p>ASD: Adaptive Software Development (自适应软件开发) by James A

6、. Highsmith<o:p></o:p> <o:p> </o:p>其中尤以 XP 系列的书籍居多。人民邮电出版社的一系列极限编程系列丛 书,在国内引进较早。 在还没有统一敏捷词汇的情况下, 引发了一批敏捷先锋人 士的热情, 是我国程序员的敏捷启蒙教材。 这些书包括 Extreme Programming Explained (解析极限编程), Extreme Programming Examined (极 限编程研究), Extreme Programming Installed ( 极限编程实施 ) , Extreme Programmin

7、g Explored (探索极限编程), Extreme Programming Applied (应用极限编程) Extreme Programming in Practice (极限编程实践) , Planning Extreme Programming (规划极限编程)等, 这些书有的是作者的 XP 实践论文,有些是对 XP 项目的介绍,其中,值得推 荐的是下面两部著作。 <o:p></o:p><o:p> </o:p> Extreme Programming Explained: Embrace Change by Kent Beck<

8、;o:p></o:p>第一版中译版:解析极限编程:拥抱变化, 唐东铭, 人民邮电出版社 <o:p></o:p>第二版中译版: 雷剑文,电子工业出版社 <o:p></o:p>作为XP的开山之作,目前已经出版了第二版。在第一版中,Kent Beck对 XP 作了详细的描述。从当前软件开发的现状和问题谈起,从需求的变化到如何 拥抱变化,给出了 XP 的四项价值观和十二项实践。对于想了解敏捷的来龙去 脉的人,此书属于必读之类。在第二版, Kent 根据几年来的实践,为 XP 增 加了一项价值观:尊重,并增加了原则的概念,同时增加和删改了

9、一些实践。 <o:p></o:p>该书第一版是程序员的宣言, 这和 Kent 的背景很有关系。 随后 XP 经历了 五六年的发展和实践, Kent 自己也逐渐意识到, 这样的观点太狭隘了。 因此就 有了第二版, 与其说这是技术书籍, 到更像是纯粹意义的软工书籍。 期间也可以 看出 XP 的体系更加完备。这其中尤为突出的是把人放到了更为重要的地位。 <o:p></o:p><o:p> </o:p> Extreme Programming in Practice by James Newkirk, Robert C. Marti

10、n<o:p></o:p>中译版:极限编程实践, 王钧, 人民邮电出版社 <o:p></o:p>读过了一些列的 XP 书籍,程序员们都会觉得 XP 非常好,但到底如何才能 开始实施 XP 呢?还不是太清楚。本系列中的这本书用一个完整的小项目作例 子,从头到尾教给人如何敏捷开发, 是一本不可多得的实践教材。 如果想直接实 施 XP 开发,这本书可以给你很大启示。 <o:p></o:p><o:p> </o:p><o:p> </o:p>敏捷软件开发之实践篇 <o:p>&l

11、t;/o:p>一、极限编程最佳实践 <o:p></o:p>由于极限编程是如此的流行, 多数敏捷团队都会或多或少的借鉴一些 XP 中 的敏捷实践,而 XP 的每一个敏捷实践也确实值得大书特书,而其中最著名的 是测试驱动开发和重构实践: <o:p></o:p><o:p> </o:p> Test-Driven Development by Kent Beck<o:p></o:p> 中译版:测试驱动开发, 崔凯,中国电力出版社 <o:p></o:p>测试驱动开发是 Kent B

12、eck 另一部力作。 “ CleanCode That Works” 是敏 捷开发的目标之一, 那么如何达到这个目标? TDD 给出了一种方式。 测试实质 上是需求。由需求产生出的代码肯定是能够工作的功能代码, 而要实现 Class 本 身的可测试性, 就不得不写出高度解耦合的 Clean 的代码。本书从一个 Money 的例子入手,从最初的一点需求开始, 逐步增加需求, 完成整个货币系统的代码。 后面又给出了 Unit Test 中的一些最佳实践和模式供参考。 <o:p></o:p>然而,本书的教导意义比其实践意义更突出。作为一本 TDD 的教程或入门 教材,这本书无

13、疑是最佳的, 其中提出的一些最佳实践更是值得经常阅读来温习。 本书面向的是单元测试, 而实际开发中面对的数据库测试, Web 测试等问题并 不属于单元测试的范畴。因此读者并不能从中直接进入到实战。 <o:p></o:p>另一本同名书 Test Driven Development: A Practical Guide 由 Davis Astels 撰写,他将该书看作是 Kent 著作的补充, 重点阐述利用 TDD 开发所必 要的技术和工具上,因此对实际开发更具实用性。 <o:p></o:p><o:p> </o:p> Ref

14、actoring: Improving the Design of Existing Code by Martin Fowler<o:p></o:p>中译版:重构:改善既有代码的设计,侯捷,熊节,中国电力出版社 <o:p></o:p>重构这本书的意义在于,他提供了一种让你写出更加优美代码的能力。在测 试的保证下, 重构能够发挥强大的威力。 敏捷团队中,不断的重构出简单且高效 的代码才能够保持拥抱不断变化的需求。后来的一本书 Refactoring to Patterns (从重构到模式) by Joshua Kerievsky ,更是将重构的威力

15、发挥到 极限。 <o:p></o:p>重构曾被称为软件开发图书的双璧, 另一本书是 Design Patterns ( 设 计模式 ) by GoF 。当然,对现在的软件开发这二者已经不是最重要的。 Thought Works 的首席科学家 Martin Fowler 总结了朋友们的各种实践心得, 写出了这本书。从几年后的目光来看,这本书中的多数实践都被各种 IDE 做到 了操作菜单中。虽然 IDE 提供了大量重构功能,但仅靠 IDE 是无法写出简洁 美妙代码的,多数的敏捷团队重构工作做得还是不够。 <o:p></o:p><o:p>

16、</o:p>另外有一本专门介绍结对编程的书, Pair Programming Illuminated (结 对编程技术) by by Laurie Williams and Robert Kessler ,指出了为什么要结 对?并从各种不同水平不同性格的程序员结对情况来讨论该实践的优劣。 对此有 兴趣的程序员不妨一读。 <o:p></o:p><o:p> </o:p>二、敏捷软件开发实践 <o:p></o:p>自从 2001 年敏捷联盟成立以来, 单独推广极限编程的书变少了, 而统一口 径推广敏捷的书变得越来越

17、多。两本同名的敏捷软件开发都是不可多得的好书, <o:p></o:p> <o:p> </o:p> Agile Software Development : Principles, Patterns, and Practices by Robert C. Martin<o:p></o:p>中译版:敏捷软件开发:原则,模式与实践,邓辉, 清华大学出版社 <o:p></o:p>被业内人士称为 Uncle Bob 的 Robert C Martin 在 沉寂几年后写出了这部书。该书可以算是从软件开发角度对敏

18、捷方法阐述的最详细和全面的一本。 之前的敏捷书籍多是关注于过程改进,而对如何从技术角度实施讲 的比较少。本书 一开始先介绍了敏捷联盟和敏捷开发过程。之后详细论述了面向对象设计的原 则,这些原则是本书的精华之一。后面通过几个项目介绍了如何将设计 模式应 用于项目中。 <o:p></o:p>Uncle Bob 不愧是实践的大师,写出来的书也是拥有很强的实践意义。在敏 捷团队的办公桌上, 应当常备此书, 一来可作为参考查询, 二来可以作为新成员 的必读书目。 <o:p></o:p><o:p> </o:p> Agile Softw

19、are Development by Alistair Cockburn<o:p></o:p>中译版:敏捷软件开发,俞涓,人民邮电出版社 <o:p></o:p>这本书更加适合管理者来阅读。 Alistair 从项目人数和交流难易程度,将敏 捷的各种方法划分了其适用范围。 人数多的或分布式项目就需要靠其他手段来加 强交流,人数少的就可以靠 pair programming 等进行面对面的交流。交流和反 馈是敏捷的核心。同时 Alistair 也介绍了一下他提出的 Crystal 方法族。 <o:p></o:p><o:p

20、> </o:p>三 . 敏捷项目管理和敏捷需求分析 <o:p></o:p>在推广敏捷一段时间后, 敏捷社群也意识到, 多数书籍更像是面向开发人员, 过于技术化, 难以吸引项目经理或主管。 因此,一批面向管理者视角的书也开始 浮出水面,这些书包括: <o:p></o:p> Agile and Iterative Development (敏捷迭代开发) by Craig Larman<o:p></o:p> Lean Software Development ( 敏捷 软件开发工具 精益开发方法 ) by M

21、ary Poppendieck<o:p></o:p> Agile Software Development Ecosystems ( 敏捷软件开发生态系统) by Jim Highsmith<o:p></o:p>书中从各种角度比较和分析各种敏捷方法的优劣, 异同,起源,适用范围等。 这些书对于一个项目主管决策使用何种过程来在自己的团队中实践敏捷有很好 的参考作用。 <o:p></o:p>近两年,人们开始逐渐意识到敏捷开发的侧重点不仅仅是开发过程和开发实 践,还包括对需求和项目管理等其他相关方面的实践。 一些相关的书籍也悄然

22、出 现在人们的视野: <o:p></o:p> Agile Project Management (敏捷项目管理) by Jim Highsmith<o:p></o:p> User Stories Applied by Mike Cohn<o:p></o:p> Agile Estimating and Planning by Mike Cohn<o:p></o:p> Agile Requirements & User Stories by Louis Molnar<o:p></o:p>这 些书不同于以往强调新方法,新过程的书目。敏捷项目管理类的书主要 介绍如何管理敏捷团队,如何计划要开发的需求,如何为客户提供最大的价值。 介绍敏捷需求 分析的书主要帮助商务分析师或项目经理挖掘和分析用户需求, 写出用户故事, 评估和计划用户故事等。 人们已经意识到, 各种方法论的实质是 相同的,都是提供商 业价值,减少浪费,增加交流,快速反馈。因此不需要着 重于区分是使用了那种方法。 对项目经理来说, 不同的项目或团队应当采用适应 其特

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论