2012年8月4日 星期六

Scrum大師講座 (Emerson Mills)

Source: 網路

昨天去參加由泰迪軟體主辦、ezScrum 協辦的 Scrum大師講座(Emerson Mills),真的是覺得物超所值!!而且大師一出手便知有沒有,外國的和尚果然比較會念經...XD此外這次的活動又解決了我許多心中的疑惑,也更加了解國外軟體開發的現況,但是對於Emerson 所說 Do not pre-architecture too mush 嘖嘖稱奇~看樣子還要多去找找這方面的資料。

[ Update 2012.08 ] 延伸閱讀:
Agile(Scrum)與Architecture是否有矛盾或衝突 (1)
講座開始前,Emerson先請大家把想要問的問題寫下來貼在牆上,他會找時間一一回答。

 

下圖是Emerson在講軟體開發的本質與價值所在,我非常喜歡這個講解,橫軸是技術(How),越右邊代表越不確定性,縱軸是需求(What),越上面代表需求越不明確,由這張圖可以做以下簡單的分類:
  • Simple (簡單)   :需求明確,技術已知 (沒樂趣,沒挑戰)
  • Chaos (混沌)    :需求未知,技術不明 (通常也無法做)
  • 複雜 (Complex):需求稍微不明確,技術已知 or 技術尚待確認,需求明確
  • Complex & Complicated:需求不太明確,技術仍有需要研究的
而通常Complex & Complicated的案子才是有value (價值)能換錢的,也是對於工程師比較有挑戰的。




下圖是Emerson (Odd-e)版的Scrum sprint 圖,跟我之前看的比較不一樣,裡面有特別點出一些眉角是一般書沒有提到的,一個Sprint (iteration)有幾個重要部分:
  •     開始前的 Sprint Planning Meeting (這邊有分 Part 1 和Part 2)
  •     進行中的 Daily Scrum 
  • 預設保留的 Product Backlog Refinement (至少要保留5~10%的時間做 Refinement)
  • 交付or展示 Potentially Shippable Product Increment (PSPI)
  •     結束後的 Review Meeting (這邊也有分part 1 和 part 2)
如果單純看圖一定不知道這part 1 和part2 有什麼差別和重要性 (可能只會以為是中場休息),但是聽Emerson講解完後整個豁然開朗,才發現這兩部分才是最重要的核心所在,也會是專案成敗與否的關鍵,其他daily scrum 反而算是比較枝微末節的事。(我再另外寫一篇文章"part1 與 part2 的內容與重要性"講解,我所理解的這個部分)。



下圖是在解釋backlog的重點就是Prioritize,你可能會依照Business value、Risk、Cost...等去排,沒有一個標準,這必須依照各家公司的狀況調整,舉例來說 Value和Cost 這是常常會遇到要比較的問題,一個對客戶有價值Value的東西可能Cost很低,但是一個Cost 很高的東西(要花很多時間研究,佈署調教,準備環境..等) 客戶卻可能看不到其價值,但是不代表他沒有價值!!



下圖是Emerson重新再講解整個Scrum scope 以及 Scrum master 要負責的部份,簡單來說就是全部!Scrum master 的角色說實在是一個很神奇的存在,他並不能套用在現今傳統組織架構的任何角色,他不是管理人員,他只是一個教練

Scrum Master 可以做什麼 (他的職責比較像Project Manager的部份)

  • 要負責整個Scrum的順利
  • 要了解整個team 的狀況
  • 要思考怎麼imporve team productivity
  • 思考目前有什麼在影響team的進步
  • 要負責保護整個team 的獨立運作性、不被外面的人打擾...等
Scrum Master 不可以做什麼 (他沒有Project manager的權力)
  • 不能要求team加班
  • 不能"強制" 要求team多做需求(可以溝通)
  • 不能"強制" 干涉團隊成員的決定(可以建議)
因為scrum 的最高精神 "Team must self management !! ",就像我之前文章整理的"敏捷式開發的領導與管理 "裡面提到的僕人式管理。



下午的Panel discuss Emerson也提供了許多建言:
  • Do your job ,and improve your job. 
  • You need to know why, so you can improve it.
  • Team shared responsibility. (All of the whole)
  • Creativity means freedom to fail 
  • Trying uncertain leads innovation
  • Scrum is focus on improve team capability and performance, not focus on software quality. Software quality  is the result.
  • Scrum is not about management, is about leadership (他舉了這個影片當範例:First Follower: Leadership Lessons from Dancing Guy ) Scrum master 要引導大家發言,如果一個會議大家都不說話,這也是一個失敗的scrum
  • 當你在學別人的Scrum (所謂best practice)必須額外小心,因為這等於就是copy他們的環境和文化。
  • Performance review (KPI) will hurt scrum team! Evaluate team as a team. (如果其中有害群之馬,或是無法跟上team的速度與節奏,就要由team member 再review meeting  上提出,review 某人的performance,甚至把那個人踢出,不過這在台灣似乎很難...)



最後,Emerson 給要Run Scrum 的team 三個建議:

1. A fixed team
2. All work come from one product owner
3. Keep Project manager out  (最後一點,應該會有很多人不能接受吧~XD)


插曲:這張照片剛好拍到XDite 大大耶~:P 她好像最近都有去參加ezScrum所舉辦的活動。


    張貼留言