本书介绍单个敏捷实践及其他敏捷实践之间的联系,同时传授制定实施策略的技巧。本书涉及的敏捷模式,不只是作者的个人意见,也不是从未试过的新方法,而是若干真实项目案例的经验总结。本书的主要分为四部分。第1部分阐述软件开发的基本问题,是其他部分的基础。第2部分是本书的核心——为你的组织选择敏捷实践。第3部分包括反馈实践模式、技术实践模式、辅助实践模式、组合模式四个内容。第4部分分析了两个组织实施情况的报告,展示组织如何一步步实施敏捷实践。本书适合想要学习敏捷或想转向敏捷开发的管理者、开发者、架构师或客户。对于想要深入全面探讨敏捷实践的人来说,本书也是一本很好的指南。
在组织中成功实施敏捷的成熟模式和技术
软件开发成功路线图—敏捷模式
(美) Amr Elssamadisy 著
初悦欣 亢江妹 译
作者系统调查了敏捷实施过程中最常见的障碍,将敏捷方法提炼成30个成熟的敏捷实践模式,运用这些模式可以解决组织在实施敏捷方法过程中遇到的许多困难。
本书阐述了已有的敏捷实践模式:实现既定策略所需要的全部信息。通过经典的模式,作者清晰指出在各种情景下适宜实施的敏捷解决方案。这些实施模式可以帮助你:
了解敏捷成功的核心动力、准则和价值。
重点关注提交的业务价值,识别项目中的“异味”。
获得快速有效回馈的实践:迭代、启动会、站立会议、演示和回顾等。
培养团队开发:联合驻扎、自组织、跨职能角色以及如何让客户参与。
增强技术工作和流程:测试、重构、持续集成、简单设计、集体代码所有权和结对编程。
成为一个高效的教练,学会到敏捷社区中学习。
集成敏捷实践组合,使工作效果更显著。
作者简介
Amr Elssadisy 作为Gemba Systems的合作伙伴,他帮助各种类型的团队针对自身独特的环境实施敏捷实践。他使用C++、J2EE和.NET构建软件系统,并能参与和指导团队利用.NET和J2EE技术进行敏捷软件开发。在创建Gemba之前,Amr曾在许多敏捷社区中知名的公司如Valtech和思特沃克工作过。在那里他参与并最终领导了该公司的第一个极限编程团队。他曾在许多敏捷开发大会上做过演讲。
在这本书中,你我将一起关注敏捷实践的实施。我将解答一些你可能正想知道的基本问题:
从哪里下手?
对特定的环境来说,哪些实践最适合?
怎样一步一步地实施这些实践?
哪些陷阱需要注意?
这本书适合你吗
你在采纳一些敏捷实践吗?你正在慎重地考虑是否要在团队中尝试一些敏捷实践?你是否已读过一本有关敏捷方法(如极限编程、Scrum或测试驱动开发)的书?或者至少对敏捷理论很信服,正想实践看看?
或许你刚成功完成第一个敏捷项目,另外一个团队希望你能加入去帮助他们。当然,每个项目都是不同的。那么,上次使用的实践在这个项目中也会有效吗?不一定!本书首先将帮你了解为什么“不一定”;接着,阐述应该采纳什么实践,帮你做出决策;最后,是否需要对某些实践进行调整,以及如何调整,本书也会给出一些提示。
也许很不走运,你恰好曾经参与过一个失败的敏捷项目(或许正处于一个失败的项目中)。读读这本书,了解一下为什么实施的那些实践不适用。要敏捷地实施敏捷方法。
如果你属于上述任一情形,那么这本书就是为你准备的。它将帮助你认识一个个实践,了解其间的联系,并且传授制定实施策略的技巧。有很多公司都应用过这个策略,并在一些项目中获得了成功。同时,这本书还将提醒你实践过程中会出什么样的问题,以及如何识别并解决那些问题。你将要用到的这些模式,不只是我的个人意见,也不是从未试过的新方法,而是若干真实项目案例的经验总结。
最后,这本书不适合于:
已经获得敏捷实践经验,寻找新理论或方法的资深实践者。所有的信息都来自于若干项目的实际经验,很可能你已经听说过了。
从零开始的初学者。这本书没有从零开始描绘每一个实践。但是,对于很多想深入全面探讨敏捷实践的人来说,这本书会是很好的指南。
计划
我会提出更多的问题。要踏上敏捷之路,这些问题都是你应该考虑和回答的。是不是听起来太完美了,让人无法相信?但这是真的。我们中的很多人在敏捷社区里摸爬滚打了好多年,才发现了一个可行的方法。本书分享了大家的经验。读完这本书,你将能够:
理解敏捷实践背后的动力、原则和价值。这是所有敏捷实践的基础和成功实施敏捷的关键。
以客户的业务价值为中心。列出对多数客户都很重要的业务价值,例如“降低成本”。
当业务价值的不能按时交付时,需要能提前识别各种征兆。我把这些征兆称为“异味”。与“降低成本”相关的一个例子是“客户什么都想要(甚至包括厨房的洗涤槽)”。
“Everything including the kitchen sink”是一个比喻,意思是“所有的东西,无论是否必要”。——译者注
把这些业务价值、异味和某个敏捷实践关联起来。
利用前四步所获得的信息,决定采纳哪些实践,以便提高组织的业务价值,并消除异味。此时你将能够拿出一个初步的敏捷实施策略。
以模式的方式对每个实践给出详细的阐述,涵盖实施相关的种种细节。
找出能够组合在一起实施的多个实践,然后形成组合使用。把这些组合与业务价值、异味也关联起来。描述这些组合及其实施策略。
内容结构
本书由几大部分组成,每部分各包含一些章。我们来快速了解一下整体结构及主要内容。我推荐你通读第1~8章,并完成章后的练习。这将会使你对有关软件开发的本质特征有所了解,保证我们对此的认识和理解处于同一水平线上。接着,帮你一步步地根据自己组织的特点创建敏捷实施策略,了解用来描述所有实践的模式。
在你完成这八章之后,参考本书第三部分的内容,开始按照你的策略进行实施。你可以跳着读,也可以一章一章按顺序阅读。你可以分别阅读每个章节所描述的模式。每一章针对一个特定的实践指导你进行实施,提醒你可能出现的陷阱,并提供一些参考文献,以备深入探讨。
阅读案例部分,感受这种方法是如何在其他组织中实际应用的。但要留心——真实世界中的情况会更加复杂。最后,附录中列出了一些非常有用,必须提及但又不适于在本书中详述的一些内容。它们很短,因此,可在阅读过程中随时翻看。
第一部分关于软件开发的想法
第一部分阐述了软件开发的基本问题,是其他部分的基础。我调查了软件开发困难重重的原因,也研究了为何采纳新实践(任何实践,不单单是敏捷实践)会如此不易,了解到其成功与否取决于你的投入和付出。阅读其中的章节,记得在阅读其他部分时思考这些章节提及的想法。
第1章学习是瓶颈
第2章个体敏捷性
第二部分实施敏捷的艺术
第二部分开始谈到本书的核心——为你的组织选择敏捷实践。如果你已经阅读了这些章,并完成了相关的练习,那么你已经初选了一组实践,准备让你的团队开始实施。需要注意的是,为使你能创建一个实施策略,我会引用到很多在后续章节才会阐述的实践模式。因此,如果你对要采纳的一组实践还不明白,没什么关系,在后续的章节会有详细的描述。
第3章业务价值
第4章异味
第5章敏捷实施策略
第三部分敏捷实践模式
第三部分详细说明了如何成功采纳并灵活适应这些实践,以达到在第二部分中为组织确定的业务目标。在真正将你的实施计划付诸实践时,请将这部分作为参考手册。阅读第6、7、8章,然后在实施时根据需要阅读其余相关的内容。注意这个部分分成了四个子部分。
第6章敏捷实践实施模式
第7章目标
第8章周期
第三部分(a)反馈实践模式
绝大多数反馈实践都与团队协作及工作计划密切相关。这些实践通过迭代式开发软件系统,持续检查软件是否满足客户需要,以便协助你及团队“解决正确的问题”。
第9章迭代
第10章启动会
第11章待办工作项
第12章规划“扑克”
第13章站立会议
第14章完成状态
第15章演示
第16章回顾
第17章频繁发布
第18章“联合驻扎”团队
第19章自组织团队
第20章跨职能团队
第21章客户作为团队成员
第22章唤醒式文档
第23章用户故事
第24章用例
第25章信息辐射器
第三部分(b)技术实践模式
技术实践通过创建和维护软件系统代码保证“正确地解决问题”。它们是帮助你的团队开发并不断改进系统的“钻头”实践。
第26章自动化测试
第27章测试后行开发
第28章测试先行开发
第29章重构
第30章持续集成
第31章简单设计
第32章功能测试
第33章集体代码所有权
第34章结对编程
第三部分(c)辅助实践模式
这一组实践在本质上说不是敏捷实践,但它们能用来协助团队实施敏捷,并潜移默化地影响你的团队。
第35章教练
第36章融入敏捷社区
第37章读书会
第38章研讨会
第39章课堂培训
第三部分(d)组合模式
有一些敏捷实践结合在一起实施时,会极为有效,这即是敏捷实践组合模式。前两个组合重点关注人、交互和团队协作。其中的实践会使得团队能适时地识别变化,并提供一个可以响应变化的工作流程。后三个组合则围绕技术实践,赋予团队以技术敏捷性,以便及时识别变化,做出响应。
第40章敏捷迭代
第41章沟通组合
第42章演进式设计
第43章测试驱动开发
第44章测试驱动需求
第四部分案例研究
这一部分是关于两个组织实施情况的报告。它不再只谈理论,而是展示这两个组织是如何一步一步实践的。其中一个非常成功,另一个还在继续摸索。两个公司都是真实存在的,确有其人、其事。看起来似乎没那么简单。不过,在最终成功之前,你的实施过程也会如此。
第45章BabyCenter
第46章X公司
第五部分附录
附录中包含了不太适合于本书主线,但却可能对你很有用的一些资料:
附录A敏捷模式与业务价值的映射
附录B敏捷模式与异味的映射
附录C充分利用敏捷模式
附录D更多阅读资源
如何阅读这本书
关于你需要做什么,已经谈得足够多了。那么你该怎么做呢?第一件你必须做的事是为你的团队找出一组敏捷开发实践。怎么做呢?你可以阅读第一部分,完成第3、4、5章后面的练习。花一定的时间,认真完成那些练习,这非常重要。完成这些之后,你将会得到一组排好优先级的实践。
此时你可以开始阅读第三部分,它包括了敏捷实践模式及其组合。针对你那一组排好优先级的实践,阅读对应的每一个模式,深入研究,看它是否适用于你的环境。当发现一个合适的实践,就可以参考其中的指导,着手实施。同时,你也需要利用每个模式中所提到“异味”,注意发现实施错误的预兆,避免掉入陷阱。
最后,持续评估已采纳实践的有效性,及时调整,争取为你的组织带来更大的业务价值。翻到下一页,马上开始吧!
“在该书中,Amr Elssamadisy提出了一系列清晰准确的模式,它们能帮你找出组织在软件开发流程中的阻碍。在你进行持续过程改进时,这些模式还能帮助你做出重大改进,让你对达到最佳流程充满信心。”
——Bob Bogetti,Baxter健康护理公司项目经理
“该书主题浅显易懂。正如书中所说,敏捷并不适合所有情况。该书提供了一些实践方法,供读者自助式地选择和应用。该书对于那些很有经验的敏捷实践者来说也很有帮助,尽管作者在前言中提到说可能不太适合。如果有人觉得自己知道书中的所有方法,而且认为是小菜一碟,那么就有些骄傲自大了。该书唤起了我对一些关键理念的记忆,而它们恰恰是我自己的团队所忽视的。这些理念并不容易表达出来,但Amr却很出色地完成了这个任务。书中的实例都是经过深思熟虑的,并且主题的次序看起来也非常自然。我会将该书推荐给所有对敏捷感兴趣的人。”
——David Chia,BabyCenter首席工程师
“在‘走向敏捷’过程中,最困难的是如何将那些相互联系的敏捷实践拆分成可以一次消化的多个小块,并找出哪个适合首先尝试。很多书都在说敏捷团队是什么样的,但是从自己当前的状况迁移到那个阶段,其过程却充满荆棘!Amr拥有丰富的敏捷团队培训经验。他将给出指导原则,帮助你根据具体情况制定自己的实施策略,这是其经验的充分体现。Amr并不仅仅解释敏捷实践方法,他还告诉你如何用敏捷的方式进行思考,这样你就可以避免常见的陷阱,并创建合适的实施计划。这是一本让我期盼已久的书,我要在培训新敏捷团队的时候带着它!”
——Ryan Cooper,敏捷教练/开发者
“明显的是,Amr在很多一团糟的软件项目上钻研了很多时间,从中总结出了这些经验。在本书中,他描述了一种聪明的敏捷实施策略,关注客户,提供业务价值。Amr的风格简单且直接,为开发团队中的成员提供了实用、有效的观点和见解。如果你也像我一样,正在考虑是否在组织中采纳敏捷方法,那么Amr在这个问题上的观点就能助你进行建设性思考,并找出一条更好的路。”
——Emily Bache,软件开发者
“本书中的一系列模式本身就是一些非常实用的索引,但我最欣赏的还是第5章。该章建议应该把敏捷方法看做一个系统,并提供了具体的模型,展示各实践之间如何相互联系和依赖。该章还建议人们应该首先找出需要提高的业务价值和要解决的问题,然后确定一个合适的顺序采纳这些实践方法。”
——Laurent Bossavit,咨询师,2006年获得Gordon Pask奖
“本书填补了许多人甚至还没有意识到的一块空白。流程的出现不是为了理论上的完整性,而是为了满足业务目标。Amr将会告诉你如何让组织里的开发流程也向目标看齐。”
——Ken DeLong,Baby Center首席架构师
“我很喜欢这本书里的想法。恨不得在两年前就买到这本书,那时我所在的团队在采纳敏捷实践,并且正经历一个非常困难的时期。该书是实施敏捷实践的实用(且敏捷的)指南。针对不同的项目环境,该书提供了不同的实施策略,帮助你选择敏捷实践及实施次序,以便获取最大化的业务价值。”
——Dmitri Dolguikh,敏捷软件开发者
“Amr的这本关于敏捷模式的书太出色了。如果你的项目需要敏捷开发方法,但不确定从哪里着手,以及如何克服文化和技术上的障碍,那么该书会对你有所帮助。如果你不知道怎样向同事和高级管理者解释敏捷方法的基本好处,Amr将告诉你如何直接从业务层次角度描述其对软件开发过程的促进作用。如果你想在组织中引入测试驱动实践,那么就该阅读本书:它提供了所有可用方法的全景,每种方法能解决什么问题(不能解决什么问题),以及一步步向更高级别进阶的路线图。Amr在阐述模式时所使用的那些小故事,很容易让人联系到实际情况。借此你能很快地意识到某个具体的模式是否适合于你自己的情况。”
——Hakan Erdogmus,《IEEE软件》主编
“本书是非常好的资源,它能帮你找到某个敏捷实践应用及调整的技巧,帮助你的项目获得成功。”
——Dave Hendrickson,架构师
“Amr的这本好书带来了一种独特、实用的方法,它可以帮助你找到适合自己环境的敏捷组件。Amr同样详细描述了一些其他敏捷书籍所欠缺的部分:当尝试给管理者和客户灌输新的概念时,每个组件所需的关键弹药──清晰定义的业务价值。”
——Jim Holmes,Quick Solutions公司,微软MVP
“这本书描述了敏捷实施的步骤和过程。我以前所看过的资料中,从未像这本书一样如此全面、透彻。从为什么要实施敏捷到实施敏捷的成功标准,你都能从该书中找到答案。我愿意向敏捷实施者推荐这本书。”
——Yasser Helmi,思特沃克软件公司,高级开发者
“在真正的敏捷这方面,Amr是一个真正的研究者。我与Amr一起工作了很多年,有过很多讨论。我们争辩过,欢笑过,振臂高呼过。什么才是真正的敏捷?如何将真正的敏捷传播给每一个软件开发参与者?他心中一直有着强烈的愿望,希望找到答案。在该书中,你既能找到一些针对当前问题的解决方法,又能找到如何才能做得更好的改进方案。我已经等不及拿到这本书的最终版本好好品味一番了!”
——Derek Lane,Semantra公司技术总监和开发副主席
“如何在一个组织中实施敏捷,本书做了一个非常简洁、实用的阐述。他知道‘通用良方’这种东西并不存在,因而向读者展示了启发式的模式(和异味),以便让他们能联系到各自的具体情况。为了让读者找到一个合适的实施策略,他并不是直接告诉大家如何去做,而是坚持通过回答问题和完成测试来启发、引领读者。”
——Don McGreal,Learning Solutions,Improving Enterprises公司主管
“我知道哪里让人痛苦——我就是不知道怎么解决它。在向我的开发团队引入精益和敏捷方法时,这是我常会遇到的抱怨。有那么多的敏捷实践可以选择,我该从哪些下手,哪些才能最有效地解决我们面临的问题?本书将精益和敏捷社区中最好的想法结合在了一起,展示了敏捷实践的全景,各实践之间的相互关系,以及其在提升业务价值,消除‘令人讨厌’的异味方面的相对重要性。本书通过将每个敏捷实践化解为一个标准的实施模式,提供一个简单清晰的路线图帮你分析应该把时间投入到什么样的敏捷实践上。并不是所有的敏捷实践都同等重要,因此很有必要了解什么样的敏捷实践才能真正解决团队的问题。阅读本书可以节省你许多时间。你将庆幸自己曾读过这本书。”
——Perry Reid,E&P系统定制开发组,Chesapeake Energy,IT管理者
“对于想要学习敏捷或想更进一层的团队,本书都是一本很好的参考读物。从经常忽视的软技能,如学习和交流,到测试和结对编程这些核心开发技能,Amr阐述了许多模式。该书蕴含了许多实际经验和智慧。强烈推荐大家阅读。”
——Rob Sanheim,Relevance公司,主席
“在大型组织中向敏捷软件开发转型是很艰难的,并且有时候很难取得回报,尤其是你不得不在此过程中‘说服’许多人的时候。但是,如果能够在开始注意人们对敏捷的反应模式,你就能够着手把他们的反对意见转变成组织的转型策略了。这本书通过关注组织的需求和目标,可以帮助我们快速克服这些困难。让管理团队积极主导,帮助他们创建实施策略,然后描述要达到目标需要采纳哪些实践。Amr通过清晰地描述该过程中每个步骤的好处和可能的陷阱,让我们从本书描述的组合中选取最合适的实践模式,从而使得我们能够随时应对业务变化。感谢Amr,如此的旅途可能是孤独的,但我们误入歧途的可能性因此却少了一些。”
——Sean Sheehan,Lean SW组织转型管理者
“如何帮助敏捷新手理解应该先采纳什么实践,如何在自己独特的开发环境中调整实践,在这些方面Amr所做的工作非常出色。该书真实地阐述了敏捷实施的实际问题,并提供了详尽的真实案例。”
——Scott Weber,高级软件工程师
“对于所有想要实施敏捷实践方法,又需要时刻记得自己的组织结构、团队文化及客户的人们来说, Amr的书是一盏指路明灯。该书指导读者找出自己组织中最紧要的瓶颈,推荐最好的改进措施,并阐述了其背后的原因。本书并没有给出什么操作规范让读者按部就班,而是指导读者在面对敏捷实施时做一个更好的思考者。”
——Niraj Khanna,GreenBar咨询公司联合创始人
在组织中成功实施敏捷的成熟模式和技术
作者系统调查了敏捷实施过程最常见的障碍,将敏捷方法提炼成30个成熟的敏捷实践模式,运用这些模式可以解决组织在实施敏捷方法过程中遇到的许多困难。
本书阐述了已有的敏捷实践模式:实现既定策略所需要的全部信息。通过经典的模式,清晰指出在各种情景下适宜实施的敏捷解决方案。这些实施模式可以帮助你:
Ø 了解敏捷成功的核心动力、准则和价值
Ø 重点关注提交的业务价值,识别项目中的“异味”
Ø 获得快速有效回馈的实践:迭代、启动会、站立会议、演示和回顾等
Ø 培养团队开发:联合驻扎、自组织、跨职能角色以及如何让客户参与
Ø 增强技术工作和流程:测试、重构、持续集成、简单设计、集体代码所有权和结对编程
Ø 成为一个高效的教练,学会到敏捷社区中学习
Ø 集成敏捷实践组合,使其工作效果更显著
无论你是在计划实施自己的第一个敏捷项目,还是尝试在下一个项目中进行强化,本书都能起到积极帮助作用。这种为敏捷方法设计的观点能让你在敏捷项目中胜任诸如管理者、开发者、架构师或客户中的任一角色。
Linda Rising的序言
我最近又坐了一次飞机——一架非常小的飞机。我的座位一边是窗户,另一边就是过道。这让我很容易看到过道另一边的两位邻座——她们像是姐妹的两个年轻女孩。她们是单独来的,而且很明显以前从Houston到过Richmond。在我们将要起飞时她们才入座,然后在这架小飞机升空后,她们找到行李箱并翻出了书。这让我十分惊讶!年轻人在读书!并且在整个两小时的飞行中都在读书。我曾对人性产生过怀疑,而这让我完全恢复了信念。还有希望!乘坐飞机的好处之一就是能花一些时间来阅读,同时还会发现其他人也在阅读——甚至是年轻人。
模式和书籍之间存在某种联系,可以说是形影相随。记得在之前一次有关模式的演讲中我谈到过这些。演讲结束后,一位听众找到我,并开始查看我带来的那些关于模式的书籍。他说:“我的一些最快乐的时光是在读书中度过的。”说得很好。喜欢模式的人也喜欢书籍,他们买书,并且认真阅读。事实上,参与大会的人们都喜欢谈论模式,并且这些大会的输出产物又变成了书籍。但现在,你或许会觉得大量书籍浩如烟海,而我们的时间又是那么有限。我有一个乘坐飞机时阅读书籍的列表,它还在不断增长。而每次在收拾行李箱的时候,我总发现自己难于抉择。因此,虽然我喜欢阅读(尤其是一本关于模式的书籍),但也还是要怀疑人们是否有时间来阅读。
我觉得Amr Elssamadisy的书不会深埋于某些人的飞行阅读列表中,这包括以下几个原因。不仅因为这是一本关于模式的书,也不仅因为这是一本关于敏捷开发的书。我是模式的信徒,也是敏捷开发的信徒。与其他许多信徒一样,只有这种“更好途径”的信仰是不足以说服那些着眼于开销和收益的决策者。即使获得了计算机科学的博士学位,并且在度量标准设计领域里工作,同时还拥有数学硕士学位,我还是发现很难找到令人满意的开销、收益度量方法。正如英国著名作家Lewis Carroll曾警告过:“如果不知道将走向何方,任何道路都会带你到达那里。”
Linda Rising是《Fearless Change》一书的作者之一,该书的另一位作者是Mary Lynn Manns。
出自Carool,L的《爱丽丝梦游仙境》,该书于1865年出版。
Victor Basili在1994年发表的那篇经典的论文“The Goal,Question,Metric Approach”里推荐道:
为生产率和质量的发展制定一系列针对企业、部门和项目业务的目标,以及相关的度量指标。
尽可能通过一个完全可度量的方式来定义这些目标,并创建一些问题(基于模型)。
指明需要收集的各种指标,以便回答这些问题,跟踪流程及产品是否与目标相一致。
开发数据采集的机制。
收集、验证和分析实时的数据进行反馈并纠正项目行为。
事后分析这些数据,评估与目标的匹配性,并对未来提出改进建议。
我想要说的是,对于那些想要遵循Basili论文的建议,并想将其应用于转向敏捷开发(而不是计量学)的人而言,这本书是很有用的。这本书收集了一系列的模式,但它并没有仅限于模式。它是关于敏捷方法的,但它并不只是传颂敏捷方法的思想。这本书很实用,值得一读,以业务价值为焦点。书中给出了充满智慧的研究论点,同时指出要实现敏捷(或是其他有价值的目标),并不是只有一条路,并不存在一个统一的标准方法。如同在其他讨论代码的敏捷书籍中常用到的方式一样,本书也列举一些 “异味”并对其进行分析。本书不单指出可采纳的模式,而且帮你理清思路,找到真正的业务价值,这或许会很有帮助。无论你是否考虑实施敏捷实践,这都是值得一试的行动。
此外,我还是要指出这本书里没有银弹。很遗憾!模式总是与一定的适用情况联系在一起,并不是任何时候都适合应用这样的解决方案。一些良好的模式通常包含一些标注,它们会向使用者警告应用该模式的结果,即使环境合适,也无法确保大家对此会一直满意下去。关于模式最好的建议,其实与生活一样,就是在仓促行动之前要考虑清楚。虽然每个模式都有一定的适用范围,但是我还是很高兴Amr能给出其指导原则。在翻阅此书的过程中,我总是对这一点非常欣赏。通过强调适合什么样的读者,作者帮了我们一个大忙。浏览一下前言中的“这本书适合你吗”,它会帮你快速判断是否需要购买本书。
我希望你觉得自己是目标读者之一,想购买本书,而且还想把它放在阅读列表最上方并开始读它。我坚信如果能这么做,那你就会发现这些模式对敏捷转型很有用。这同时也说明我将会在下次的敏捷大会上见到你。好好阅读吧!
Joe Rainsberger的序言
组织变革是很困难的,采纳敏捷方法交付软件也是如此。无论是对参与者、领导者或旁观者,大家都感到整个过程压力很大。在本书出现之前,指望一本书能够帮助人们实施成功并走向敏捷,我对此完全不抱希望。
网站:http://wwwdiasparsoftwarecom。Joe Rainsberger是《Junit Recipes中文版:程序员实用测试技巧》一书的作者,因其对敏捷软件开发实践的贡献而获得了2005年敏捷联盟Gordon Pask奖。
本书对于敏捷实施提供了全面、简洁且实用的建议。本书提供的建议包括:采用哪些实践,怎样采纳,什么时候采纳,还包括如何融入社区并提供高效的软件交付,甚至还包括如何根据需要进行学习。在我所见过的此类主题的著作中,这是一本最容易理解的手册了:具体详尽,易于接受,同时又不是很教条,不会让你忘记独立思考。这是我发现的最接近“实施宝典”的一本著作,参考它可以帮助你走上敏捷交付之路。
如同有人写的“食谱”书,我很偏爱本书的风格。我发现,一旦理解了敏捷宣言,通过了对新概念先问“为什么”的阶段,就会找出描述方式的具体、精炼、发人深省的实践,然后尝试实施,而这恰恰是本书作者的风格,对我而言是再合适不过了。如果想成功交付软件,并且相信敏捷方法可以成功,那就从这本书开始吧!好好读读这本书,查阅相关的参考书目,虽然我认为自己是个经验丰富的开发人员,但还是从本书中发现了无数很有价值的知识。好好钻研本书吧!
(美)Amr Elssamadisy 著:Amr Elssadisy 作为Gemba Systems的合作伙伴,他帮助各种类型的团队针对自身独特的环境实施敏捷实践。他使用C++、J2EE和.NET构建软件系统,并能参与和指导团队利用.NET和J2EE技术进行敏捷软件开发。在创建Gemba之前,Amr曾在许多敏捷社区中知名的公司如Valtech和思特沃克工作过。在那里他参与并最终领导了公司的第一个极限编程团队。他曾在许多敏捷开发大会上做过演讲。
初悦欣 亢江妹 译:暂无简介
2009年我有幸参加了“敏捷中国”大会。看着几百人的会场,回想起四年前自己抱着书尝试给团队使用结对编程的经历,实施的过程中的酸甜苦辣等各种滋味一起涌上心头。如果当时读过Amr的这本书,那会让自己的团队少走多少弯路啊!
2009年的“敏捷中国”盛况空前,不仅人数超过以往,而且与会者也有幸目睹Kent Beck和Dave Thomas等大师的风采。国内众多知名企业开始拥抱敏捷方法,并且越来越多的国人在关注敏捷,这一切都说明采用敏捷方法是不可阻挡的趋势。然而实施敏捷就真的会100%成功吗?请记住,敏捷不是银弹,采纳敏捷失败的企业比成功的多得多!以我自身的经历来说,在加入思特沃克之前就经历过敏捷的失败,而现在我是思特沃克公司Mingle团队里的一员。Mingle是一个代码库年龄超过四年的项目,但我们依然能够大胆地加入新功能和重构代码。可以说Mingle就是一个鲜活的自组织团队,生产率要比传统开发团队高出许多。 为什么存在这样的不同呢?这是因为当初我没有完全理解什么是敏捷,也没考虑那些敏捷实践是否合适就采用了,而Mingle团队却为自己量身定制了一批最佳敏捷实践,这同时也说明了不是敏捷自身的问题,而是使用方法上的问题。 如果你还在犹豫是否应当采纳敏捷方法,或者想让团队的开发能力更上一层楼,那么你就好好读读本书,其恰恰能在这个过程中起到传道、授业、解惑的作用。最后我坚信中国的开发团队里不乏有识之士,敏捷之花最终会在祖国大地上绽放。
借此机会感谢我的父母和一直支持我的朋友们,你们是我生活与工作的动力和源泉,我会好好珍惜你们。
初悦欣
对本书的赞誉
译者序
译者简介
Linda Rising的序言
Joe Rainsberger的序言
前言
致谢
作者简介
第一部分对于软件开发的感想
第1章学习是瓶颈
11一个假定的实验
12透过“学习是瓶颈”看敏捷
13识别并响应变化的循环周期
14循环周期:充分非必要
15为什么这很重要?从理论到实践
16关注瓶颈
17小结
第2章个体敏捷性
21为什么要采纳敏捷实践
211怎样才算成功的采纳
212问题:许多敏捷实施案例都不成功
213什么原因?情况有多种
22职责过程模型
221怎么做才能变得更积极负责
222要是团队人员不停地抱怨,我该怎么办
23有效的敏捷
231成功的团队拥有积极负责的队员
232认知和响应变化需要责任心
233成功的敏捷软件开发从个人做起
24个体敏捷性
25从理论到实践
第二部分实施敏捷的艺术
第3章业务价值
31缩短上市时间
32增强产品实用性(市场价值)
33提高产品质量
34提高灵活性
35增强透明度
36降低成本
37延长产品生命周期
38业务价值是组织的目标
39从理论到实践:确定组织的业务价值
第4章异味
41业务异味
411交付质量无法令客户接受
412交付新功能需要太长时间
413有些功能客户没有使用
414软件对于客户不适用
415软件开发过于昂贵
416我们与他们的对立
417客户不管三七二十一,什么都要
42流程异味
421客户?什么客户?无法实现直接、经常性地客户参与
422令管理层惊讶——缺乏透明度
423瓶颈资源——项目成员同时属于多个团队
424项目反复拖延
425bug跟踪系统中有数以百计的bug
426在发布前需要一个固化周期
427没能经常集成(通常是因为集成一次太痛苦了)
43以痛楚作为激励
44从理论到实践:你能找到什么异味
第5章敏捷实施策略
51敏捷实践
52敏捷模式到业务价值的映射
53实施敏捷的艺术
54下一步
55从理论到实践:制定适用于你的敏捷实施策略
第三部分敏捷实践模式
第6章敏捷实践实施模式
61什么是模式
62更有效地利用模式
63人物介绍
第7章目标
71业务价值
72小故事
73适用情况
74阻力
75因此
76采纳方法
77但是
78变化
79参考文献
第8章周期
81业务价值
82小故事
83适用情况
84阻力
85因此
86采纳方法
87但是
88变化
89参考文献
第三部分(a)反馈实践模式
第9章迭代
91业务价值
92小故事
93适用情况
94阻力
95因此
96采纳方法
97但是
98变化
99参考文献
第10章启动会
101业务价值
102小故事
103适用情况
104阻力
105因此
106采纳方法
107但是
108变化
109参考文献
第11章待办工作项
111业务价值
112小故事
113适用情况
114阻力
115因此
116采纳方法
117但是
118变化
119参考文献
第12章规划“扑克”
121业务价值
122小故事
123适用情况
124阻力
125因此
126采纳方法
127但是
128参考文献
第13章站立会议
131业务价值
132小故事
133适用情况
134阻力
135因此
136采纳方法
137但是
138变化
139参考文献
第14章完成状态
141业务价值
142小故事
143适用情况
144阻力
145因此
146采纳方法
147但是
148变化
149参考文献
第15章演示
151业务价值
152小故事
153适用情况
154阻力
155因此
156采纳方法
157但是
158变化
159参考文献
第16章回顾
161业务价值
162小故事
163适用情况
164阻力
165因此
166采纳方法
167但是
168变化
169参考文献
第17章频繁发布
171业务价值
172小故事
173适用情况
174阻力
175因此
176采纳方法
177但是
178变化
179参考文献
第18章“联合驻扎”团队
181业务价值
182小故事
183适用情况
184阻力
185因此
186采纳方法
187但是
188变化
189参考文献
第19章自组织团队
191业务价值
192小故事
193适用情况
194阻力
195因此
196采纳方法
197但是
198变化
199参考文献
第20章跨职能团队
201业务价值
202小故事
203适用情况
204阻力
205因此
206采纳方法
207但是
208变化
209参考文献
第21章客户作为团队成员
211业务价值
212小故事
213适用情况
214阻力
215因此
216采纳方法
217但是
218变化
219参考文献
第22章唤醒式文档
221业务价值
222小故事
223适用情况
224阻力
225因此
226采纳方法
227但是
228变化
229参考文献
第23章用户故事
231业务价值
232小故事
233适用情况
234阻力
235因此
236采纳方法
237但是
238变化
239参考文献
第24章用例
241业务价值
242小故事
243适用情况
244阻力
245因此
246采纳方法
247但是
248变化
249参考文献
第25章信息辐射器
251业务价值
252小故事
253适用情况
254阻力
255因此
256采纳方法
257但是
258变化
259参考文献
第三部分(b)技术实践模式
第26章自动化测试
261业务价值
262小故事
263适用情况
264阻力
265因此
266采纳方法
267但是
268变化
269参考文献
第27章测试后行开发
271业务价值
272小故事
273适用情况
274阻力
275因此
276采纳方法
277但是
278参考文献
第28章测试先行开发
281业务价值
282小故事
283适用情况
284阻力
285因此
286采纳方法
287但是
288变化
289参考文献
第29章重构
291业务价值
292小故事
293适用情况
294阻力
295因此
296采纳方法
297但是
298变化
299参考文献
第30章持续集成
301业务价值
302小故事
303适用情况
304阻力
305因此
306采纳方法
307但是
308变化
309参考文献
第31章简单设计
311业务价值
312小故事
313适用情况
314阻力
315因此
316采纳方法
317但是
318变化
319参考文献
第32章功能测试
321业务价值
322小故事
323适用情况
324阻力
325因此
3251物件清单管理测试
3252自动化功能测试的益处
326采纳方法
327但是
3271实施异味
3272架构异味
328变化
329参考文献
第33章集体代码所有权
331业务价值
332小故事
333适用情况
334阻力
335因此
336采纳方法
337但是
338变化
339参考文献
第34章结对编程
341业务价值
342小故事
343适用情况
344阻力
345因此
346采纳方法
347但是
348变化
349参考文献
第三部分(c)辅助实践模式
第35章教练
351业务价值
352小故事
353适用情况
354阻力
355因此
356采纳方法
357但是
358变化
359参考文献
第36章融入敏捷社区
361业务价值
362小故事
363适用情况
364阻力
365因此
366采纳方法
367但是
368变化
369参考文献
第37章读书会
371业务价值
372小故事
373适用情况
374阻力
375因此
376采纳方法
377但是
378变化
379参考文献
第38章研讨会
381业务价值
382小故事
383适用情况
384阻力
385因此
386采纳方法
387但是
388变化
389参考文献
第39章课堂培训
391业务价值
392小故事
393适用情况
394阻力
395因此
396采纳方法
397但是
398变化
第三部分(d)组合模式
第40章敏捷迭代
401业务价值
402小故事
403适用情况
404阻力
405因此
406采纳方法
407但是
408变化
409参考文献
第41章沟通组合
411业务价值
412小故事
413适用情况
414阻力
415因此
416采纳方法
417但是
418变化
419参考文献
第42章演进式设计
421业务价值
422小故事
423适用情况
424阻力
425因此
426采纳方法
427但是
428变化
429参考文献
第43章测试驱动开发
431业务价值
432小故事
433适用情况
434阻力
435因此
436采纳方法
437但是
438变化
439参考文献
第44章测试驱动需求
441业务价值
442小故事
443适用情况
444阻力
445因此
446采纳方法
447但是
448变化
449参考文献
第四部分案例研究
第45章BabyCenter
451BabyCenter敏捷实施——2007年一季度
4511制定敏捷实施策略
4512结论
452BabyCenter敏捷实施回访——2008年一季度
第46章X公司
461X公司敏捷实施过程——2007年一二季度
4611报告背景
4612当前业务目标
4613硝烟四起
4614建议在2007年余下的日子里实施的实践方法
4615长远考虑
4616结论
462X公司敏捷实施——回访
第五部分附录
附录A敏捷模式与业务价值的映射
附录B敏捷模式与异味的映射
附录C充分利用敏捷模式
附录D更多阅读资源
参考文献