l

2010年1月17日 星期日

Scrum 是一種制度

01/17 21:34~23:40

依稀記得大概在兩年半前看到 Scrum 這個字眼,當時直覺的反應是:『又來了一個 agile method』。市面上 agile methods 這麼多,要怎麼學?... 阿就... 亂學 挑選第一品牌 XP 就是了。抱著這樣的精神,Teddy 也就沒特別花時間去留意這個連英文單字都不知道是什麼意思的 Scrum。

幾個月後,也忘了什麼原因,實驗室的學弟被指派報告 Scrum。一如往常,聽完之後獲得槓龜貼紙一枚。當時只記得聽到一些奇怪的名詞,什麼『Sprint, Backlog, Daily Scrum...』為什麼不叫做 iteration, requirement list, stand-up meeting 就好, 還要自創武功名稱。這些老外是怕咱們單字不夠背嗎?當時 Teddy 最沒搞懂的,就是下面這張圖中央的這兩個圈圈。慧根不夠,一個 30 天的大圈圈,背著一個 24 小時的小圈圈,光看圖很難了解它的明白。


後來,實驗室學弟 被迫 自願在某個專案上採用 Scrum,結果又累積了另一張槓龜貼紙。當時 Teddy 正忙著撰寫博速論文,也沒心思幫忙。不過主要的原因還是 Teddy 自己根本不懂 Scrum,插不上手。

無奈老天爺還是不放過 Teddy,就在 Scrum 連兩槓之後沒過多久,無意間看到了 Scrum and XP from the Trenches: How we do Scrum 這本免費的電子書。這本書只有 120 幾頁,用平鋪直敘的方式搭配大量具體的範例來分享作者自己實施 Scrum 的經驗。這本書 Teddy 反覆看了好幾次,再搭配 Agile Software Development with Scrum 以及之前看過的一堆 agile 書籍,採用雞尾酒療法的精神卯起來一次服用,藥效很強,忽然有種被黃袍加身的錯覺,也想找隻白老鼠來試一下(PS:叔叔有練過,小朋友不要學)。

後來果真找到一隻小白老鼠,到現在一轉眼過了一年半。值得安慰的是,當年這隻白老鼠到現在還健康的活著 (至少 Teddy 認為牠還滿健康的啦)。這一年半的學習歷程,Teddy 有一點點感想整理如下:

第一次接觸:經驗不是很好,因為槓龜兩次。Teddy 覺的這不過是另一個 agile method 而已。

第一次實施:Scrum 是一個很簡單的框架 (framework),規範了角色 (Product Owner, Scrum Master, Team),活動 (Sprint Planning Meeting, Daily Scrum, Sprint, Sprint Review Meeting, Sprint Retrospective Meeting, Product Backlog Refinement Meeting),產出物 (Product Backlog, Sprint Backlog, Task Board, Burndown Chart, Potential Shippable Software) 。但是 Scrum 並沒有特別規範 practices。從這個角度來看,要了解 Scrum 其實很簡單,但是要實際運用 Scrum 來開發軟體,還是需要紮實的軟體工程基礎(簡單講就是 agile practices, 像是 continuous integration, unit testing, refactoring, test-driven development, pair-programming, review, design patterns... 這一些都要真的懂而且要採用)。

實施幾個月之後:Scrum 很累... 要讓這些 刁民 團隊成員乖乖的按照書上說的方法來進行 Scrum 還真不容易。


上完 Certified Scrum Master 課程:Scrum 框架本身元素很少,所以很簡單。但是 Scrum 的精神卻不容易達成。例如,Scrum 強調『持續改善』,這一點就很難。還有 Scrum 要塑造 self-managed team(講成白話文就是自我管理的團隊,就是一個老闆都不用管,就會把事情做的又快又好的團隊)也是很難。

看了 Succeeding with Agile: Software Development Using Scrum 這本書:這本書第五頁提到 Scrum 很難的六個原因,包含

  1. Successful change is not entirely top-down or bottom-up; 
  2. The end state is unpredictable; 
  3. Scrum is pervasive; 
  4. Scrum is dramatically different; 
  5. Change is coming more quickly than ever before; 
  6. Best practices are dangerous。
內容是什麼意思有興趣的鄉民們就去賣本書來看,Teddy 想講的是第三點『Scrum is pervasive』,也就是說,公司要導入 Scrum,不是只有某一個團隊,或是整個開發部門的事情而已,而是整個公司都要『換腦袋』。業務部門要知道在 Scrum 框架下如何跟客戶溝通,人力資源部門要改變傳統以個人來評量績效的方法(Scrum 講的都是團隊... 有點社會主義的感覺)。QA 部門不能只從規格來驗收軟體,還要從客戶是否真正需要來考慮。結論就是,這根本是 革命 嘛。

各位 agile 先聖先賢們,咱們只是想好好開發個軟體,有那麼嚴重嘛!

總之,Teddy 現在的感覺是,Scrum 其實是一種『制度』,在這個制度底下,要做的事情其實很多。好比民主制度,主流價值觀都認為民主制度很好,但是真正實踐起來卻很難,而且很花時間。以咱們台灣為例,民主國家形式上要有的元素都有了,但是實質面卻還是有很多進步的空間。買票,賄選,立法院打架,民粹,立法效率差...等等一狗票的問題都還存在,但是不繼續走下去好像也不行。實施 Scrum 的過程,有點像是從專制或是帝制換到民主共和制度一樣,以程式語言的術語來講,這就是一種『典範轉移』(paradigm shift)。會寫程式的鄉民們回想一下,從程序導向的思考模式要換到物件導向的思考模式花了你多少時間?所以實施 Scrum 要有長期抗戰的準備。

但是,先決條件是,你,你的團隊,還有最重要的是,你老闆要相信民主制度比較好。如果你的老闆是袁世凱,那實施 Scrum 是『祝恐怖』滴。此時還是大喊一聲『皇上聖明』比較實際一點。

友藏內心獨白:可以用『台澎金馬民主領域』申請加入聯合國嗎?

1 則留言:

  1. 請問Teddy大大的FB帳號是什麼?我想加入唷~謝謝!

    回覆刪除