自2001年敏捷宣言发布以来,敏捷开发已经走过自己的小20个年头。从最开始被认为是激进的无人问津的小作坊式的开发方式,到如今被普遍应用,甚至写进大学教科书作为标准开发流程,敏捷已经成为了一个当代程序猿的基本素质。
革命尚未结束,同志尚需努力。在最近的几年,敏捷方法在征服了基层开发团队和中小型新创企业之后,它正在尝试着迎接自己的下一个阶段的挑战:在更大的企业级别,特别是一些拥有者庞大的技术体系和管理架构的传统企业实现大规模的敏捷转型和塑造。 在这一步,一般的敏捷方法受到了不小的挑战。
敏捷作为一个始于团队实践,由下至上进行积累和总结的方法论,从一开始就与大型企业从上至下的规划执行逻辑背道而驰。而它对于团队敏捷成熟度或者职业水平的高要求也与大型企业重流程轻人的管理方式有着几乎不可消除的隔阂。所以虽然所有人都知道敏捷的好,但是大公司做起敏捷转型起来却往往只能在团队级别有所成效,一旦上升到项目集或者部门级别,便往往水土不服,无疾而终。
目前比较活跃的几个规模化敏捷的框架有SAFe (Scale Agile Frameworks), LeSS (Large Scale Scrum)和新兴的EDGE(价值驱动管理)。在小马哥看来,这几个框架都并不是纯粹的敏捷,而是以敏捷或者精益开发的核心思想作为根基,糅杂了许多管理学知识,包括PgMP的一些论点之后的一个综合性产物。今天,小马哥就跟大家简要介绍一下SAFe,以及它背后的一些管理思维。
敏捷方法论规模化第一步也是最后一步: 分层级
当一个方法论在某一个级别实现了自己的成功,而需要更上一层楼的时候,最简单的办法便是分层次。在已经实现成功的层级延续自己的最佳实践,而在更高的层级去针对不同的痛点和环境,在方法论核心思想不变的情况下,进行大量的裁剪和定制化。SAFe就是这样一个产物。
在深入到每个层级之前,让我们回顾一下敏捷和精益的核心思想。
敏捷宣言:
个体和互动高于流程和工具
工作的软件高于详尽的文档
客户合作高于合同谈判
响应变化高于遵循计划
精益核心指导思想:
持续改进,消除浪费,重视学习
带着上面的指导原则,整个SAFe实践其实可以用下面这幅图完整概括.看懂了它,你也就看懂了SAFe:(出处在这里)
从上图看,根据企业规模的大小和资源管理的侧重,SAFe将自己的敏捷实践分为了大概这么4个层级:团队层,项目群层,价值流层和投资组合层。
团队层
这个层面,就是我们最熟悉的团队敏捷交付方式。敏捷四大会,看板和故事墙的运用,结对编程和TDD...满满的都是初恋的味道。在这个层面,我们能非常容易的发现敏捷的价值,并且和敏捷精益的核心思想高度吻合。绝大部分的公司都能在这个层面做到一定程度的敏捷成熟度。
项目群层
项目群是SAFe能够高效解决的第一个高于团队层级的规模,也是绝大部分公司在进行规模化敏捷建设时最先尝试的范围。 一个项目群可以理解为若干有着一定依赖关系的项目团队的集合,它往往由5到12个敏捷团队(POD)组成。在敏捷语境下,项目群和传统PMP管理中的项目集有着如下区别:
项目集有着明确的开始和结束时间,是个临时性的组织。而项目群通常有着更持久的生命周期,并不会因为一个项目的结束而结束。
项目集通常会提前定好资源,并严格限制资源的使用。项目群相反,通常灵活度更高,在不同时期的资源投入规模会按需变化。
项目集通常会有一个项目集经理,并且授权很高。而项目群更看重自组织的管理方式。
那SAFe是如何在项目群层实现自己的敏捷实践原则的呢? 答案便是:敏捷发布火车(ART)。
敏捷发布火车是一个咋看很酷炫的概念,但是其实它的核心非常的简单,就是在一个时间跨度内(通常是4个迭代)对于backlog里的所有项目的优先级排序,并确定交付资源 (通常5到12个团队,50-125人), 制定高优先级项目的整合交付计划。
还是觉得上面这句话很深奥?如果你把敏捷发布火车当成一个更大规模的IPM,一切就一目了然了。每一个项目就相当于是一张故事卡,而每一个交付周期就是一个迭代,每一个团队就是一个开发。
和IPM里SM(Scrum master), PO(product owner)和TL(tech Lead)相对应,为了让敏捷发布火车这个大型IPM能够很好的运转,SAFe定义了几个关键的支持型角色:
RTE:发布火车工程师,其实就是大号Scrum Master。
PM: 产品经理,产品负责人们的经理,通常是业务线的经理。
系统架构师:升级版的TL,纵观跨团队的产品架构和方案。
怎么样,从这个角度来看,是不是其实非常的简单?
当然,敏捷发布火车的学问还有很多,以后小马哥会另写文章来阐述,不过掌握了SAFe换汤不换药的本质,相信大部分人都能很好的在自己的公司执行发布火车的实践。
价值流层
这一层并没有在之前的全景图中有体现,严格意义上讲它应该处于项目群层之上,投资组合层之下。好吧,看着这么意识流的名字,大部分人肯定会问:到底什么是价值流?
SAFe用了一套复杂的言辞来定义价值流和它的存在价值,如果喜欢虐自己的可以去SAFe官网查看。 小马哥在这里大(臭)发(不)慈(要)悲(脸),给大家大胆翻译一下:价值流说白了就是公司的一个解决方案或者战略计划。
举个例子,做一个顺风车的功能,以在方便交通的同时提供一个半公开,半私密的社交空间,就是一个很“sexy”的解决方案 (呵呵)。如果你进一步分析便会发现,要实现这一个大型解决方案,并不是在项目群层级,通过一次敏捷火车的发布就能实现的,它需要:
更大规模的时间投入,需要多个敏捷发布火车同时多次的发布才能实现。
需要跨领域的知识整合,包括软硬件的解决方案的磨合
需要更清晰的经济框架来协调资源,并且需要一个战略级别的角色来定义方案内容。
价值流层的敏捷实践可以看做是项目群层的一次延伸。它从更长更宽的角度去俯视每一次敏捷火车发布,提供指导意见。在这一个层级,基本的敏捷实践依然是敏捷发布火车。但是它引入了一些新的角色来对敏捷发布火车的长远规划进行指导:
VSE:价值流工程师。 这个角色可以定义为一个解决方案的经理,他负责监控管理整个解决方案的执行和改进情况。
解决方案架构师。并不是由一个人构成,而是一支负责定义总体架构的团队,通常传统企业都会有的“企业架构师组“。
解决方案管理者。就是这个解决方案的终极产品经理,代表客户和战略愿景。
价值流层并不是SAFe层级里必须的层级,但对于那些准备执行大型且复杂的解决方案(例如我要做一个淘宝那样的网站)的公司会有很大的帮助。
投资组合层
终于,我们来到了SAFe的最高层级:投资组合层。小马哥私自认为这一层其实是以管理学理论为根基,强行塞进了一些表面的敏捷实践的层级。
就和传统管理学一样,SAFe相信企业的最终愿景与战略目标是由许多个战略计划或者解决方案(价值流)构成的。同时和戴明管理14原则一样,SAFe也强调每一个战略计划和企业目标的双向连接。即通过每一个战略计划的KPI反馈来重新规划战略投资和分配。 如果非要找出一些SAFe特有的东西的话,便是在执行执行这些管理学原则时的一些实践工具。小马哥资历不够,并没有在这么高的级别尝试过(也没见人尝试过)SAFe实践,所以只能按自己的理解来稍微吹吹牛。
LPPM:精益项目群投资组合管理部门。
PPM并不是SAFe特有的组织,但是在SAFe语境下它被赋予了极高的权力和自由度,化身LPPM。LPPM拥有最高的授权,并对投资回报最终负责。所以LPPM的主要职责就是通过精益-敏捷的方法对不同的价值流进行投资的分配,比如延迟成本、超越项目成本会计核算(这个并不懂)等。LPPM的成立可以在一定程度上实现企业级的去中心化决策 (避免CEO独裁),并确保投资决定尽量采取经济视角(少一些TNT式的信仰)。
投资组合看板系统
一个由史诗的生命周期组成的可视化看板。需要注意的是这里的史诗并不是指团队交付中的史诗故事。在企业级别,史诗指代的是每一个潜在的战略设想,每一个未来可能的战略计划或者解决方案。投资组合看板清晰的可视化出了一个史诗从一个想法到被批准实施的解决方案的过程。通常一个投资组合看板系统有以下几个column:
漏斗:捕获阶段,任何的设想都可以在这里呈现。
评审:在这个阶段建立了机会、工作量和延迟成本的初步估算。
分析: 在这个阶段会进行更细致的分析,并做轻量级的验证。在本阶段的末尾PPM会做出是否投资史诗的决定。
待办:已经被批准投资的史诗会进入这个阶段。
实施:正在实施的史诗阶段
完成:已经完成的史诗阶段。
需要注意的是,作为一个看板系统,投资组合看板也是有WIP (在制品限制)的,拉动原则是必须遵守的。 同时,和一般的看板系统一样,每一个史诗都必须有自己的Owener (负责人),负责更进和执行史诗的生命周期。
写了这么多,希望大家对于SAFe有了一些最基本的理解。以后小马哥会和大家一起抛开SAFe神秘的面纱,看看SAFe如何在实操中发挥功效。
什么?为什么不讲SAFe9大精益-敏捷操作原则?因为小马哥觉得它是改写了敏捷宣言、精益核心思想和熊彼特、戴明、系统思考等管理学理论的一个东拼西凑的产物,是不值得拿来当做最基本的理论根基的(其实就是懒)。如果你实在感兴趣的话,誊写如下:
SAFe 精益-敏捷原则:
采取经济视角
运用系统思考
接受变异性,保留可选项
通过快速集成学习环,进行增量式建构
基于对可工作系统的客观评价设立里程碑
可视化和限制在制品,减少批次规模,管理队列长度
应用节奏,通过跨领域计划同步进行
释放知识工作者的内在动力
去中心化的决策