开篇小故事:

前几年,一本叫《沉思录》的书在国内突然曝光度很多,因为前某国家领导人“摆案头,读百遍”。《沉思录》是古罗马皇帝马可·奥勒写给自己的书,内容大部分是在鞍马劳顿中写的。其实有一句“我们所听到的不过只是一个观点,而非事实。我们所看到的不过只是一个视角,而非真相”。

全员都参加的回顾会议,其实就是希望能通过全员视角,全员的观点来回顾做的好的,做的不好的,改进之。从敏捷宣言,到敏捷的诸多实践(如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)建议指定一个会议引导人,可以是敏捷教练,也可以是团队成员轮流(团队成员建议熟读本文)。

  1. 选择合适的场所(Where)

a)如果条件允许,离办公位尽可能远一点,避免有同学中途又回去处理工作了。
b)尽可能不要使用传统会议室的布局,围坐一个大桌子那种不好。可以拉几把椅子围成一个半圆形。
c)需要有白板,或者墙壁可以贴个大白纸。

3. 准备回顾的内容(What)

a) 准备上个迭代的客观数据,特性、需求、缺陷等数据,如果使用了像DevCloud这样的敏捷管理工具,准备数据其实很快的,甚至不用特别准备,现场打开就可以,类似如下这样:

b) 团队成员上个迭代的感受,可以认为是主观数据的收集。
c) 每日站立会议的要点。每日站立会议中都会提出并跟踪解决一些问题,回顾这些问题也可以帮助我们审视过程中的情况。
d) 准备一个规则,会议开始前贴出来或打印出来或投影仪投出来。规则是为了保证会议的纪律和效率,比如不能随便打断别人讲话,每人发言时长,会议时长(建议10~12人的团队,限定在1小时内)。

  1. 回顾会议的过程(How)

a) 准备和引导——明确目标。重申回顾会议的目标和原则,让成员重拾回顾的“初心”,发布公示如下的回顾宣言,重申会议纪律,时长。准备和引导环节是让大家放下手机,进入回顾会议状态的必要环节,无论开过多少次,都不应该省掉。
b) 数据、过程的回放——建立共同的全景。展示本迭代的度量数据,如果有使用类似DevCloud的敏捷管理工具,可以直接打开系统。全景的数据展示回顾,让视角更全面。对于一些“历经劫难”的迭代,可以画一个时间线,把这个迭代发生的重大的一些事件按照时间顺序展示出来,帮助团队成员回顾都发生了什么。
c) 提出见解——我们如何才能做得更好。可以通过头脑风暴,全员参与,有很多种分类的方法,如下图中是分为“Good”(下个迭代哪些好的方法可以继续保持),“Could Better”(下个迭代可以哪些地方可以做得更好),Improvements(新的改进的具体想法)。可以采用“有限投票”的方式,每个成员有5票(比如小磁贴或直接记正字),大家共同团队层面需要重点改进的。其实投票未排进Top的改进,如果不需要组织和团队来推动,个人也可以实施的改进,也应该支持。

d) 确定措施——想清楚就干,才有诚信。识别了重点 的改进项,为每一个改进项指定计划,执行的措施,需要更高层面去解决的措施需要单独列出来,项目Leader会后要发挥“死缠烂打”的精神去骚扰领导了,同时每个改进措施都应该明确一个责任人,如果没有明确的责任人,大家都会认为是别人的事情。
e) 结束会议——果断结束,绝不拖泥带水。将会议中达成共识的措施和计划整理记录下来,如果使用了敏捷管理的工具系统,可以直接输入到系统中,记录为Story或者任务。

来自实践中的一些坑和雷

  1. 不持之以恒。那什么几天打鱼,几天晒网的可不行。
  2. 理想主义。团队级的回顾会议应基于现实,而非理想,或者说理想可以有,诗和远方也可以有,但是回顾会议还是应接地气。
  3. 沉迷于细节。程序员有的时候特别认真,容易把问题引入到技术细节,这样会导致议题发散。
  4. 为了调节会议氛围,可以准备些吃的,补充能量,大脑才能激发。

最后的最后,每个迭代回顾会议,都不要忘了感谢辛苦码代码的自己,也不要忘了感谢为了心中教堂而努力的所有团队成员的

华为敏捷 DevOps 实践:产品经理如何开好敏捷回顾会议相关推荐

  1. 【华为敏捷/DevOps实践】3. 如何开好站立会议

    文/华为云DevCloud 恒少 理论总是美好的,现实却又是骨感的,很多华为云DevCloud的客户特别想知道How to,接下来恒少会陆续分享一些非常小的华为敏捷/DevOps的实践,点点滴滴. 开 ...

  2. 【华为敏捷/DevOps实践】6.架构师在新兴的DevOps组织应该扮演什么样的角色?

    文/华为云DevCloud 论语春秋 DevOps组织的成功,很大程度上来自于聚焦培养强有力的DevOps团队.然而随着DevOps深入实施,DevOps组织却面临窘境,在交付团队与流程中无法为应用架 ...

  3. 【华为敏捷/DevOps实践】5. 如何避免DevOps变革的六大“焦油坑”

    文/华为云DevCloud 伦语春秋 当今,DevOps能显著提升企业的商业敏捷与能力,因此在企业中广受欢迎.然而,对于大多数企业来讲,DevOps变革并非一帆风顺,此过程中会面临各种各样的挑战.为了 ...

  4. 【华为敏捷/DevOps实践】4. 如何从Excel做项目管理的方式中走出来

    文/华为云DevCloud 恒少 开篇小段子:业界有个小段子,研发不是请客吃饭,是倾家荡产. 是的,研发人员,尤其是从事软件的工程师门,普遍是比较傲娇的,在软件产品没有卖出去形成收入前,软件工程师的投 ...

  5. 【华为敏捷/DevOps实践】2. Wiki凭什么持续得到开发人员和团队的喜爱

    文/华为云DevCloud 恒少 开篇语:使人有乍交之欢,不若使人无久处之厌--摘自明代书画家陈继儒(号眉公,也称陈眉公)<小窗幽记> Wiki在我看来,第一眼一般不会有"乍交之 ...

  6. 向华为学习,成功产品经理的第一课

    向华为学习,成功产品经理的第一课 时间:2day 课程背景 本课程聚焦产品经理的培养,如果下列几个问题中有3个以上能戳中您的痛处,您就有必要来听听讲师给您开出的"建议": 1.企业 ...

  7. 如何开好迭代回顾会议(2)准备、工具

    上篇文章向大家介绍了一个通用的迭代回顾会议议程,它可以应对大部分情况下的迭代回顾会议.相信只要做好以上的每一个环节,一定可以开好一个迭代回顾会议.怎样才能做好以上所有环节呢?会前准备必不可少,会前准备 ...

  8. 如何开好迭代回顾会议(1)目的、议程

    迭代回顾会议目的 迭代回顾会议作为迭代化开发中的一个重要活动,为保证敏捷团队的高绩效运作发挥着着不可或缺的作用.要开好一个迭代回顾会议,不论是敏捷教练还是团队成员,都要牢记迭代回顾会议的目的. 检查并 ...

  9. 华为敏捷/DevOps实践:如何开好站立会议

    作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流.布道.技术沙龙,但是线下交流,覆盖的用户总还是少数. 我希望可以和用户持续交流华为在研发效能提升上的思索和考虑.但理论总是美好的, ...

最新文章

  1. 【青少年编程】绘制五角星
  2. 【译】OpenDaylight控制器:YANG Schema和Model
  3. SQL Server 2005/2008 图形界面(SQL Server Management Studio Express)
  4. php dir opendir,php opendir()列出目录下文件的方法代码
  5. 二维指针动态分配内存连续问题分析
  6. 怎么监控一个接口的传输数据_监控安装超详细教学教程,学会又多一门技能
  7. python wand安装_Python Wand posterize()用法及代码示例
  8. dagger2记录篇
  9. WinZip命令行详解
  10. VB2010网络通信服务器
  11. 算法4(一、递归学习)
  12. 【OVRP问题】基于鲸鱼优化算法求解开放式车辆路径问题附matlab代码
  13. Python3制作网易云音乐下载器
  14. C语言中 各数据类型求绝对值abs(),fabsf()等函数的使用。
  15. Android DNS之gethostbyname()的实现
  16. 基于stm32单片机的空气质量检测仿真(仿真+源码+全套资料)
  17. FTPS“严重错误: gnutls_handshake: A TLS fatal alert has been received.”
  18. iphone通讯录的备份与恢复
  19. Android oppo手机显示安装包异常(Bug6)
  20. 让IPv6强大的关键——NDP邻居发现协议

热门文章

  1. 巧妙解法:买卖股票最佳时机
  2. muduo之GzipFile
  3. realloc函数在使用上要注意什么问题
  4. 开发相关手册、STM32各种库文件、相关软件、工具连接等(不断更新)
  5. 常考数据结构与算法-morris遍历
  6. 剑指offer七:斐波那契数列
  7. oracle:instance与database,启动过程
  8. python八:列表(list)
  9. UI开发模式-容器模式
  10. Python OOP