华为敏捷DevOps实践:产品经理如何开好敏捷回顾会议
大家好,我是华为云DevCloud项目管理服务的产品经理 恒少:)
作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流、布道、技术沙龙,但是线下交流,覆盖的用户总还是少数。我希望借助线上的平台,和用户持续交流华为在研发效能提升上的思索和考虑。
<恒少出品,必然妥妥干货,必定理论联系实践>,因为软件无银弹,探索始终在路上
-----------------------干货分割线--------------------------------------
开篇小故事:前几年,一本叫《沉思录》的书在国内突然曝光度很多,因为前某国家领导人“摆案头,读百遍”。《沉思录》是古罗马皇帝马可·奥勒写给自己的书,内容大部分是在鞍马劳顿中写的。其实有一句“我们所听到的不过只是一个观点,而非事实。我们所看到的不过只是一个视角,而非真相”
全员都参加的回顾会议,其实就是希望能通过全员视角,全员的观点来回顾做的好的,做的不好的,改进之。从敏捷宣言,到敏捷的诸多实践(如Scrum),到DevOps,都一直提倡回顾这种形式。
其实回顾这种形式,并不是敏捷/DevOps专属的,在华为最早的CMM流程中,也有类似的活动。有时候团队碰到域郁闷,痛苦的时候,还会主动自发的开。
所以,回顾,我一直认为这是人类作为一个智慧物种相比其他生物的一个重要区别。我有的时候回通过回顾会议来判断这个团队会不会成功。最极端的,如果甚至都没有人想着要约大家一起回顾,这个团队极大概率要88了。
华为内部不仅研发交付团队,连一线的市场团队,在重大的市场项目,交付项目的过程中都会定期进行回顾会议,算是华为内部这么多年积累的一个很好的实践。
必须鲜明表达的观点——回顾有三个不是
1.不是“回溯”。“顾”和“溯”一字之差,在中文的语境中,却会导致变成刨根问底。
2.不是“批评与自我批评”。“批评与自我批评”是一个很好的形式,但是会导致团队陷入一种不必要的紧张和犯错感。
3.不是“问责和处罚”。软件的不确定性,不可见性,复杂性,易变性决定了软件开发过程总会有些磕磕盼盼,我们提倡的是改进,不是惩罚
从华为这么多年的实践来看,上面的三种情况都出现过,所以提醒大家要小心。
这么些年实践过来,我们发现出现以上情况,也是因为步子走得太快,低头玩手机^_^,忘了“回顾”的初心:
1.For a better future;
2.Learn from past;
3.Take action in present.
回顾会议的基本原则
1.对事不对人。举个例子,我们可以说“代码评审不充分,所以代码缺陷较高”,不能说“某帅哥评审不认真”,当然夸人帅还是可以的哈^_^。
2.聚焦于下次能否做得更好。还举同样的例子,我们可以说“这个迭代代码评审不充分,下个迭代我们怎么才能保证更充分的评审”。
3.从系统角度思考改进,而非个人。我们可以说“团队的工作安排上,导向上是不是不重视代码评审?”。
回顾会议的Step by Step
1. 确定参与人(Who)
a)团队所有成员都参加。
b)领导是否参加,试情况,如果领导参加利大于弊,就邀请,否则还是算了^_^
c)如果是重大的项目发布或项目结束的回顾会议,还应该叫上所有对项目有付出的成员。
d)建议指定一个会议引导人,可以是敏捷教练,也可以是团队成员轮流(团队成员建议熟读本文)
2.选择合适的场所(Where)
a)如果条件允许,离办公位尽可能远一点,避免有同学中途又回去处理工作了
b)尽可能不要使用传统会议室的布局,围坐一个大桌子那种不好。可以拉几把椅子围成一个半圆形。
c)需要有白板,或者墙壁可以贴个大白纸
3.准备回顾的内容(What)
a) 准备上个迭代的客观数据,特性、需求、缺陷等数据,如果使用了像DevCloud这样的敏捷管理工具,准备数据其实很快的,甚至不用特别准备,现场打开就可以,类似如下这样
b) 团队成员上个迭代的感受,可以认为是主观数据的收集。
c) 每日站立会议的要点。每日站立会议中都会提出并跟踪解决一些问题,回顾这些问题也可以帮助我们审视过程中的情况。恒少之前专门写过如何开好站立会议的实践文章《华为敏捷 /DevOps 实践:如何开好站立会议》,可以参考。
d) 准备一个规则,会议开始前贴出来或打印出来或投影仪投出来。规则是为了保证会议的纪律和效率,比如不能随便打断别人讲话,每人发言时长,会议时长(建议10~12人的团队,限定在1小时内)
4. 回顾会议的过程(How)
a) 准备和引导——明确目标。重申回顾会议的目标和原则,让成员重拾回顾的“初心”,发布公示如下的回顾宣言,重申会议纪律,时长。准备和引导环节是让大家放下手机,进入回顾会议状态的必要环节,无论开过多少次,都不应该省掉。
b) 数据、过程的回放——建立共同的全景。展示本迭代的度量数据,如果有使用类似DevCloud的敏捷管理工具,可以直接打开系统。全景的数据展示回顾,让视角更全面。对于一些“历经劫难”的迭代,可以画一个时间线,把这个迭代发生的重大的一些事件按照时间顺序展示出来,帮助团队成员回顾都发生了什么
c) 提出见解——我们如何才能做得更好。可以通过头脑风暴,全员参与,有很多种分类的方法,如下图中是分为“Good”(下个迭代哪些好的方法可以继续保持),“Could Better”(下个迭代可以哪些地方可以做得更好),Improvements(新的改进的具体想法)。可以采用“有限投票”的方式,每个成员有5票(比如小磁贴或直接记正字),大家共同团队层面需要重点改进的。其实投票未排进Top的改进,如果不需要组织和团队来推动,个人也可以实施的改进,也应该支持。
d) 确定措施——想清楚就干,才有诚信。识别了重点的改进项,为每一个改进项指定计划,执行的措施,需要更高层面去解决的措施需要单独列出来,项目Leader会后要发挥“死缠烂打”的精神去骚扰领导了,同时每个改进措施都应该明确一个责任人,如果没有明确的责任人,大家都会认为是别人的事情。
e) 结束会议——果断结束,绝不拖泥带水。将会议中达成共识的措施和计划整理记录下来,如果使用了敏捷管理的工具系统,可以直接输入到系统中,记录为Story或者任务。
来自实践中的一些坑和雷
1.不持之以恒。那什么几天打鱼,几天晒网的可不行。恒少,恒少,就是能持之以恒,哈哈。
2.理想主义。团队级的回顾会议应基于现实,而非理想,或者说理想可以有,诗和远方也可以有,但是回顾会议还是应接地气。
3.沉迷于细节。程序员有的时候特别认真,容易把问题引入到技术细节,这样会导致议题发散。
4.只开会,没有吃的,好饿。皮一下,为了调节会议氛围,可以准备些吃的,补充能量,大脑才能激发
最后的最后,每个迭代回顾会议,都不要忘了感谢辛苦码代码的自己,也不要忘了感谢为了心中教堂而努力的所有团队成员。
华为敏捷DevOps实践:产品经理如何开好敏捷回顾会议的更多相关文章
- 华为敏捷/DevOps实践:产品经理如何开好迭代计划会议
大家好,我是华为云DevCloud项目管理服务的产品经理恒少,作为布道师和产品经理,出差各地接触客户是常态,线下和华为云的客户交流.布道.技术沙龙. 但是线下交流,覆盖的用户总还是少数.我希望借助线上 ...
- 产品经理-需求分析-用户故事-敏捷开发 详解 一张图帮你了解Scrum敏捷流程
产品经理-需求分析-用户故事-敏捷开发 详解 用户故事是从用户的角度来描述用户渴望得到的功能.一个好的用户故事包括三个要素:1. 角色:谁要使用这个功能.2. 活动:需要完成什么样的功能.3. 商业价 ...
- 华为敏捷/DevOps实践:如何开好站立会议
大家好,我是华为云的产品经理 恒少: 作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流.布道.技术沙龙,但是线下交流,覆盖的用户总还是少数. 我希望可以借线上的平台,和用户持续交流 ...
- 【华为敏捷/DevOps实践】7. 敏捷,DevOps,傻傻不分清楚【华为云技术分享】
文:姚冬(华为云DevCloud首席技术布道师,资深DevOps与精益/敏捷专家,金融解决方案技术Leader,中国DevOpsDays社区核心组织者) 前言 敏捷是什么?DevOps是什么?两者有什 ...
- 「产品经理全连接系列1」Epic/Feature/Story/Task/Bug到底是什么
大家好,我是华为云的产品经理 恒少: 作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流.布道.技术沙龙,但是线下交流,覆盖的用户总还是少数. 我希望可以借线上的平台,和用户持续交流 ...
- 「产品经理全连接系列2」企业如何开展敏捷或DevOps的研发变革
大家好,我是华为云的产品经理 恒少: 作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流.布道.技术沙龙,但是线下交流,覆盖的用户总还是少数. 我希望可以借线上的平台,和用户持续交流 ...
- 宜信SDL实践:产品经理如何驱动产品安全建设
一.序言 本文从产品经理的角度出发,对产品经理的安全职责.产品驱动安全的内涵.工作内容.工作方法.所需安全资源.以及产品经理的安全工作量进行了分析.希望所有产品经理在没有心理负担的情况下,有目标.有方 ...
- SDL实践:产品经理如何驱动产品安全建设
一.序言 本文从产品经理的角度出发,对产品经理的安全职责.产品驱动安全的内涵.工作内容.工作方法.所需安全资源.以及产品经理的安全工作量进行了分析.希望所有产品经理在没有心理负担的情况下,有目标.有方 ...
- 古有七步成诗,今有六步完成DevOps上华为云DevCloud实践
引言: 在“DevOps能力之屋(Capabilities House of DevOps)”中,华为云DevCloud提出(工程方法+最佳实践+生态)×工具平台=DevOps能力.华为云DevClo ...
随机推荐
- leetcode717
class Solution { public: bool isOneBitCharacter(vector<int>& bits) { int len = bits.size() ...
- SpringMVC总结四:拦截器简单介绍
首先要说一下HandlerExecutionChain: HandlerExecutionChain是一个执行链,当用户的请求到达DispatcherServlet的时候,DispatcherServ ...
- laravel的模型关联之(一对多的反向)
一对多的反向 一对多的反向就相当于,一个用户有多篇文章,但是在显示文章模型的时候你又想显示这个用户的用户名,但是你只有用户id, 这时候就用到了一对多的反向,你用用户(User)模型里面定义了一对多来 ...
- Jquery异步
一.Jquery向aspx页面请求数据$("#Button1").bind("click", function () { $.ajax({ type: &quo ...
- 基于jquery 的插件,让IE支持placeholder属性
开发一个项目的时候为了美观和用户体验用到了input标签的placeholder属性,但是这个属性是html5中的,所以低版本的IE浏览器不支持.于是在百度找了一些解决方法,找了好几个都不是那么完美, ...
- 189. Rotate Array 从右边开始翻转数组
[抄题]: Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the ...
- 面试题: java多线程 背1
如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其 ...
- c语言实践 给三个数输出最大的那个数
我是怎么想的,我前面学过两个数比大小,比如有三个数,a b c,先比较a和b的大小,然后用那个较大的和c比较就得出最大的那个了.这个求三个数比大小的问题最后变化成 了两个数比大小了. int main ...
- Bean管理注解的例子
- Mybatis_映射文件配置
获取自增主键的值 若数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server),则可以设置 useGeneratedKeys=”true”,然后再把 keyProperty 设置到目标 ...