在AmrElssamadisy最近的一本书《敏捷模式──指向成功的路标》中,他使用了一种概念框架,用这个框架把具体应用环境和敏捷策略一一对应。他没有建议人人都使用一系列相同的实践方法,而是针对公司所想达到的目标,帮助你找出哪些实践方法是最适合的。这些实践方法不但会引领你走上敏捷的道路,而且会将迁移过程的花费,以及所出现的失望情绪降至最低。
成功实施敏捷开发方法,对于一个企业而言,将会获益匪浅。敏捷过程提供更为精确的项目评估;在项目正在进行的同时也能给予更好的控制(提供更有用的功能,而不只是需求文档上所要求的);产生更高质量和更易于维护的软件产品;以及提高开发团队的士气和信心以及彼此之间的信任。不幸的是,正如我们许多人在敏捷开发者社区里所了解到的,从传统的软件开发过程迁移到敏捷软件开发过程非常困难。针对具体的企业环境,找到合适的敏捷方法并进行实践,是一件很让人头疼的任务。因此,许多企业在转换过程中经历了很多困惑和失望,而且许多企业在发现敏捷开发方法的益处之前,就放弃尝试了。
Elssamadisy在书中提供了一些行之有效的方法,可以帮助你避开在实施敏捷中的种种陷阱。举例来说,尝试“大跃进”式的迁移是很常见的错误,而作者为你提供了一种逐步进行、迭代采纳敏捷开发方法的计划。他鼓励使用敏捷的方式来实施敏捷:在(希望是)正确的方向上小步前进,利用短期回馈来收集信息,用于调整方案和确定下一步的计划。同时,作者会帮你达到投资回报率最大化,他提供的技巧可以找出对组织最重要的商业价值,并且告诉你如何选择一开始采取的实践组合,以强化这些价值。
如果你对敏捷有所了解,而且希望知道如何在真正的项目中卓有成效地实施敏捷,这本书就是你的不二之选。如果你非常愿意帮助采用传统软件开发方法的企业转而实施敏捷开发,那么这本书非常适合放在你的书架上。
该书的前两部分(第一部分:关于软件开发的想法;第二部分:实施敏捷的艺术)是全书的核心。
第一部分介绍了两个可供敏捷指导者采纳的指导原则:
1)设立目标 2)采取有助于达成目标的行动 3)将行动结果与目标进行比较 4)调整行动并回到步骤2
学习的过程发生在步骤3,并在步骤4中得以应用。
Elssamadisy同时强调了沟通对于强化学习效果的重要性,个体之间的信息传播,可有效地使他们融入软件开发过程。
该书的第二部分是我最喜欢的。它阐述敏捷实践的方式,是我不曾在其他书中看到的。它明确描绘了各种各样的“业务价值”(就是诸如“缩减生产时间”和“提高质量”这样的目标),这些价值及其目标可以利用敏捷方法达成。如此描述方式,可以帮助读者在采纳敏捷时,照顾到组织的客观环境:首先,确定对于组织最重要的业务价值;然后,根据上述的目标来应用敏捷实践,从而提升业务价值。
Elssamadisy同样描述了一些经常碰到的“坏味道”,利用敏捷方法可以有效的去除它们。(一般来说,坏味道比业务价值更易于发现。因此,从企业目前的坏味道开始,确定采用哪种敏捷实践,通常是一种相对简单的途径。)
进一步地,Elssamadisy解释了各种敏捷方法的联系。很多时候,如果不首先实施某种敏捷方法,那么很多基于它的敏捷方法就很难实施下去。针对特定的商业价值和坏味道,Elassamadisy提出了一个草图,用于排序和分组对应的敏捷实践。
这种以上下文驱动来实施敏捷的方式,是敏捷出版物中早就应该出现的,我非常高兴地看到它成为本书的核心。由于体验过许多艰难的过渡经历,我可以断言:以基于上下文的、迭代的方式实施敏捷会大行其道,尤其适合于大型组织机构。
敏捷模式的章节几乎包含了敏捷领域中所有的模式。它们被分成五个群组:
辅助实践也包含于其中,是非常令人高兴的。从本质上来讲,它们不是敏捷实践,而是帮助学习新知识的方法。但是,如果忽视了这些实践,将会使学习举步维艰。
每个模式都包含一些有用的工具,有助于判断这个模式的实践是否适合于你的敏捷实施计划。这些工具包括:对当前模式所提升的业务价值的解释,特定模式适用环境的介绍,和对于某些模式试图解决的阻力的深入说明。仔细阅读每个模式的上述内容,读者可以确定在自己所处的环境中,实施特定的模式会有多少价值。
拿“演示”模式为例,列举一些帮助你判定该模式是否“合身”的内容:
接下来,关于模式的章节介绍了如何帮助你有效实施敏捷方法,同时避免很多实践者曾落入的陷阱:
这些部分用精炼的语句总结了许多敏捷社区诞生的智慧,并且与实际问题丝丝相扣。如果你正在进行某种实践的尝试,但是并未体会到它提供的任何价值,那么这些部分可以帮助你进行调整,以从实践中获得更多的价值。
我非常喜欢“但是”部分。很多常见的敏捷实践都非常容易出错,而且经常很难找到有关这些错误的描述。阅读这一部分的内容,新的敏捷实践团队就可以设置切合实际的目标(不是一切都能顺利推进,实施敏捷实践时有很多歧途),这部分内容还能给新的团队以警示,确保他们不走弯路。大多数情况下,“但是”部分会包含很多建议,告诉你要是走错了路该如何扭转局势。由于许多敏捷实践都曾在这些情况下出了问题,能看到相关内容实在是读者的一大福音。
该书的第三部分,研究了两个应用敏捷实践的真实案例。有关敏捷的出版物中,常会描述一种“完全敏捷”的团队,这样的团队与缓慢向敏捷迁移的团队大相径庭。很多倡导敏捷的人都是通过看书学习的,可他们却很难像书中描述的一样马上达到收效,也因此而遭受打击。敏捷在真正实施时,并不是一帆风顺的,能够读这些真实的情况使人耳目一新。现实世界中,尤其在大的企业,改变个人和组织的习惯是一个长久、艰难的过程。事情不会一帆风顺,但是只要假以时日,那些持之以恒的个人和团队总会获益匪浅。这两个敏捷案例清晰刻画了目前的现实情况。帮助组织机构向敏捷迈进的过程是漫长而又艰难的。相信别人也曾遇到类似的问题,这会让你摆脱疑虑,从而看到自己正在取得卓有成效的改进。
这本书并不适用于所有人。我不会将它推荐给完全不了解敏捷的人。Elssamadisy认为,本书适合对常用的敏捷实践和原则有所了解的读者。所以初学者可能会发现这本书在某些方面缺乏细节描述。我同样不会给资深的敏捷教练推荐这本书;他们很可能对本书的绝大部分内容烂熟于心了。
不过,如果你已经阅读了大量的书籍,并且对敏捷软件开发充满好奇,却不知道从哪里着手,那么这本书对你再合适不过了。如果你对敏捷实践有一些基本的了解,但对于自己能否成为团队中的敏捷专家没有信心,这本书同样适用于你。如果你身在一个敏捷团队中,已经实施的敏捷实践对你来说似乎没有产生预期的好处,你也可以好好读一读这本书。
注意:这本书同样可以通过Safari在线书店获得。
Ryan Cooper是一位敏捷软件开发者和教练。他是Ryan Cooper咨询公司的创立者。在他的家乡Halifax,他还是敏捷用户小组的创建人之一。他的博客可以通过www.onagile.com访问。