scrum觀察日記
最近工作在跑scrum,來篇觀察日記(欸)。一個端午連假吃飽太閒的概念
頭一兩次planning meeting只有「混亂」兩個字可以形容。人多到坐了好幾張桌子,後面不知道前面在講什麼、前面不知道後面在幹嘛,直接分裂成好幾個小圈圈自己討論,整個會開下來都不知道在做什麼。混亂了一兩次之後,與會人數才縮減到比較能進行討論的數量。
一開始的討論是上面講上面的、底下自己懂自己的,到底真懂還是假懂,到底我的懂跟你的懂一不一樣都沒人知道,實作下去就發現做下來跟原本想的不一樣。接著的planning meeting開始出現會澄清彼此認知跟假設以及資訊的交流,到這裡才有那麼點資訊流通的樣子出來。不過這樣的澄清跟交流主要還是靠主持人push,而現在的主持人還是scrum master,以這點來說應該是非常不符合scrum……XD 但是我覺得以當前狀況來說這是可以接受的。到目前為止,雖然有RD跟QA參與(先別管什麼跨功能),但討論比較多還是在RD之間跟向PO確認使用者想要的東西,可能因為story被拆小,目前為止的story的測試成分不高。
我承認有時候planning開一開會覺得很煩躁,怎麼同一段話每個人的理解都不一樣、奇怪這上次不是講過了、啊現在到底是怎樣、能不能快點達成共識啊?可是,這正是討論需要做的,如果不讓每個人表達意見、發問跟參與討論,我們會直接失去不同的想法與聲音,那也沒必要開這種會,看誰厲害聽他的就好了。
planning meeting中可以讓member知道為什麼要做這個功能、使用者如何使用、需求又是什麼,我覺得這對RD蠻好的,畢竟大家通常會想知道為什麼要做這個功能、為什麼要這麼做,知道理由跟也能認為合理蠻重要的。而RD知道這些,在實作之外,或許也能提供其他建議。
估size也可以觀察到很有趣的事情。出牌的重點不在精確估出size而在資訊交流及溝通。頭幾次一個story就出很多次牌,好像想出到大家都是一致的,沒幾次就讓人想從眾,尤其是你不想講話或者講到沒什麼好講的時候。我曾經閃過因為不想講話乾脆去猜大多數人會出的牌的念頭,不過想想不太對就沒這麼幹。可能發現這樣出牌會沒完沒了,後來估size變成出兩次牌或收斂到兩三個區間就用權重算size,這似乎讓人變得比較忠於自己的想法。
人的行為會被環境跟過往經驗影響。出牌跟別人不一樣需要說明,說完出牌還是跟其他人有落差的時候,有些人會選擇堅持自己的想法,有些人會因為不想再被cue而出得跟大家一樣。原本就堅持自己想法的人很好,但考量台灣教育及工作環境的薰陶,對於「表達意見」的看法可能是負面的,而scrum希望每個人可以表達自己的想法,應該在實際做法上設法減少從眾跟鼓勵表達。我不覺得只是口頭上說「大家應該要表達自己的想法啊」、「應該要有熱情有向上的心啊」有多大意義,對表達想法的鼓勵與否,重點之一在有人提出意見後「發生什麼事」。開會開到一片死寂也沒那麼容易,總有人身先士卒的說些什麼,說完之後得到什麼樣的回應會影響其他人開口的意願,這種事實跟環境氣氛比嘴上說說更有說服力。
daily meeting的部分,好吧雖然可以理解但實在不太喜歡調整後的開始時間,先不論這個的話,我覺得不錯的地方是主持人一個個問有沒有什麼阻礙,雖然成員可以主動說出阻礙是比較好的,可是在還沒建立這樣的習慣前,刻意詢問每個人就是給予機會去表達跟習慣,雖然被動但總比沒有好。如果像我比較害羞或者有時候就是忘了,反正每天都有機會。也注意到自從有次問阻礙被變成提問題後,daily流程中在問阻礙前多了開放提問。從這些流程的小地方可以看到「改變與改善」,我覺得這才是agile精神真正的作為。
而retrospective,我不知道為什麼就是很難在那個當下做出反應,很難順著遊戲規則去想,常常腦袋一片空白。有點像是,不是對跑scrum沒什麼想法,而是我在那個當下就是對遊戲規則反應不過來的沒進入狀況。這可能是因為我還在收上個project的尾,對正在進行的story只出一張嘴,所以很難知道到底碰到什麼狀況。另一個可能的原因是,我在某些遊戲規則或者引導下需要比較長時間進入狀況,因為在其他場合也多次出現類似的情形。
說完實際上運作的種種,來談談精神層面(?)。agile的基本精神──因應改變而改變──我是認同的,可是沒辦法相信宣稱agile就是真正的agile。精神固然重要,但現階段實際做法是不是符合那精神更重要,否則都只是披著agile的皮的不知道什麼東西。講不知道什麼東西已經是好聽了,基於對台灣資方的不信任感,我覺得很容易是披著agile的皮的壓榨……
同樣一句話十個人聽都可以有十種解釋了,而agile的精神違反物理定律「慣性」(咦?),我不認為每個人理解跟認知的agile精神就真的是其精神的內涵(對,連我自己都可能不是真的理解)。「聽其言,觀其行」比較準確,與其聽人宣稱不如直接檢視實際作為。人的行為到這個年紀基本上會有某些pattern,這種東西不會一下子說變就變,是可以從各方面跟小地方觀察到些什麼的。
最後,說到改變,agile說改變改變但不是隨便亂變。
scrum流程裡sprint中間不能隨便亂改要做的事,這是改變中的「不變」。變動越大越頻繁,越需要某程度的不變去作為穩定跟結構,這是讓人知道什麼時間點會做調整、什麼時候不會動而能安心做事,否則沒有規則的亂變會導致無所適從或者直接暴衝。變動充滿不確定性,但是人會想要控制感,這是人性,不斷改變帶來的是許多不確定感,而在這之中的不變跟些許規則是讓人能知道有什麼是能夠掌握的。雖然不知道背後緣由,但我想scrum規範這樣的流程是有其原因的。