2015年1月3日 星期六

Daily Stand-up 的起源

徐柏峰

圖片由美商 Digital River提供,為Daily Stand-up會議實況,Digital River為全球知名電子商務平台商,開發團隊使用敏捷方法,獲台北市政府選為2014年幸福企業
敏捷開發法的眾多門派中,最容易入門的一派,應該非Scrum莫屬了。根據Jeff SutherlandKen Schwaber的建議,Scrum Team中的全體開發人員(Development Team),每天應該花最多15分鐘,在相同時間、相同地點(at the same time and place),針對為了達成本期目標(Sprint Goal)「前一天完成的工作、今天預計的工作以及過程中遭遇的困難」這3個問題,輪流自問自答,讓整個團隊掌握專案最新進度,由於這是Scrum Team每日例會,因此叫做Daily Scrum,又因為會議過程儘量是站著開會,因此又稱為Daily Stand-up Meeting時至今日,不管是不是Scrum Team,很多號稱導入敏捷開發的團隊,都有Daily Stand-up的實務,不過真的知道站立會議來由的人,卻不多見。

        全世界第一個Scrum Team
話說1993年,Jeff Sutherland在知名軟體公司Easel Corporation任職,「官拜」物件科技部副總(VP of Object Technology),念醫科出身的Jeff Sutherland覺得,軟體業界盛行「先寫作文再寫程式」的瀑布式開發方式,非常沒有效率,因此他決定自己帶隊試行新的工作方法,全世界第一個Scrum Team就這樣成軍了。Jeff Sutherland認為,帶領宅男宅女工程師組成開發團隊,就像帶兵打仗一樣,如果團隊士氣高昂,戰鬥力自然就會顯現出來。於是,喜歡看橄欖球(Rugby)比賽的Jeff Sutherland靈機一動,安排在公司播放黑衫軍(All Blacks)的哈卡舞(Haka)影片,要求團隊成員要「學著點」。[1] 
本圖為紐西蘭國家隊2006年與法國隊對戰前的畫面,後來紐西蘭以23:11勝出;圖片來源wikipedia
看Haka戰舞激勵Scrum Team士氣
黑衫軍是紐西蘭國家橄欖球隊,在國際體壇上戰功彪炳,曾在41次的世界盃橄欖球賽,寫下2屆冠軍、1屆亞軍和2屆季軍的輝煌紀錄。每次出賽前,黑衫軍會先在場上一字排開,表演毛利族(Mori)傳統的哈卡戰舞來激勵團隊士氣。哈卡舞的動作、聲音和表情都很震撼,看過的人勢必血脈噴張,留下深刻印象。懂得「帶人要帶心」道理的Jeff Sutherland,在施展放影片奇招之後,接著上演感性的「開示」,果然把工程師情緒炒得火熱,原本「走鐘」的開發團隊,決定要放手一搏。

        Borland團隊每天溝通,發揮高產能
當時,立志要改變的Easel Corporation團隊聽說,總部位於美國加州的寶藍(Borland Software Corporation)公司,在Quattro Pro for Windows專案上,8名工程師只花了31個月,就寫出超過1百萬行的程式碼,這平均每周每人1千行的效能,無疑是地表上戰鬥力最強的團隊。[2] Easel Corporation團隊進一步觀察後發現,寶藍的「秘密醬汁」(secret sauce)非常簡單:就是天天召集團隊,討論手上的工作。原來,寶藍的團隊成員都在一個地方,成員之間透過每天固定會面,用自我管理的方式,解決眼下遭遇的問題,會議中,如果有同事遇到技術瓶頸,其他人就用三個臭皮匠勝過一個諸葛亮的心態,合力找到問題的解答。
     
        Easel Corporation團隊自訂每日會議規則
        研究過寶藍的開會方式之後,Jeff Sutherland和他的Easel Corporation團隊覺得方向是對了,不過問題是,寶藍團隊每天會議超過1個小時,每次有人提出技術細節,其他人就全部綁在同一場會議上,耽誤很多時間。對此,Jeff Sutherland一行人幾經思索,決定導入團隊每天交換意見的實務,不過為了讓會議更有效率,Easel Corporation團隊訂了3條家規:

  1. 會議要每天舉行,全員都要出席,如果有人缺席,溝通就沒有到位。會議時間安排在幾點並不重要,重要的是定期的聚會,讓團隊有了「心跳」。.
  2. 會議時間不能超過15分鐘,會議只講工作重點,如果有需要深入的議題,相關人等就約在會後詳談。
  3. 這是大家都要積極參與的會議,過程中儘量站著溝通,一面拉近講者和聽者的距離,另一方面可以確保會議時間不會拖太久。
Daily Stand-up溝通效果十分明顯
就這樣,全世界第一個使用Scrum的團隊,開始每天花15分鐘站著開會,Daily Stand-up的實務,就這樣誕生了。至於Easel Corporation團隊在導入Daily Stand-up之後,效果怎麼樣呢?根據Jeff Sutherland的說法,當年專案開始找大家站個開會之後,原本規劃4周完成的工作量,竟然1個禮拜就全部搞定,連團隊成員自己都不敢相信,受到這個成功試行經驗的激勵,從此以後,Jeff Sutherland確認自己選對的方向(That’s when I knew I might be on to something),接著在另外4家公司試行Scrum開發方法,累積了豐富的實務經驗,才和一同創始Scrum的好友Ken Schwaber,參與2001年的敏捷大會,偕同另外15位業界先進,簽署了舉世聞名的「敏捷軟體開發宣言」(Agile Software Development Manifesto)[3]



[1] All Blacks隊一般翻譯為「全黑隊」,筆者認為,以「黑衫軍」稱呼較有氣勢。
[2] James O. Coplien, Borland Software Craftsmanship: A New Look at Process, Quality and Productivity, 原文請見https://sites.google.com/a/gertrudandcope.com/info/Publications/Patterns/Process/QPW
[3] Jeff Sutherland, The Origin of The Daily Stand-up, see https://www.linkedin.com/pulse/20140926150354-136414-the-origin-of-the-daily-stand-up

2 則留言:

  1. Thanks for posting this. Remember: The purpose of the Daily Standup is not to give status, but to re-plan the Sprint daily. The Team uses this re-planning to optimise its chance to meet the Sprint Goal.

    回覆刪除
    回覆
    1. Thanks for the feedback. Can't agree with you more.

      刪除