规模化敏捷必须SAFe

引子:规模化敏捷转型从来不是一件容易的事情。当只有1-2个敏捷团队进行协同的时候,计划和工作同步是可控的。团队和产品负责人互相聊一聊,基本就能搞清楚需要做什么,一个简单的SOS架构(Scrum of Scrums)就能搞定。
但是,当涉及到多个团队的时候,事情将会变得十分痛苦:
  • 特别是如何让各个团队向着同一个方向前进而不是成为互相的羁绊;

  • 如何在跨多个迭代、多个团队、多个产品的情况下进行计划和安排优先级;

  • 如何让所有团队保持同样的交付节奏;

  • 如何实现跨团队的持续集成;

  • 如何解决团队间工作的依赖;

  • 如何消除项目整体的风险;

  • 如何防止需求的紧急搭车;

  • 如何防止局部优化;

  • 如何选择适合的协调人;

  • 如何提高团队间开会的效率。

  • ……

这些问题都需要解决。
同时,规模化敏捷转型影响巨大,不仅仅要保证转型的效果,还要降低转型的各种风险,也就是说规模化敏捷必须是SAFe(安全的)。
但如何做到这一点呢?我们采访了一位资深敏捷实践从业者,看看他的现身说法:
640?wx_fmt=png
Even, 现任某公司技术产品经理 10年+研发经验 曾任某银行内部敏捷与DevOps教练 DevOps广州社区核心组织者 POPM@SAFe
专注敏捷与DevOps, 热爱技术,专研产品与创新,自带正能量,喜欢结交有上进心的志朋好友,热衷分享并积极参与社区活动。
背景:Even所在公司,一个敏捷发布火车(ART)有十几个团队,一个PO一般带2个团队,他现在是其中的一个PO(你知道吗?人家以前还担任过Scrum Master呢,这华丽转型,是典型的斜杠青年啊!!);
给大家来几张照片,看看人家的SAFe 实际场景。
图1 十几个团队同时开早会的场景,好壮观啊!!

640?wx_fmt=png

图2 是开PI planning会议的场景,十几个团队的人一起做计划,挑战的不仅仅是公司有没有这么大的会议室,更是如何同步多人进行高效会议,幸好SAFe有标准的建议日程与形式。

640?wx_fmt=png

1、你们在实施SAFe之前组织中遇到了哪些痛点? 
痛点1:加人后感觉并没有增加生产力
因为是新的部门,在最近的一年中,都不断有新人加入,至少增加了几十个人,目前部门大概300多人,研发占7到8成吧,我们实行了1年多的SAFe,感觉在增加研发人数的过程中,好像并没有对交付产生实质的增产,由于一些原因,不是很方便公布数据,这个是否和SAFe或者敏捷有关,不得而知。
痛点2:我们是在追求epic的完成率吗?
从开始到现在,已经是第9个PI(program increment)了,除了前3个PI是适应期之外,后面的PI里,每个PI的完成率并没有实质性的提高,甚至有降低的情况出现,我们是在追求epic的完成率吗?为什么提出这个问题,因为我们是做平台的,可以比如是做阿里云平台,对于大型的平台型产品来说,我们交付的东西不能在一个sprint甚至是一个PI完成,这个是非常正常的事情,所以我们在反问自己,我们是在追求epic的完成率吗?
痛点3:前端与测试团队的划分问题
我们还有一帮做前端的同事,尝试过把他们分到一个团队,也尝试过把他们分到项目组,两种方式都不是很成功。由于我们是做平台的,并不是每个团队都需要前端,所以把他们分到团队并不是很成功,把他们单独组队,他们因为不能独自接feature来做,也不是很成功。这也算是一个痛点吧。对于测试团队来说,也有这样的问题,这两个团队都是半实半虚的。
2、众多大型敏捷选择SAFe的原因? 
在我加入之前就已经跑了3个PI了,这个我从前辈处听说的是,他们选择的时候看到SAFe比较适合平台型的产品,因为我们是做平台的,有scrum, 有PI(大迭代),有发布火车,有PO和Product Manager,这些角色,看起来蛮适合的,至于是否对比过Less,我的了解是没有。你就当是凑巧选中了吧,恰好我们的北欧文化还是比较适合敏捷的,Spotify和Henrik就是北欧那边的:)
3、实施这个给您这个角色带来的变化和益处? 
我本人以前的角色是TL,就当是SM吧,以前我们是跑Scrum的,当然我的项目是有界面font-end 那种,跑起来很顺畅,现在跑了一年的SAFe后,感觉SAFe是大型敏捷的救星,真的,为什么这么说呢?
1) SAFe有详细的落地细则。
Scrum里面的东西太空泛了,基本上没有教练教的话,可以说是五花八门,主要是它对3个角色是如何落地的没有非常详细的指引,而SAFe呢,它对每一个角色都有明确的定义,都有sample如何去落地,如果你能通过考试的话,可以说基本能掌握一个角色是如何执行的,但是scrum呢,那个考试被我喻为全世界最水的认证。
2) SAFe适合大型的敏捷团队。
我们的产品线刚好是几百人的团队,这在IT企业里面,可以说是非常常见的,但是scrum却不行,而且它的一个PI的定义也是很适合大型产品的开发,一个PI是10周的时间。没有了解过Less,上过DAD的培训,感觉DAD的方法论很吹水啊。
3) SAFe并没有抛弃scrum。
SAFe里面的小迭代仍然是采取scrum的形式,为有敏捷基础的企业的过渡提供了非常顺滑的铺垫。
4) SAFe设立的RTE角色非常像传统的项目经理(PM)的角色。
这为PM是否在敏捷中存在开辟了一条新的道路。
5) SAFe里面的CoP的概念。
为敏捷的实施提供了落地的土壤和传承。我们有SA的CoP,有PO的CoP,有前端团队的CoP,都为产品的演进、技术的修炼、敏捷文化的落地提供了很好的流程支持。
感谢Even的分享,非常非常棒!让我们对SAFe的信心更近了一步!!
其实,在SAFe 最新发布的4.6版本中,与时俱进,新增加了对企业DevOps能力的支持,因为对于多团队协作而言,没有持续交付DevOps的支撑,协作将会是非常痛苦的,发布速度也很难提升上去!所以,SAFe把“DevOps按需发布能力”作为精益企业的五大核心能力之一!

640?wx_fmt=png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

http1.0 http1.1 http2 之间的区别

一、HTTP基础 1.1 HTTP定义 HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。 1.2 HTTP发展史 1.3 HTTP1.0 早先1.0的HTTP版本,是一种无状态、无连接的应用层协议。 …

漫画:程序员一时单身一时爽,一直单身...有点惨

1妹子没吃早饭早啊敲哥,你在吃早饭啊嗯啊,你吃了吗?没呢,早上实在是太赶了,没来得及嗯...那我还是换个地方吃吧免得馋着你。。。2代码重要还是女朋友重要女朋友能哄好,代码能哄好吗?写代码是赚钱…

AutoMapper多个对象映射到一个Dto对象

一、定义源映射对象为了体现AutoMapper映射特性,在SocialAttribute中的Name属性没有定义在People中,People的Ear属性也不存在与SocialAttribute和PhysicalAttribute中。代码如下:二、注入AutoMapper例子中使用的IOC容器是Autofac,…

cookie 与 session

1 背景介绍 什么是会话? 用户打开一个浏览器, 点击多个超链接, 访问服务器多个web资源, 然后关闭浏览器, 整个过程称之为一个会话。我们知道,HTTP协议是一种"无状态"协议,客户浏览器与服务器建立连接,发出请求&#x…

Java写一个简单的静态文件的HTTP服务器(基于Socket)

** 一、实现思路 ** 1、使用 ServerSocket 监听某一端口,然后等待连接获取 Socket对象。 2、创建一个类 HttpServer 继承 java.lang.Thread 类,重写 run()方法,执行浏览器请求。 3、获得浏览器请求,解析资源文件路径。 4、读…

asp.net core 使用HttpClientFactory Polly实现熔断降级

前言在NET Core2.1后也是增加更新了很多东西,当然HttpClientFactory更新中的一部分.虽然说HttpClient这个实现了disposable,但使用它的时候用using包装块的方式通常不是最好的选择。处理HttpClient,底层socket套接字不会立即释放。该HttpClient类是未多个请求重复使用而创建的。…

Azure Application Insights REST API使用教程

本文是Azure Application Insights REST API的简单介绍,并会包含一个通过Python消费API的示例/小工具。新加入的team中的一项工作是制作日常的运维报表,制作方式是手工前往portal.azure.com,在网页中多次执行不同的查询语句、导出excel&#…

用Java Socket实现SMTP邮件发送

目录: 1、邮件基础概念2、Java Mail API介绍3、收发邮件代码示例 PS:如果你想直接拿代码用,可以直接跳到第3部分。 ** 一、邮件基础概念 ** 1.1 邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件…

微软开源新字体Cascadia Code,源于Windows Terminal

微软开源了一套新的字体 Cascadia Code。Cascadia Code 是微软在 5 月份的 Build 大会上宣布推出的等宽字体,微软介绍它是与新的终端 Windows Terminal 一起开发的,官方建议将其与终端应用和 VS、VS Code 等文本编辑器一起使用。Cascadia Code 为命令行和…

进程间通讯的7种方式

1、常见的通信方式 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘…

官宣!VS Code Python 全新功能在 PyCon China 全球首发!

北京时间 2019 年 9 月 21 日,PyCon China 2019 在上海举行。在下午的演讲中,来自微软开发工具事业部的资深研发工程师在演讲中,我们看到了 Azure Notebook 与 VS Code 对 Python 的强大的支持。然而,鱼和熊掌似乎不可兼得。Jupyt…

什么是CDN

一、cdn简介 CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。…

高性能最终一致性框架Ray之基本概念原理

一、Actor介绍Actor是一种并发模型,是共享内存并发模型的替代方案。共享内存模型的缺点:共享内存模型使用各种各样的锁来解决状态竞争问题,性能低下且让编码变得复杂和容易出错。共享内存受限于单节点的服务器资源限制。Actor模型的优点&…

漫画:程序员带娃日常(1)

我是一名IT界资深人士做过乙方苦哈哈做过甲方做过项目、搞点管理做过培训、也上台演讲不过现在最大挑战、交期最长的项目是。。。带 娃娃子啊,爸爸也是第一次当爸爸,要请你多多指教啦!1“小刘,把这个需求细化一下。”“兄弟们&…

表达式树练习实践:入门基础

什么是表达式树来自微软官方文档的定义:表达式树以树形数据结构表示代码。它能干什么呢?你可以对表达式树中的代码进行编辑和运算。这样能够动态修改可执行代码、在不同数据库中执行 LINQ 查询以及创建动态查询。好不好玩?表达式树还能用于动…

Servlet与线程安全

Servlet与线程安全 先说结论,Servlet本身是单例的,线程安全的。但是如果引入共享变量,则可能会变得线程不安全。 1. 什么是线程安全 首先说明一下对线程安全的讨论,哪种情况我们可以称作线程安全? 《Java并发编程实…

尝鲜体验 VS Code Python 原生 Jupyter Notebook 支持

9 月 21 日,PyCon China 2019 在上海举办。微软的 VS Code 发布了原生的Juypter Notebook 支持。 虽然要等到月底 Marketplace 里面才会正式更新,但 GitHub 上的 repo 已经包含了相应的 commit,所以还是可以通过手动安装的方式尝鲜。现有 VSC…

Java Web之filter、listener、Interceptor

** 1、Servlet ** Servlet 是服务端的 Java 应用程序,用于处理HTTP请求,做出相应的响应。 当客户端向服务器发出HTTP请求时,首先会由服务器中的 Web 容器(如Tomcat)对请求进行路由,交给该URL对应的 Servl…

abp vNext微服务框架分析

abp vNext新框架的热度一直都很高,于是最近上手将vNext的微服务Demo做了一番研究。我的体验是,vNext的微服务架构确实比较成熟,但是十分难以上手,对于没有微服务开发经验的.net人员来说几乎是看不懂的,所以研究一番后再…

.NET Conf 2019日程(北京时间)

一年一度的 .NET Conf马上就要开始了,我将日程简易的翻译了一下,并且时间全部转换为北京时间,以方便国内.NETer.第1天 (北京时间9月24日).NET Conf 2019 基调 - Scott Hunter Mads Torgersen James Montemagno Olia Gavrysh Daniel Roth Glenn Condron Bri Achtman欢迎来到 .NE…