2017-09-11

Adapt or die 持續進步的力量 - 談談retrospective

趁著這次在 DevOpsDays Taipei 2017 準備這個話題
"Adapt or die 持續進步的力量"



我又再次整理了 retrospective 的一些需要注意的地方

為了準備這個題目 我在一個星期前就安排了一次實際的Meetup
讓學員實際體驗了 retrospective


每次在活動開始前 我都會問學員一個問題 :
如果有一天 專案非常忙
假設你們跑Scrum 而你必須做個抉擇
要捨棄Scrum的一個活動
你會捨棄掉哪一項活動呢?



這是在新竹 Meetup 的調查

這是在 DevOpsDays Taipei 2017 上的調查

其實不難發現 當真的很忙的時候
大家會選擇捨棄不做 retrospective
是不是很符合現實的情況呢?

不過沒關係
大家不愛 retrospective 可能是覺得浪費時間又沒有用
接下來我跟大家介紹幾個 Tips
看看這些 Tips 是否能幫助大家提升主持 retrospective 的用處
覺得有用 才真的有用

Tip 1 : Define the scope

定義清楚討論範圍

在Retrospective一開始
我通常會跟大家說明這次的範圍
如果是有Sprint概念的 就討論這個Sprint
如果是沒有跑Scrum的 (e.g. Operation Team)那就用一段期間 (e.g. 最近一個月)
如果發生了什麼重大問題
也可以針對這個問題來討論

定義清楚Scope的好處就是讓大家清楚明白接下來要討論的範圍在哪裡
才不會將所有的新仇舊恨都一起拿出來講

Tip 2 : Timboxing

每次討論我都會規定Timebox
並盡量嚴格執行
時間到了就討論下一個主題

嚴守Timebox有幾個好處 :

(1) 避免超時
      如果不控制時間 發散的討論可能會拖很長
      最棒的情況就像Daily Scrum一樣自然 每次都精準的結束 就不會造成大家的負擔

(2) 隱含排序效果
      最想講的一定要趕快拿出來講 不然就沒機會表達了 間接地就知道大家最痛的點是什麼

(3) 收斂想法
      因為有時間壓力 所以討論會慢慢收斂

上台說話時 第一輪我只讓每個人一次講一張想法就好
大家都說過一輪之後 才會進入自由討論的時間
主要是就是怕有影響力的人一次把全部想法講完 擠壓了其他人的時間

但其實每次執行時 我還是會看情況
如果討論正熱烈 大家已經進入了Zone
此時大家是很激情 很有想法的
我就會提醒他們時間已經到了 要不要再延續? 要延續多久?

Tip 3 : Play for keeps

簡單來說就是玩真的
一定要有Action Item
一定要有Owner
不然大家討論的東西又掉在地上沒人接
然後又會被質疑Retrospective沒有效果

另一方面 不要太貪心
一次先挑一件事來改善
通常大家列出的Action Item是真的會花到大家的時間的
所以套句大家最愛說的話 平常趕專案都沒時間了 哪有時間改善阿
只挑一件來改會是個比較簡單的開始

我自己是會列一項會花effort的Action Item 其餘列為Candidate Action Item (只記錄下來)
若是不須effort即能改善的Action Item (通常像政令宣導就好的那些)就直接改了
不算在Action Item裡面

Tip 4 : Play the ball, not the player

對事不對人
當討論, 抱怨或是吵架陷入了對人不對事的情況下 這個討論基本上是無效的
所以Scrum Master在引導時 一定要提醒大家 對事不對人
我們在講的是 事情 而不是
雖然我也知道很多人講出來的事情 本來就會針對背後的人
不過檯面上還是盡量讓大家客觀一點

如果已經到了劍拔弩張的時候呢?
上次看到一種作法
就是讓他們對著白板討論吧 !
讓他們對著白板上的事實來討論吧 !

Tip 5 : Run it regularly

定期舉辦
如果有跑Scrum的 開Retrospective應該不陌生(但也是最常被省略的會議)
如果沒跑Scrum 也建議要定期召開
如果久久開一次 雖然大家有新鮮感 可是心中的想法如果當下沒有記起來
事後還要回顧會非常難回想起
況且事情可能也過了 不須再追究等等

定期召開除了能夠即時收到回饋而有所調整之外
還能養成大家的自然而然的一種節奏與習慣
當這件事是很自然地發生時
團隊間也自然地塑造出一種安全的環境
而持續改進

Tip 1 ~ Tip 5 之前已經分享過了
我這邊不再詳述 請各位在去閱讀之前的文章囉
https://juggernaut-liu.blogspot.tw/2017/04/retrospective.html

Tip 6 : Visualization

視覺化
把要討論的東西 列在白板上
重點是要用粗簽字筆寫便利貼
這樣遠遠看才看得清楚再寫什麼
這樣才能引發討論


Tip 7 : Drive engagement

我一直覺得 retrospective 有個效果
就是能提升團隊 engage 的能力
所以也一直在想該如何讓團隊共同參與 覺得這是件好事 而願意一起面對
首要之務是要建立一個公平發言的機會
大家的 retrospective 不曉得是不是都是由老闆或是Team Lead率先發言呢?
然後風向就往那個方向偏了
所以 必須消除錨效應
於是 每個討論 我都會先讓大家寫自己的想法 (不彼此討論)

每一輪發言 也先暫時強迫每個人最多只能講 1 個或 2 個想法
待每個人都發言過後 (也可接受不發言) 再讓有更多想法的人補充

面對白板 圍成一圈 (越接近白板越好)
不知為何 我覺得圍成一圈有它的效果 感覺大家會開始分享

團隊自己提出 Action (非老闆提的)
自己提的solution 才有參與感 並願意去做

Tip 8 : Encourage team members

雖然 retrospective 到最後大都在檢討
但我覺得這也是個蠻棒的場合做感謝及正面鼓勵
所以每次 retrospective 無論是哪種引導的方法
我都會讓大家簡短地做個感謝或提出哪邊做的好

Tip 9 : 發散與收斂的過程

跟Brain Storming 很像
一開始要先講求發散 盡量收集想法
過程中要慢慢開始收斂
我們可以藉由 分類 或是 投票
慢慢地把想法收斂 然後專心討論某個議題

Tip 10 : Inspect the transparency

在這次 retrospective 你有多敢說真話呢? (1 ~ 5 分你給幾分?)
我建議在每次 retrospective 中都做這個調查 (匿名)
當作客觀評估團隊真話透明度的指標
因為匿名 所以姑且可以相信這是真心話
我們的期待是要越來越擴大團隊能說真話的範圍

Tip 11 : Change how we play

Randy Pausch說了以下這句話 : 
We cannot change the cards we are dealt, just how we play the hand
常常很多團隊會把過錯推到外面去
常常會說 都是 They 的錯 我們只能被動面對
可是阿 我都會引導團隊去思考
爛牌有爛牌的打法 我們要想一個辦法 讓傷害減少一點

Tip 12 : Self-Exposure


自爆
這邊自爆的意思是針對 老闆, Team Lead, 或 Scrum Master
當你們這些意見領袖勇敢提出自己做不好的地方
會讓團隊認為 
哇 老闆都敢說了 我有什麼好不敢說的

真的會慢慢形成一種氛圍
我們是真的來解決問題的

以上 12 個 Tips 希望能夠幫助大家提升 retrospective 的效率

最後我來定義一下 我個人的 retrospective
對我來說 retrospective 是一個機會
能夠讓我們學習與成長
不只是個人的成長 而是整個團隊的成長
並且是持續改進 跟團隊一起變強



大家一起變強吧 !