透过 OKR 进行项目过程管理
項目管理是項目的管理者在有限的資源約束下,運用系統的觀點、方法和理論,對項目涉及的全部工作進行有效的管理。即從項目的投資決策開始到項目結束的全過程進行計劃、組織、指揮、協調、控制和評價, 以實現項目的目標。[1]
在有贊,進行項目前會經過一系列的規劃流程,確認資源后即啟動項目進行。本文接下來會討論的是如何透過 OKR 的方式來管理項目研發過程。
一、簡介 OKR
OKR(Objectives and Key Results) 全稱為目標和關鍵成果[2]。是由英特爾公司制定,由 John Doerr 引入谷歌后,廣為大眾所知道。在 OKR 的系統中,首先要制定一個「目標」,這目標要非常明確可衡量的,且必須要能符合 SMART (Specific、Measurable、Achievable、Relevant、Time-bounded) 原則,這樣才能用來衡量是否已經實現目標。例如:不能說「想讓網站成長」,而是要說「讓網站的營收較去年同期成長 10%」或者說「讓網站的 APRU 每月成長 15%] ,這就是給定一個明確、可量化的目標給大家完成,OKR 的目標不能是模糊、不明確的。
OKR 流程
二、項目管理與 OKR
簡單介紹過 OKR 后,再回到項目管理上來看,大部分的項目會有幾個關鍵內容:
下圖為我司一般通用的項目研發流程
2.1 結合 OKR 與項目過程進行目標拆解
將 OKR 運用在項目管理的過程里,我們會需要訂定長期目標、關鍵指標,這非常簡單,因為項目本身就是一個具有范圍定義的,所以:(你也可以結合一些敏捷開發方法論來輔助,像是 Scrum[3]、Kanban[4])
- 目標 (O) - 項目上線,當然,你的項目也可以定義與業務指標相關,這樣會讓項目更有價值,例如:讓 xxx 位使用者能使用等
- 關鍵指標 (KR) - 里程碑,當達到一個里程碑時,其實就是完成了一個項目里的關鍵指標
- 行動 (AC) - 投入哪些資源、需要哪些團隊共同合作的策略、方式等
當長期的目標已經制定了,但項目過程中的每個環節仍舊有許多未知、不明確的問題等待挖掘,且不同的項目內容,問題也各不相同。以 Scrum 方法論舉例,在 Scrum 的過程中,提到了一些會議環節,像是 Planning Meeting、Daily Meeting 等,在大部分的會議中,我們會強調同步「昨天做了什么」、「今天要做什么」、「目前遇到了什么問題」。我們可以簡單的將 OKR 結合進這些會議里,讓會議的價值再提升一些。這時候我們就能切出一些更細致的目標、關鍵指標與行動方式,此時產出的就會是中期目標、短期目標。
透過一連串的自上而下的拆分、定義目標,會讓項目的各個里程碑更明確、更細致。另外,跨團隊的協作上,也能根據目標凝聚出當前應該要有的目標意識,某種程度上來說,可以避免不同團隊在過程中雖然是奔著大目標在執行,但是在中間環節彼此目標不同所導致的資源等待與浪費。
隨著目標的細分、關鍵指標的不同,粒度愈細的目標對于項目管理者來說愈容易管理,可以想成是在一個大的項目里,有許多不同時間點的小項目。在筆者手里進行的項目中,一般常用來訂目標與檢驗結果的時間,提供給各位讀者參考下:
- 每月第一天,制訂當月目標,對于疑問制定行動策略,月底檢驗關鍵指標
- 每周第一天,制訂當周目標,對于疑問制定行動策略,每周最后一天檢驗關鍵指標
- 每日上午 10 點制訂當日目標,對于疑問制定行動策略,晚上 6 點檢驗關鍵指標
看似有了更多的會議,但這些會議通常會在 20 分鐘內結束,且價值極高,因為目標就在眼前:
- 完成的目標明確且可被檢驗
- 對于產生出來的問題,所提出的行動策略能大大的提高響應速度
- 不同團隊間的協作聚焦提升
- 不同的階段,目標是自上而下被拆分,能在下層的目標 (日目標、半日目標) 上進行檢驗,進而調整上層目標 (周目標、月目標等),降低因市場變化等因素,導致最后完成的內容與當初的規劃的差異過大
2.2 人員的要求
在 OKR 的理論中,會要求每個人都能找到自己的目標,這時候就會需要有人來檢視這個目標是否合理、是否太大或太小、或是是否跨職能/業務上的目標有一致,在一個項目里我們通常會有幾類負責人可以對目標進行把控。
- 業務負責人
- 產品負責人
- 技術負責人
- 測試負責人
- 運維負責人
在不同的目標制定上我們會需要這些負責人能夠識別出來各成員、不同職能團隊的目標是否在同一目標上。透過這個方式能間接的提升
2.3 目標檢驗的方式
在每個 O (目標) 訂出時,也會有與之相對應的 KR (關鍵指標) 和相對應完成 KR 的 AC (關鍵動作),在實際的操作中這些 KR 能提供明確的目標定義,協助項目成員、負責人在進行檢視時,有明確的驗證標準。像是
- 日目標:完成客戶管理模塊,KR1:客戶管理模塊能完全跑通,KR2:單測覆蓋率 70%
- 周目標:完成 CRM 系統,KR1:完成各模塊整合且無嚴重系統流程阻塞,KR2:集成測試覆蓋率 70%
這時我們便可在目標檢驗時,進行演示、操作,看看相對應的指標是否達成,未達成的部分可以透過訂定新的 AC 來加速、加強各相關人的行動方式,也可以轉換 AC 為下一個目標的行動點或關鍵指標。透過這樣一連串的目標管理過程,使得項目的目標明確且可控,各個與目標的相關人也能知道當前的目標與進度,能適時的提出改進點或行動點,進而降低項目偏離預期的可能。
三、后記
本文雖然只是簡單的介紹了下 OKR 與項目管理過程的結合方式,但是其中有許多敏捷方法隱含在其中,像是 Scrum、Kanban、XP 等,也有些傳統的項目管理隱含在其中,像是 WBS、里程碑等。不同的項目類型、復雜度,我們可以選擇性的加減某些方法、工具的使用方式與節奏。進而找出計劃驅動與價值驅動的平衡點,達到保證一有一個「好過程」與「好結果」的雙贏目的。
不同的企業、團隊可以有更多豐富、深入的玩法。但其最終目的皆是以達成目標、減少資源浪費、可控為出發點。對于目標制定的方式也可以結合「吃掉那只青蛙[5]」的方式來達到更好的效果。
最后附上一些常見的管理方式比較表
[1]項目管理 - wiki.mbalib.com/wiki/項目管理
[2]OKR - wiki.mbalib.com/zh-cn/OKR
[3]Scrum - wiki.mbalib.com/wiki/Scrum
[4]Kanban - wiki.mbalib.com/wiki/Kanban
[5]吃掉那只青蛙 - book.douban.com/subject/337…
總結
以上是生活随笔為你收集整理的透过 OKR 进行项目过程管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开发了个 Flipper 调试工具的 F
- 下一篇: 初探 Vue 生命周期和钩子函数