Scrum與OKR融合實踐經驗分享

cornerstone發表於2019-12-27

很多軟體公司的研發團隊都喜歡用Scrum管理研發流程,Scrum是一個誕生於20世紀90年代的敏捷方法論,CORNERSTONE內部也一直在使用這一方法。


相較於瀑布式開發的其他傳統方法,Scrum最大的優點是關注持續快速迭代以及對變化的適應性。如果使用瀑布式開發,在專案一開始就要確定專案結果,並且要對此達成一致,通常還要有詳細的計劃和專案規範。專案計劃是從這些規範中產生的,通過以專案在未來的完成情況為出發點,向後推進,以線形的方式規劃出時間預算各階段的聯絡性

 

瀑布式開發的成品是一份路線圖,能推算出一款軟體到推出之日為止,需要完成的所有開發工作,而不足之處就是如果在軟體開發過程中出現了變動,包括時間線或各階段連線時出現問題,甚至在很多時候連預算都需要完全重做,實際上這就破壞了計劃。


Scrum關注的是為了達到一個理想終點的持續快速迭代。取代詳細計劃的是精益管理或者是需求和回顧會議,這些會衡量每一次迭代成果。回顧會議的目的應該圍繞一個問題: “我們所做的工作有沒有讓我們離目標需求更近?”


https://i.iter01.com/images/cac45b223fe6d0b9c1d2596c04a5d061b20f385e48a4349eb6edfde49d550731.png


Scrum 的力量來自於它能夠管理工作,實現一個未知的、獨特的、或者前所未有的結果。這一方法能系統地、漸進式地解決在研發過程中產生的問題。瀑布式開發只有在其涉及的過程和工作都是可預測的、並且此前已經有人嘗試過的情況下,才能發揮最大功效。

 

這其中的差別猶如建一座橋和建一艘火箭搭載船的差別。火箭技術相對較新,建造一艘火箭搭載船要有很多增量步驟,重複多次才能獲得成功。美國太空探索技術公司(SpaceX)為了能讓火箭在船上著陸所做的工作就是一個很好的例子。

 

反之,人們對建橋的流程已經駕輕就熟且無數次成功地實踐過了。建橋不需要重複很多次,對時間和成本規劃的要求高,這就是瀑布式開發經常應用的領域。


OKR和Scrum的相似之處在於兩種方法都需要有一人專門管理實施情況,我們稱之為“Scrum Master”或“OKR負責人”,他們的責任就是保證團隊依照規則行事。


Scrum是一種高度規範的方法論,有明確的職責和流程。Scrum的益處包括透明性、專案可見性以及頻繁溝通。團隊集體決定他們在為期兩週的一個sprint內能夠完成什麼樣的工作,這也使Scrum變得很有民主性。


 

https://i.iter01.com/images/8e1baed3ae27839f7154b31e80dea859b975aa0fdcfc042b891382f2c401ab71.png


其實OKR也有一套規則,這些規則決定什麼是目標O,什麼是關鍵結果KR,以及如何把二者結合起來衡量目標的實現。

 

和Scrum一樣,OKR有時間表——季度和年度,這比為期兩週的sprint要長得多。設定OKR首先要做的是公司領導決定需要實現何種目標,接著,團隊設定自己的OKR,並確保團隊的OKR與公司的目標保持一致。


只要每個人都清楚兩種方法的範圍和引數,OKR和Scrum可以成功地結合在一起使用,效果也確實不錯。我們在確立公司OKR後,會進一步落實實現OKR的行動方案。Sprint和行動方案能在行動週期內有機結合,促進團隊OKR的達成。

 

為了能讓這兩種方法合拍,很重要的一點是在每個季度開始的時候,一位OKR負責人和一位Scrum負責人與他們的研發團隊坐在一起,決定需要在這個季度完成的最重要的事情(通常為3項)。

 

由於OKR週期更長,目標更巨集觀,而Sprint涉及的更具體的執行層面工作,因此需要首先考慮OKR。要讓OKR在這一階段就能有效開展, 相對於強調對結果實現的追求,更應關注對結果的衡量。

 

比如,如果你的目標是解決軟體的bug ,讓產品更完善,那麼,統計消滅了多少個軟體bug並不是一個有效的關鍵結果。每修復一個bug,bug的數量就少了一個,但是如果有更多的軟體bug被報出來,你就沒有讓軟體變得更完善,你僅僅是在數自己修復了多少個bug。


設定了OKR的目標和關鍵結果後,就可以開始規劃Sprint。在這個階段,最重要的是決定Sprint的週期。如果一個Sprint為期一個月,那一個單一的Sprint目標很可能會直接對應開發團隊3個OKR目標的其中一個。至於更常見的為期兩週的Sprint,那它的Sprint目標則可能會變成OKR目標的行動方案。


關鍵結果專案化之後,還需要將工作進一步細化,將專案細化為一個個具體的任務,並確保每個任務都有負責人及截止時間,這樣才能確保每項工作都落到實處還可以最大限度的避免工作延期。


https://i.iter01.com/images/876c64d8f8446575a9277c63527f2f662de28685b8bb7f4f0bb72804aa4908a0.png


(圖為CORNERSTONE視覺化任務看板)


我們更推薦第二種方法,因為這種方法在連線兩個框架的同時還保持了二者最初的目標,即Sprint管理生產和程式碼傳輸,而OKR設定目標,衡量評估工作結果。

 

但是,這也意味著每一個OKR都需要有自己的Sprint時間線。如果你有一個大型的開發團隊在一個產品的不同領域開展工作,比如前期工作、後期工作和系統管理,這一方法就能發揮很好的效果。使用這種方法的話,每一個領域引導1個OKR和1條Sprint時間線,而整個小組內部有3個OKRs。

 

對於規模較小,沒有能力運轉3條Sprint時間線的開發團隊,我們也推薦這種方法,但是隻需要專注一個單一的OKR即可。CORNERSTONE提供了包括任務/需求/測試管理、迭代規劃、缺陷追蹤、報表統計、團隊協作、WIKI、共享檔案和日曆等功能模組,20人以下團隊可免費使用,點選即可免費註冊CORNERSTONE


https://i.iter01.com/images/31ee0cca06d2cc092ad7bc911a8d208b324cd87c91b21823995a13211a099c1a.png

相關文章