華為敏捷 DevOps 實踐:產品經理如何開好敏捷回顧會議

開篇小故事:

前幾年,一本叫《沉思錄》的書在國內突然曝光度很多,因為前某國家領導人“擺案頭,讀百遍”。《沉思錄》是古羅馬皇帝馬可·奧勒寫給自己的書,內容大部分是在鞍馬勞頓中寫的。其實有一句“我們所聽到的不過只是一個觀點,而非事實。我們所看到的不過只是一個視角,而非真相”。

全員都參加的回顧會議,其實就是希望能通過全員視角,全員的觀點來回顧做的好的,做的不好的,改進之。從敏捷宣言,到敏捷的諸多實踐(如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. 為了調節會議氛圍,可以準備些吃的,補充能量,大腦才能激發。

最后的最后,每個迭代回顧會議,都不要忘了感謝辛苦碼代碼的自己,也不要忘了感謝為了心中教堂而努力的所有團隊成員的

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252975.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252975.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252975.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

斐波那契數列的鬼畜的性質

斐波那契數列的鬼畜的性質 斐波那契數列定理1 \(gcd(f[i],f[i1])1\) 利用輾轉相減法 證明:\(gcd(f[i],f[i1])\)\(gcd(f[i1]-f[i],f[i])\)\(gcd(f[i-1],f[i])\)\(....\)\(gcd(f[1],f[2])1\) 斐波那契數列定理2 \(f[mn]f[m-1]f[n]f[m]f[n1]\) 證明:\(f[mn]…

xml與java對象轉換 -- XStreamAlias

XStreamAlias使用 一、 特點: 簡化的API; 無映射文件; 高性能,低內存占用; 整潔的XML; 不需要修改對象;支持內部私有字段,不需要setter/getter方法 提供序列化接口; 自定義轉換類型策略; XStream的優點很多,但是也有一些小bug,比如在定義別名中的下劃線…

windows下安裝zabbix_agent

Server端在linux系統上,server端版本為2.2.6,是以前就裝好的已經跑了很久的穩定版。目前的需求是要將新業務的服務器添加到該監控隊列。而這些服務器是windows系統。 第一次下載了最新版的zabbix_agent for windows。按照正常程序安裝完成后,…

JS和Jquery獲取和修改label的值

獲取值: label標簽在JS和Jquery中使用不能像其他標簽一樣用value獲取它的值: var labeldocument.getElementById("id");var valuelabel.value;var value$("#id").val();可以這樣:JS: var labeldocument.getElementById(&…

Linux內核訪問外設I/O--動態映射(ioremap)和靜態映射(map_desc)

本篇文章主要介紹了"Linux內核訪問外設I/O--動態映射(ioremap)和靜態映射(map_desc)",主要涉及到Linux內核訪問外設I/O--動態映射(ioremap)和靜態映射(map_desc)方面的內容,對于Linux內核訪問外設I/O--動態映射(ioremap)和靜態映射(map_desc)感…

點擊顯示隱藏盒子函數

示例&#xff1a;&#xff08;手機導航欄&#xff09; <header> <div class"logo"></div> <p class"text">微蜂傳媒</p> <div class"nav_btn" οnclick"showHide(.dropdown_menu)"></div> …

MyBatis 緩存機制

Mybatis 有兩級緩存&#xff1a; 一級緩存&#xff1a; 也稱為本地緩存&#xff0c;SqlSession級別的緩存。一級緩存是一直開啟的&#xff1b; 與數據庫同一次會話期間查詢到的數據會放在本地緩存中&#xff0c;以后如果需要獲取相同的數據&#xff0c;直接從緩存中拿&#xff…

Android虛擬化引擎VirtualApp探究

2019獨角獸企業重金招聘Python工程師標準>>> 介紹 首先需要說明的是&#xff0c;VirtualApp并不是前些陣子滴滴開源的插件化框架VirtualApk。 VirtualApp是一個更加黑科技的東西&#xff0c;他可以創建一個虛擬空間&#xff0c;你可以在虛擬空間內任意的安裝、啟動和…

揭開全景相機的創業真相

&#xff08;Bubl全景相機&#xff09; 國外一開源&#xff0c;國內就自主。這在VR&#xff08;虛擬現實&#xff09;領域體現的淋漓盡致——Google的Cardborad一開源&#xff0c;國內就有數百家廠商蜂擁做了各種插手機的VR盒子。到了全景相機&#xff0c;這一幕似乎又開始重演…

一個厲害的網站

2019獨角獸企業重金招聘Python工程師標準>>> dromara 發現一個網站&#xff0c;發現上面的開源項目真的都非常厲害誒。 轉載于:https://my.oschina.net/miaojiangmin/blog/2934221

最全VR產業鏈全景圖(必收藏)

http://www.360doc.com/content/16/0324/20/28622037_544974325.shtml

本地計算機綁定域名訪問

我們知道localhost綁定的是本地主機IP&#xff08;127.0.0.1&#xff09;&#xff0c;那么我們能不能自定義綁定本地主機IP地址呢&#xff1f;答案是肯定的&#xff0c;同修改hosts文件&#xff0c;我們可以實現上面的需求。 打開本地C盤&#xff0c;找到Windows文件夾-->Sy…

Tomcat配置及原理文章

同一tomcat實現多端口多域名訪問 tomcat源碼分析(第一篇 從整體架構開始) tomcat源碼分析(第二篇 tomcat啟動過程詳解) tomcat源碼分析(第三篇 tomcat請求原理解析--Connector源碼分析) tomcat源碼分析(第四篇 tomcat請求處理原理解析--Container源碼分析)轉載于:https://www.c…

windwon安裝macaca環境

一 安裝配置java1.安裝java_jdk &#xff0c;安裝過程中順帶一起安裝jre(1)選擇【新建系統變量】--彈出“新建系統變量”對話框&#xff0c;在“變量名”文本框輸入“JAVA_HOME”,在“變量值”文本框輸入JDK的安裝路徑&#xff0c; 如“C&#xff1a;/Java/jdk1.6.0_25”(2)在“…

三星要用Exynos 9芯片打造獨立VR頭顯

【天極網VR虛擬現實頻道】近期有數據顯示&#xff0c;2016年全球VR虛擬現實設備的出貨量達到了630萬臺&#xff0c;其中三星Gear VR以451萬臺出貨量稱霸全球VR市場&#xff0c;占據高達71%的市場份額。不過三星的眼光并不局限于手機VR設備&#xff0c;這家公司正在計劃推出一款…

消息隊列常見的 5 個應用場景

消息隊列中間件是分布式系統中重要的組件&#xff0c;主要解決應用耦合&#xff0c;異步消息&#xff0c;流量削鋒等問題&#xff0c;實現高性能、高可用、可伸縮和最終一致性架構。使用較多的消息隊列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。 消息隊列應用場…

Leetcode之二叉樹(前200道)

持續更新... github鏈接&#xff1a;https://github.com/x2mercy/Leetcode_Solution 為什么括號200道呢&#xff01;因為準備按照200道這樣的周期刷&#xff0c;每200道刷兩遍&#xff0c;第一遍按難度刷&#xff0c;第二遍按類別刷&#xff01; 先整理binarytree這一類別也是因…

在ARM Linux下使用GPIO模擬SPI時序詳解

Author&#xff1a;楊正 Data&#xff1a;2016.1.1 Mail&#xff1a;yz2012wwgmail.com一、 概述 SPI是英文SerialPeripheral Interface的縮寫&#xff0c;顧名思義就是串行外圍設備接口。SPI是一種高速、全雙工、同步通信總線&#xff0c;標準的SPI有4個引腳&#xff…

git clone時出現 error:inflate:data stream error(incorrect data check)

git clone時出現 error:inflate:data stream error(incorrect data check) fatal:serrious inflate inconsistency fatal:index-pack failed 經了解&#xff0c;此問題是遺留問題&#xff0c;之前是因為公司對gitlab服務器進行數據遷移而引起這種git clone失敗的原因&#xff0…