本文翻译自Martin Fowler的文章.
敏捷已成为主流,但成为主流并不代表它是完美的。大组织的领导者常常抱怨他们没有品尝到敏捷所带来的好处,这篇文章将向你呈现一个敏捷流畅度模型,它将帮助你实现敏捷。流畅度有四个层次,每个层次都有它的好处、实施成本,和关键度量指标。
敏捷流畅度模型
我们观察到,敏捷团队开发有四个不同层次的流畅度。流畅度指的是团队在压力下如何开发软件。在教室里,只要给每个人足够的时间专注地去做一组练习,他们最终都能完成;然而,真正的流畅度,不是一时的练习,它是一种技巧性十足的、常规的经常性的实践,即使你心不在焉也能完成。
在敏捷流畅度模型中,我们考虑的是团队流畅度,而非个人或者整个大组织的流畅度。敏捷开发过程从根本上说是团队的工作,你所在组织的敏捷是否成功取决于你们所有团队的流畅度。
团队流畅度不仅仅依赖于个人的能力,更依赖于整个团队的能力。当然,它也依赖于管理结构,内部关系,组织的文化,或者其他的。不要把低流畅度归咎于个人,或者认为某个高水平的人可以保证团队的高流畅度。
我们利用“星级”的方式来描述每个流畅度层次。每个星级都包含上个星级的流畅度。
每个星级会带来它特定的好处,但也会带来挑战。当你通读所有的敏捷度层次时,请记住,每个层次的流畅度都会带来它自己的好处。毕竟到达更高的流畅度需要更多的成本投入,所以请考虑,稍低的流畅度层次是否已经可以满足你的组织要求了。
一颗星的团队创造商业价值
收益:团队的工作更加透明;能够调整方向
投入:团队发展和工作流程设计
关键度量指标:团队定期的从商业角度汇报进度
达到一颗星敏捷流畅度的团队专注于创造商业价值。
相比于从技术角度考虑来做计划,一颗星的团队做计划时,以能给赞助商、客户带来利润,或者以用户如何使用软件(也就是用户故事),为基本出发点。
到达一颗星的团队,能使用好Scrum和Kanban这样的敏捷方法。相比用户故事,常用的具体技术手段有:backlogs、总结回顾、迭代、Sprints,或者看板。
一颗星的团队持续的专注于创造价值,好处如下,但不仅限于此:
透明性: 管理层知道什么时候团队正在做错误的产品或者遇到了困难,这样就可以积极的介入和引导。
协作一致性:团队内部互相协作,减少了误解和信息传递成本。
一颗星的团队定期地从业务角度汇报工作进展,这正是衡量一个团队是否达到一颗星流畅度的关键性指标:虽然这不是你在一颗星团队上所看到的唯一表征,但它的确是一个简单快速的衡量方法。如果你们没有定期的、经常的业务报告,或者报告本身未能反应出团队真正做的事情,那么,你们的团队还没有流畅起来。
要想达到一颗星流畅度,团队需要学习和练习诸如SCRUM和Kanban里面的技巧,这些技巧并不难,挑战在于团队文化的转变。队员们必须学会从业务角度来做计划,而不是从技术角度做计划;同时,也必须学会为整个团队的成功负责,而不是为个人的贡献负责。
投入/产出的权衡:从各个独立的个人贡献者到形成一个协作的、追求集体成功的团队,这个转变大概需要2-6个月的实战。你可能需要在选择队员方面做些投入,你要为你的团队选择拥有合适的技能和背景的队员,同时他们还要能够主动与别人协作。你可能也需要培养或者招聘一个scrummaster(或者同等能力的人)来帮助你的团队来学习如何克服障碍和取得业务成果。这个团队也需要获得组织上更多的关注,诸如业务的优先级信息和客户价值信息,等等。
相应地,你将能更加清楚你的团队正在做什么,你也将能指导他们去做那种只需花20%的精力就能产生80%的价值的工作。
两颗星的团队把握市场的节奏
收益:低缺陷,高产出
投入:在技术能力培养阶段会对产出效率有影响
关键度量指标:团队能把握市场节奏
达到两颗星阶段的团队不仅仅能聚焦于业务价值,他们还能意识到应该以多快的频率来交付产品,市场才能刚好接受。这就是所谓的“把握市场节奏”。两颗星的团队与一颗星的团队的区别在于,他们不仅仅根据自己的能力来交付产品,还能随心所欲地交付产品。
极限编程(XP)是两颗星团队常用的一种敏捷方法,它通常会和SCRUM和Kanban结合使用。其中一些很有用的技巧有:持续集成,测试驱动开发,结对编程,和集体所有制。
在这个阶段的团队流畅度能够持续地并且有目的地创造价值。它的好处包括,但不仅限于此:
透明性:更快的“从概念到发布”的周期,使得体系性的缺点很快被显现
协作一致性:高技术质量,快速交付成果,并由此产生更加高昂的士气和更高效的工作。
评价为一颗星的关键指标是定期的业务价值报告,而评价为两颗星的关键指标则是在这基础上,能根据市场的节奏发布产品。如果你们还没能做出低缺陷率的产品,以市场能接受的最快频率来发布产品,那么你们的团队还需要更多的练习。
这是一个技能密集型的星级,要学习很多的技巧。比如测试驱动开发的技巧,就是那种“一次学习,一生才能掌握”(也就是说,入门容易,掌握很难,需要很多的练习才能掌握)的东西。要到达两颗星层级,需要学习和练习诸如极限编程,DevOps里面的技巧。尽管这些技巧早已存在,但要让所有的队员们学习它、使用它,再到能够熟练掌握,仍是一个挑战。集体所有制,结对编程,以及团队共处一室工作的方法,都将能够促使队员们互相帮助,加速成长。
投入/产出的权衡: 培养队员们的技能到达这个流畅度所要求的水平,需要时间和很大的努力。引入培训课程,可以帮助学生了解概念,但从课程上的例子练习转向处理实际问题的时候,却经常遇到困难。很多情况下,需要招聘一个高级敏捷程序员来全职指导团队解决实际问题。这个阶段的生产力通常会显得有所下降,因为团队花时间学了新的技能,不过,既有代码的债务也会减少。
尽管有这些成本,但达到这个星级水平所带来的好处却是重大的。两颗星团队会产出低缺陷率的软件,代码债务降到最低,这意味着他们将有更多的时间来开发新的功能。这个转变过程中,开始时需要一些时间来偿还之前的代码债务,然后才能看到收益,但是一旦转变过来,你将会看到更高质量的软件和大幅提升的团队响应速度。
三颗星的团队最优化地产生价值
收益: 能交付更高的价值,能做出更好的产品决策
投入: 扩大社会资本投入,给团队引入业务专家
关键度量指标:团队能提供具体的商业度量指标
三颗星的团队能让你的投资收益最大化。他们懂得什么是市场需要的,什么是你的业务需要的,以及怎样满足这些需要。如果是在一个初创企业的环境里,他们能知道应该学习什么以及怎样去学习。
大多数的敏捷方法都能让团队到达一颗星和两颗星的流畅度,然而,精益创业方法则是一个处于三颗星的级别,它最适合新产品的开发。精益软件开发(和精益创业方法没有关系)的想法也很有用。制定敏捷章程、嵌入式的产品管理团队、客户发现以及自适应的计划,这些都是三颗星团队所使用的技巧的例子。
在一颗星和两颗星的收益的基础上,三颗星的团队能带来如下额外的收益:
- 透明性:团队从具体的业务指标上报告成果,比如投资回报率,平均每个员工带来的纯利润,以及客户满意度。
- 协作一致性:团队间相互信任,整个组织能进行快速有效的谈判,团队的广泛的专业知识能减少沟通成本,加速决策过程。
度量是否到达三颗星级别的关键指标是,在一颗星和两颗星的基础上,团队能在报告中使用具体的业务指标。如果你的团队没有关注到这些指标上,或者他们的产出价值小于投入成本,那么他们还没有到达最优化地产生价值的流畅度。(这也意味着,如果团队发现没有产出足够的价值,他们将可以据此切换方向,甚至取消当前的项目。)
要达到这个三颗星级别,需要为团队引入全职的业务专家。为此,你可以招聘,也可以培训已有的员工,但通常更有效的方式是引入对你的业务的优先级和范围已经很了解的员工,比如:产品开发人员,产品经理,业务分析师,也可以是做市场,销售的员工,有时也可以是QA。需要让他们全职在这个团队里,才能比较好的发挥他们的专业能力,这种人员安排通常需要组织上高层的允许。
组织上也需要给团队提供帮助来扫清交付产品的障碍。这通常需要管理者们在组织内部要互相协作,有时需要在跨职能管理团队内部,来消除影响团队效能的障碍。管理者们可能需要一些培训,来指导他们如何在高效能的敏捷环境中工作,因为敏捷环境与传统环境有很大不同,在这里,跨智能的、自组织的团队可以决定资金投入到哪里以及业务聚焦到哪里,并为这些决定负责。
投入/产出的权衡:上述的这两点改变对既有的组织架构会形成挑战,所以实施起来会很艰难,甚至无法实施。到达三颗星的流畅度通常需要好几年——不是因为需要多少技能,而是整个组织内部的人必须要学会相信团队,相信敏捷,因为这种改变会影响到他们的权力,控制力,以及曾经熟悉的工作方式。
要转变组织架构,需要一些积极的政治技巧,并需要对回报笃信不移。管理者可能需要花费一些“社会资金”来促成转变。
这样做的结果会是:你将会获得超出商业目标预期的价值回报,同时也打造了一个专业的,能做出很好产品决定的内部团队。
四颗星的团队有助于优化系统
收益:与组织上的目标一致;协同效应。
投入:在建立组织文化方面需要付出巨大努力;需要进行创新实践。
关键度量指标:团队能够汇报出她的行动会对整个组织造成什么影响。
四颗星的团队能够贡献于企业范围的成功。团队成员知道组织的事务优先级和商业方向,他们愿意牺牲自己的需要,来满足关键性产品的需要。他们与其他团队和管理者通力协作,优化企业总体的价值流。
这种理想的四颗星的团队是在精益软件开发的相关材料中被提及的,然而我们还没有发现任何敏捷方法可以完整的描述出如何到达这种级别。在我们知道的团队中,有一些正在朝这个级别努力或者在某些方面已经达到四颗星级别,他们都处在敏捷实践的最前沿。他们采纳了高级管理理论和创新型产品开发的方法,技术方面包括:敏捷组合管理、系统性思维、价值流分析、全系统计划、完整的团队、开放式管理、以及较为激进的自组织。
除了其他星级的流畅度所能带来的好处,四星的团队还能带来这些好处:
透明性:团队能够在业务上其他举措的背景下规划自己的工作,能让产品互相平衡。
协作一致性:团队之间互相启发,提供帮助,能与组织内的其他团队或者其他部门协同创新。
四颗星团队的关键指标是:能够理解整个系统,并汇报自己的行动如何影响到企业。如果你的团队还没有弄清楚自己的工作对组织的整个价值流体系有何贡献,那么他们就还没有达到可以优化整个系统价值的流畅度。
目前,我们见到的达到四星的流畅度的团队,通常是初创企业的团队,他们只有一个团队,实际上这与三星的流畅度没有太多的区别。在一个高度信任、无障碍沟通、业务信息广泛透明的组织里,要达到四颗星的流畅度,似乎很容易。
小组织可以创造出一种文化,来支撑跨职能跨职级的敏捷思想;他们保持完整的团队来工作,而不是不断的重组团队来适应工作。保持完整的、持续发展的团队,可以使他们达到高效能以及完全四颗星流畅度。
我们还没有看到任何团队能够在大组织中到达四星的流畅度。这可能是由于文化改变的困难,也可能是因为敏捷还很年轻,或许将来会出现。
投入/产出的权衡:四颗星的流畅度不仅仅需要关注于整个体系的这种组织文化的转变,还需要在敏捷实践上走在最前沿,很可能需要发明一些新的方法来把系统性思维应用到敏捷实践中。这需要强大的心脏,企业内的所有人必须采纳新的思维,改变他们熟悉的方式,并且学习评估新的实践方法。然而,如果你们已经完成了建设并已支持多个团队完成了三颗星的流畅度,那么你们差不多就需要这么做了。
对于大多数的组织,四颗星的流畅度最好作为未来的憧憬来对待,至少三颗星的流畅度的触手可及。然而,对于已经强调精益原则和创新方法的组织来说,尽管到达四颗星流畅度的路上,有巨大的挑战和未知的难题,但是你将拥有这样一个团队:她不仅仅能做出好产品的,还能带来整体上更大的商业价值。
总结
在我们与敏捷团队和敏捷组织一起工作的过程中,我们看到了团队在对敏捷的理解上以及组织所能获得的收益上,都遵循一个典型的进步路径,我们把这些路径分成了四个流畅性阶段,每个阶段按他们的好处和采纳成本来区分。
第一个阶段——一颗星的阶段——需要团队学习互相协作,并把关注点从技术任务上切换到创造业务价值层面上来。作为回报,整个组织将能清楚的了解团队的工作,并且有机会把他们的工作引导到正确的方向上来。这颗星反应了敏捷的基础。
获得第二颗星需要团队投入学习大量的开发技能。这颗星反应了敏捷的持续性。这些技能没有那么容易获得,很可能让人沮丧,甚至想回到老的方式,对于高级开发者来说更是如此。但是随着时间的推移和组织上的大力支持,团队将会得到创造和交付低缺陷率的产品的能力,以及根据市场能接受的频率不断发布新版本的能力,这将会使得组织对软件开发的投入物有所值。
第三颗星代表着敏捷的承诺:团队能对市场条件的变化应对自如,并有很强的集体责任感来打造最佳的产品。要得到这颗星,意味着业务专家必须全职参与到团队中来,而这种对组织架构的变化需要时间和努力,它的回报在于团队不断提高的能力将更好的为你的业务服务。
第四颗星代表着敏捷的未来。四颗星的团队能和其他团队很好的协作,共同从整个组织的角度来创造更优的价值。到达这一层级需要整体的系统思维和探索的意愿。
所有这些星级都能带来好处,不同的团队可能有不同的最合适的星级。根据你自己的情况来看,通常,三颗星适合小组织,两颗星适合大组织。不管你选择哪个星级,请一开始就奔着那个星级去努力,实践那个星级所需要的所有的实践。
我们一次又一次的看到过团队经历这几个流畅度阶段的情形。我们把我们的经验分享给你们,希望你们能够洞察到敏捷的好处以及需要面临的挑战。愿您的团队取得越来越大的流畅性,和更大的成功。