首页>参考读物>计算机科学与技术>综合

软件开发成功路线图:敏捷模式
作者 : (美)Amr Elssamadisy 著
译者 : 初悦欣 亢江妹 译
出版日期 : 2010-03-19
ISBN : 978-7-111-29943-1
定价 : 45.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 268
开本 : 16
原书名 : Agile Adoption Patterns: A Roadmap to Organizational Success
原出版社: Pearson Education Asia
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书介绍单个敏捷实践及其他敏捷实践之间的联系,同时传授制定实施策略的技巧。本书涉及的敏捷模式,不只是作者的个人意见,也不是从未试过的新方法,而是若干真实项目案例的经验总结。本书的主要分为四部分。第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://wwwdiasparsoftwarecom。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章学习是瓶颈
11一个假定的实验
12透过“学习是瓶颈”看敏捷
13识别并响应变化的循环周期
14循环周期:充分非必要
15为什么这很重要?从理论到实践
16关注瓶颈
17小结
第2章个体敏捷性
21为什么要采纳敏捷实践
211怎样才算成功的采纳
212问题:许多敏捷实施案例都不成功
213什么原因?情况有多种
22职责过程模型
221怎么做才能变得更积极负责
222要是团队人员不停地抱怨,我该怎么办
23有效的敏捷
231成功的团队拥有积极负责的队员
232认知和响应变化需要责任心
233成功的敏捷软件开发从个人做起
24个体敏捷性
25从理论到实践
第二部分实施敏捷的艺术
第3章业务价值
31缩短上市时间
32增强产品实用性(市场价值)
33提高产品质量
34提高灵活性
35增强透明度
36降低成本
37延长产品生命周期
38业务价值是组织的目标
39从理论到实践:确定组织的业务价值
第4章异味
41业务异味
411交付质量无法令客户接受
412交付新功能需要太长时间
413有些功能客户没有使用
414软件对于客户不适用
415软件开发过于昂贵
416我们与他们的对立
417客户不管三七二十一,什么都要
42流程异味
421客户?什么客户?无法实现直接、经常性地客户参与
422令管理层惊讶——缺乏透明度
423瓶颈资源——项目成员同时属于多个团队
424项目反复拖延
425bug跟踪系统中有数以百计的bug
426在发布前需要一个固化周期
427没能经常集成(通常是因为集成一次太痛苦了)
43以痛楚作为激励
44从理论到实践:你能找到什么异味
第5章敏捷实施策略
51敏捷实践
52敏捷模式到业务价值的映射
53实施敏捷的艺术
54下一步
55从理论到实践:制定适用于你的敏捷实施策略
第三部分敏捷实践模式
第6章敏捷实践实施模式
61什么是模式
62更有效地利用模式
63人物介绍
第7章目标
71业务价值
72小故事
73适用情况
74阻力
75因此
76采纳方法
77但是
78变化
79参考文献
第8章周期
81业务价值
82小故事
83适用情况
84阻力
85因此
86采纳方法
87但是
88变化
89参考文献
第三部分(a)反馈实践模式
第9章迭代
91业务价值
92小故事
93适用情况
94阻力
95因此
96采纳方法
97但是
98变化
99参考文献
第10章启动会
101业务价值
102小故事
103适用情况
104阻力
105因此
106采纳方法
107但是
108变化
109参考文献
第11章待办工作项
111业务价值
112小故事
113适用情况
114阻力
115因此
116采纳方法
117但是
118变化
119参考文献
第12章规划“扑克”
121业务价值
122小故事
123适用情况
124阻力
125因此
126采纳方法
127但是
128参考文献
第13章站立会议
131业务价值
132小故事
133适用情况
134阻力
135因此
136采纳方法
137但是
138变化
139参考文献
第14章完成状态
141业务价值
142小故事
143适用情况
144阻力
145因此
146采纳方法
147但是
148变化
149参考文献
第15章演示
151业务价值
152小故事
153适用情况
154阻力
155因此
156采纳方法
157但是
158变化
159参考文献
第16章回顾
161业务价值
162小故事
163适用情况
164阻力
165因此
166采纳方法
167但是
168变化
169参考文献
第17章频繁发布
171业务价值
172小故事
173适用情况
174阻力
175因此
176采纳方法
177但是
178变化
179参考文献
第18章“联合驻扎”团队
181业务价值
182小故事
183适用情况
184阻力
185因此
186采纳方法
187但是
188变化
189参考文献
第19章自组织团队
191业务价值
192小故事
193适用情况
194阻力
195因此
196采纳方法
197但是
198变化
199参考文献
第20章跨职能团队
201业务价值
202小故事
203适用情况
204阻力
205因此
206采纳方法
207但是
208变化
209参考文献
第21章客户作为团队成员
211业务价值
212小故事
213适用情况
214阻力
215因此
216采纳方法
217但是
218变化
219参考文献
第22章唤醒式文档
221业务价值
222小故事
223适用情况
224阻力
225因此
226采纳方法
227但是
228变化
229参考文献
第23章用户故事
231业务价值
232小故事
233适用情况
234阻力
235因此
236采纳方法
237但是
238变化
239参考文献
第24章用例
241业务价值
242小故事
243适用情况
244阻力
245因此
246采纳方法
247但是
248变化
249参考文献
第25章信息辐射器
251业务价值
252小故事
253适用情况
254阻力
255因此
256采纳方法
257但是
258变化
259参考文献
第三部分(b)技术实践模式
第26章自动化测试
261业务价值
262小故事
263适用情况
264阻力
265因此
266采纳方法
267但是
268变化
269参考文献
第27章测试后行开发
271业务价值
272小故事
273适用情况
274阻力
275因此
276采纳方法
277但是
278参考文献
第28章测试先行开发
281业务价值
282小故事
283适用情况
284阻力
285因此
286采纳方法
287但是
288变化
289参考文献
第29章重构
291业务价值
292小故事
293适用情况
294阻力
295因此
296采纳方法
297但是
298变化
299参考文献
第30章持续集成
301业务价值
302小故事
303适用情况
304阻力
305因此
306采纳方法
307但是
308变化
309参考文献
第31章简单设计
311业务价值
312小故事
313适用情况
314阻力
315因此
316采纳方法
317但是
318变化
319参考文献
第32章功能测试
321业务价值
322小故事
323适用情况
324阻力
325因此
3251物件清单管理测试
3252自动化功能测试的益处
326采纳方法
327但是
3271实施异味
3272架构异味
328变化
329参考文献
第33章集体代码所有权
331业务价值
332小故事
333适用情况
334阻力
335因此
336采纳方法
337但是
338变化
339参考文献
第34章结对编程
341业务价值
342小故事
343适用情况
344阻力
345因此
346采纳方法
347但是
348变化
349参考文献
第三部分(c)辅助实践模式
第35章教练
351业务价值
352小故事
353适用情况
354阻力
355因此
356采纳方法
357但是
358变化
359参考文献
第36章融入敏捷社区
361业务价值
362小故事
363适用情况
364阻力
365因此
366采纳方法
367但是
368变化
369参考文献
第37章读书会
371业务价值
372小故事
373适用情况
374阻力
375因此
376采纳方法
377但是
378变化
379参考文献
第38章研讨会
381业务价值
382小故事
383适用情况
384阻力
385因此
386采纳方法
387但是
388变化
389参考文献
第39章课堂培训
391业务价值
392小故事
393适用情况
394阻力
395因此
396采纳方法
397但是
398变化
第三部分(d)组合模式
第40章敏捷迭代
401业务价值
402小故事
403适用情况
404阻力
405因此
406采纳方法
407但是
408变化
409参考文献
第41章沟通组合
411业务价值
412小故事
413适用情况
414阻力
415因此
416采纳方法
417但是
418变化
419参考文献
第42章演进式设计
421业务价值
422小故事
423适用情况
424阻力
425因此
426采纳方法
427但是
428变化
429参考文献
第43章测试驱动开发
431业务价值
432小故事
433适用情况
434阻力
435因此
436采纳方法
437但是
438变化
439参考文献
第44章测试驱动需求
441业务价值
442小故事
443适用情况
444阻力
445因此
446采纳方法
447但是
448变化
449参考文献
第四部分案例研究
第45章BabyCenter
451BabyCenter敏捷实施——2007年一季度
4511制定敏捷实施策略
4512结论
452BabyCenter敏捷实施回访——2008年一季度
第46章X公司
461X公司敏捷实施过程——2007年一二季度
4611报告背景
4612当前业务目标
4613硝烟四起
4614建议在2007年余下的日子里实施的实践方法
4615长远考虑
4616结论
462X公司敏捷实施——回访
第五部分附录
附录A敏捷模式与业务价值的映射
附录B敏捷模式与异味的映射
附录C充分利用敏捷模式
附录D更多阅读资源
参考文献

教学资源推荐
作者: 何炎祥 伍春香 王汉飞 编著
作者: 赵淑芬 主编  康宇光 副主编
作者: 王月海 何丽 孟丹 张艳苏 编著
参考读物推荐
作者: 陈立伟 王桐 杨蕾 等编著
作者: IC动漫社 编著
作者: (美)希贝尔?德伦?古勒尔(Sibel Deren Guler),玛德琳?甘农(Madeline Gannon),凯特?西基奥(Kate Sicchio) 著