对于迭代开发,著名的方法大师Craig Larman通过统计意义上的重要研究,以及大规模的项目案例分析,为读者呈现了最具有说服力的观点。Larman简要而又涵盖大量信息的总结,是驱动敏捷和迭代过程的关键所在;这个总结还详细阐述了4个重要的迭代方法——Scrum、XP、UP和Evo。全书主要包括了以下几个方面的内容:\r\n 迭代方法对于减少项目风险的令人信服的证据\r\n FAQ\r\n 敏捷与迭代的价值与实践\r\n 许多实用的敏捷与迭代技巧\r\n 适用于敏捷/迭代项目主管的新管理技能\r\n Scrum、XP、UP和Evo的关键性实践\r\n 无论你是IT主管、项目经理、软件工程专业的学生还是软件开发人员,Craig Larman都将帮助你理解每捷和迭代开发的优点,并在整个组织中推行它,从而将这些优点变为现实。
译者序\r\n序\r\n第1章 简介\r\n 软件是新产品开发\r\n 后续内容预告\r\n WEB资源\r\n第2章 迭代和渐进\r\n 迭代开发\r\n 风险驱动和客户驱动的迭代计划\r\n 时间箱迭代开发\r\n 迭代期间,外部利益相关人员不能变更迭代内容\r\n 渐进和自适应开发\r\n 渐进需求分析\r\n 早期“排名前10”的高级需求以及技能性分析\r\n 渐进和自适应计划\r\n 递增交付\r\n 渐进交付\r\n 最常见的错误\r\n 特定的迭代和渐进方法\r\n 后续内容预告\r\n 推荐读物\r\n第3章 敏捷\r\n 敏捷开发\r\n 方法分类\r\n 敏捷宣言和原则\r\n 敏捷项目管理\r\n 拥抱沟通和反馈\r\n 以人为本的编程\r\n 简单的实践和项目工具\r\n 经验型过程对规定型与指令型过程\r\n 基于原则对基于规则\r\n 可持续规程——人员接触\r\n 团队作为复杂的自适应系统\r\n 敏捷是在夸大其词吗?\r\n 特定的敏捷方法\r\n 后续内容预告\r\n 推荐读物\r\n第4章 故事\r\n 后续内容预告\r\n第5章 动机\r\n 软件项目中变化的事实\r\n 迭代开发的关键动机\r\n 迭代地迎接需求挑战\r\n 瀑布型的问题\r\n 后续内容预告\r\n第6章 证据\r\n 总结\r\n 研究的证据\r\n 早期迭代项目的证据\r\n 标准体系的证据\r\n 专家和思想领袖的证据\r\n 迭代开发的商业案例\r\n 瀑布型有效的历史事件?\r\n 后续内容预告\r\n 推荐读物\r\n第7章 SCRUM\r\n 方法概览\r\n 生命周期\r\n 工件、角色和实践\r\n 价值观\r\n 常见错误和误解\r\n 样板项目\r\n 过程混合\r\n 采用的策略\r\n 现实与幻想\r\n 优势与“其他”\r\n 历史\r\n 后续内容预告\r\n 推荐读物\r\n第8章 极限编程\r\n 方法概览\r\n 生命周期\r\n 工件、角色和实践\r\n 价值观\r\n 常见错误和误解\r\n 样板项目\r\n 过程混合\r\n 采用的策略\r\n 现实与幻想\r\n 优势与“其他”\r\n 历史\r\n 后续内容预告\r\n 推荐读物\r\n第9章 统一过程\r\n 方法概览\r\n 生命周期\r\n 工件、角色和实践\r\n 价值观\r\n 常见错误和误解\r\n 样板项目\r\n 过程混合\r\n 采用的策略\r\n 现实与幻想\r\n 优势与“其他”\r\n 历史\r\n 后续内容预告\r\n 推荐读物\r\n第10章 EVO\r\n 方法概览\r\n 生命周期\r\n 工件、角色和实践\r\n 价值观\r\n 常见的错误和误解\r\n 样板项目\r\n 过程混合\r\n 采用的策略\r\n 现实与幻想\r\n 优势与“其他”\r\n 历史\r\n 后续内容预告\r\n 推荐读物\r\n第11章 实践技巧\r\n 项目管理\r\n 环境\r\n 需求\r\n 测试\r\n第12章 常见问题解答\r\n 问题列表\r\n 问题和解答\r\n参考文献\r\n索引\r\n
“过去几十年的大型系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。它们中大多数开发出了可运行的系统——不过,其中只有非常少数的项目满足了目标、时间进度和预算的要求。各种团队,大型的和小型的、庞杂的和精干的,一个接一个地淹没在了焦油坑中。”① 传统的瀑布型试图回避变化,将软件开发等同于类似于手机生产的大规模制造业,从而陷入了泥潭中而不能自拔。事实上,软件领域属于新产品研发的范畴,就像“开发潜在的新油田,或者一种新型轿车、一座新式桥梁或者一个新款消费器材。”② 因此,软件开发是一个复杂行为;“复杂性代表了一种对许多相互作用的基本个体,如原子、分子、神经元或计算机中的比特等的群体行为的新型思维方式。更精确地说,我们关于复杂性的定义是,对具有及时进化潜能的个体群宏观集体行为的研究。它们的交互行为导致了一致的集体现象,所谓的突变属性只能在比那些单个的个体更高的层次上进行描述。”③ 软件领域好比是混沌,是一个变幻莫测的海洋,你需要权衡多种因素,在多重条件下进行博奕,探索出一种行之有效的解决之道。
面对复杂与变化的软件开发,“敢问路在何方?”
UP、XP、Crystal、Scrum、DSDM、FDD、ASD以及精益开发④等都给出了相应的答案。然而,“忽如一夜春风来,千树成树梨花开”,一下子涌现出这么多琳琅满目的方法,让人眼花缭乱,无所适从。需要说明的是,许多标榜自己采用“敏捷与迭代方法”的组织,其实是在追逐时髦,并没有真正领会其要旨,甚至断章取义,陷入教条主义,重蹈瀑布型的覆辙。
本书列举了大量的证据,溯根求源,将各种方法的缘由与适用性娓娓道来,令人茅塞顿开,许多积压在心里的困惑一下子释然。全书共分12章:在前6章的描述中,作者列举了大量的证据和文献,揭示了瀑布型的症结以及敏捷与迭代开发的动机与成功案例;第7章到第10章,则具体讨论了Scrum、XP、UP、Evo等4种敏捷方法,它们的原理与适用性以及成功的案例与历史,还在章节后面列出大量的参考文献。这4章内容的组织形式相仿,便于读者进行比较学习;第11章更具有操作性,介绍了许多行之有效的敏捷与迭代开发的实践技巧;第12章是FAQ(常见问题解答),读者可以将它作为独立的章节,对实践中遇到的问题进行查询。
我们还注意到,在本书英文版的封面上是一名芭蕾舞演员,其寓意为软件开发不仅是一门技术,同时也是一门艺术。作者希望通过他的努力,开发出漂亮的(beautiful)软件来。顺便提一句,这本书在亚马逊网站上被评为五星⑤。
本书的作者Craig Larman先生相信大家不会陌生。他的《UML和模式应用——面向对象与设计导论》⑥深受广大中国读者欢迎。Philippe Kruchten博士(国际著名过程大师,IBM Rational名士,前RUP产品总监)这样评价道:“Craig是一位杰出的授业者,一位卓越的方法学家,一位对象技术的精神导师(guru)。”Martin Fowler(国际著名OO大师,ThoughtWorks首席科学家)说:“人们常常问我,哪本书是引领他们进入OO设计壮丽殿堂的最佳著作。自从幸获Craig的《UML和模式应用》,它就成为了我的倾力之荐。”等等。
阅读Larman先生的书可以说是一种享受,而翻译他的书则是一种压力。承蒙中国电力出版社的认同,我有幸接手这部书的翻译工作,并期望向读者呈现原汁原味儿的译著。在翻译过程中,对于书中的一些疑惑之处,Larman先生给予了热情的帮助和鼓励,并欣然为本书的中文版作序。说实话,有关敏捷与迭代方法的译著应该说比较多,而术语的译法也不尽相同,这也是本书的难点之一。IT之源的咨询师张恂先生(http://www.iturls.com/~xzhang /index.htm)慷慨相助,对本书的部分章节进行了校对,并对全书的术语提出了宝贵意见。尽管翻译过程中很小心,但也难免有疏漏之处,希望大家批评指正,同时,本译著将推出相关网站(http://www.coreader.com),用于读者勘误与交流。
此外,再次感谢我的老朋友,中国电力社的高军,这本书的翻译离不开他的支持;一如既往,我的同事卢青峰对支持网站(http://www.coreader.com)做了很多工作,在此对他表示感谢。最主要的还是要感谢读者朋友,您的认同,才是这项工作最终成功的标志。
张晓坤
2004年8月于中关村
Craig Larman是Valtech公司的首席科学家。而Valtech公司是一家国际化的技术咨询公司,在欧洲.亚洲和北美洲都设有分支机构.同时,他还兼任独立顾问.团队教练.演讲人等职务。
Craig是(Applying UML and Patterns:An Introduction to Object-Oriented Analysis and Design(UML和模式应用:面向对象分析与设计导论))的作者. 此书是OOA/D和迭代开发方面全球最为畅销的书籍,被译成多种语言,并在世界范围的工业和大学中广泛运用。
Craig有过一段作街头音乐家的失败经历.从那之后,也就是20世纪70年代,他用APL语言.PL/I语言和第四代语言创建软件系统.20世纪80年代初期,经过全面的调整之后,他开始对人工智能(这方面很少有他自己的东西)和知识表示产生了浓厚的兴趣,并用Lisp机器.Lisp.Prolog和Smalltalk构建知识系统.他业余时间还经营一个名为Changing Requirements的社团(这个社团曾经叫作Requirements,但成员已经有了一些变动……)。
Craig毕业于加拿大温哥华美丽的Simon Fraser大学,取得了计算机科学的学士和硕士学位。