管理DevOps项目管理

团队敏捷转型的三个阶段

2019-04-17  本文已影响95人  小船哥说敏捷

我们假设,敏捷转型的开始是瀑布式开发,我把这个阶段定义为Agile 0,根据我们的敏捷成熟度模型(AMM)里提及的最终形态定义为Agile 5,期间会经历三个阶段。

阶段一(Agile 0 – 1):建立敏捷流程,缩短交付周期


这个阶段,引入迭代或者建立看板是重点,类似于下图:

Scrum运作全景图

这个阶段的主要目标,就是将需求的反馈、开发质量的反馈、以及改进周期缩短在一个迭代内(通常2-4周)。 为达到目的,Coach主要会做以下一些事(Actions):

这个阶段主要培养的目标,是Scrum Master或者类似的角色,让他们能了解敏捷流程的运作方式,并能带领团队在Coach不在场的情况下,依然按敏捷流程运作。

要走过这个阶段,有一些关键指标:

有些人说为什么不从技术实践开始?设想一下在瀑布式开发中,开发团队几周甚至一个月才交一次版本给测试团队,在这种情况下,开发怎么会有动力写自动化测试?运维怎么会有动力做自动部署?需求没有妥协的空间,设计没有妥协的空间,导致团队的痛点永远是按时交付,质量一定会被牺牲掉的。因此只有先强制缩短交付周期,让团队痛点转移,才能改变开发人员对质量的观念。至于这个过程中导致的交付速率降低,我们会说:

由此我们来讨论第二阶段

阶段二(Agile 1 – 3):引入技术实践,质量内建,减少返工


这个阶段的主要目标,是提升开发人员的质量意识,从而提升开发阶段产出的质量水平,减少后续环节的返工。用质量内建的话来说,在缺陷时就立刻修复。这样做的好处就是同时提高了质量和团队整体效率。 其实在软件开发中,生产过程随着开发结束而结束,随之而来的都是检查和传递,因此产品的质量实际是由开发阶段就确定的,如下图:

Story的生命周期

只有提升生产过程的质量,才能减少返工,提高效率,因此我们在这个阶段会引入技术实践,缩短质量验证的反馈周期,主要包括:

这个阶段培养的主要目标就是开发,建立开发的质量意识,帮助开发写出更好的开发,培养开发处理复杂问题的能力。同时开阔团队视野,让团队成员了解更多的技术,学习如何利用新技术提升自己效率。

除了第一阶段的指标继续改进外,这个阶段我们会重点关注的一些指标:

CI相关指标:做CI的背后其实是为了培养团队能力

质量相关指标:

测试金字塔

交付相关指标:

这个阶段会耗时比较长,因此会有两阶的跨度,第一阶是起步,往往会有教练带着团队做重构,写自动化测试Demo,定规范和总结最佳实践。到第二阶后,这些能力就由团队自己去传播了,教练只会偶尔参加一下Code Review来看看团队是否走在正确的路上。

小结

总的来看,以上两阶段就是帮助客户建立流程,定义参与角色并找到适合的工具,然后通过度量追踪整个转型过程,并逐步引入敏捷实践来提升相关指标。

敏捷转型内容示意图

阶段三(Agile 3 – 5):提升价值交付效率和响应力


到Agile 3为止,我们一直在告诉团队成员你要做什么,通过改变团队成员的行为,来改变他们的思想,特别是开发人员的质量意识和团队成员的能力。基于已有的成果,这个阶段的目标,就是培养成员的自我提升意识,团队的自我改善能力,并帮助团队建立自我改进的习惯。

因为团队专注于自我改进,因此大家会有自己的改进线路,不过无论如何,都会专注于以下几个方面:

这个阶段度量的内容会关注在响应力、创新上,这里给些参考:

总结


整个转型的过程,其实是行为改变思想,再通过思想影响行为的过程,当团队中的人员能力慢慢提升,思想也在随之改变,所有人都能对什么是正确的事作出更好的判断,继而走向持续改进的道路。所以如果定义团队转型成功,我认为就是帮助团队建立起了一群能自己做持续改进的自组织特性团队。 团队要经历这三个阶段必然是一个漫长的过程,很多钱多气粗的企业一定想知道有没有什么捷径,我的答案是有:敏捷转型的过程就是培养大家能力的过程,既然终点是所有人都拥有很强的能力,那为什么不在一开始就找这样的人来工作呢?

上一篇下一篇

猜你喜欢

热点阅读