透過 OKR 進行專案過程管理

有贊技術發表於2019-02-25

專案管理是專案的管理者在有限的資源約束下,運用系統的觀點、方法和理論,對專案涉及的全部工作進行有效的管理。即從專案的投資決策開始到專案結束的全過程進行計劃、組織、指揮、協調、控制和評價, 以實現專案的目標。[1]

在有贊,進行專案前會經過一系列的規劃流程,確認資源後即啟動專案進行。本文接下來會討論的是如何透過 OKR 的方式來管理專案研發過程。

一、簡介 OKR

OKR(Objectives and Key Results) 全稱為目標和關鍵成果[2]。是由英特爾公司制定,由 John Doerr 引入谷歌後,廣為大眾所知道。在 OKR 的系統中,首先要制定一個「目標」,這目標要非常明確可衡量的,且必須要能符合 SMART (Specific、Measurable、Achievable、Relevant、Time-bounded) 原則,這樣才能用來衡量是否已經實現目標。例如:不能說「想讓網站成長」,而是要說「讓網站的營收較去年同期成長 10%」或者說「讓網站的 APRU 每月成長 15%] ,這就是給定一個明確、可量化的目標給大家完成,OKR 的目標不能是模糊、不明確的。

OKR 流程

  1. 明確事項的目標
  2. 對關鍵性結果進行可量化的定義,並且明確標定「達成目標」與「未達成目標」的措施
  3. 共同努力,達成目標
  4. 根據專案進展進行評估

二、專案管理與 OKR

簡單介紹過 OKR 後,再回到專案管理上來看,大部分的專案會有幾個關鍵內容:

  1. 里程碑、完成時間
  2. 工作/任務量
  3. 資源

下圖為我司一般通用的專案研發流程

透過 OKR 進行專案過程管理

2.1 結合 OKR 與專案過程進行目標拆解

將 OKR 運用在專案管理的過程裡,我們會需要訂定長期目標、關鍵指標,這非常簡單,因為專案本身就是一個具有範圍定義的,所以:(你也可以結合一些敏捷開發方法論來輔助,像是 Scrum[3]、Kanban[4])

  • 目標 (O) - 專案上線,當然,你的專案也可以定義與業務指標相關,這樣會讓專案更有價值,例如:讓 xxx 位使用者能使用等
  • 關鍵指標 (KR) - 里程碑,當達到一個里程碑時,其實就是完成了一個專案裡的關鍵指標
  • 行動 (AC) - 投入哪些資源、需要哪些團隊共同合作的策略、方式等

當長期的目標已經制定了,但專案過程中的每個環節仍舊有許多未知、不明確的問題等待挖掘,且不同的專案內容,問題也各不相同。以 Scrum 方法論舉例,在 Scrum 的過程中,提到了一些會議環節,像是 Planning Meeting、Daily Meeting 等,在大部分的會議中,我們會強調同步「昨天做了什麼」、「今天要做什麼」、「目前遇到了什麼問題」。我們可以簡單的將 OKR 結合進這些會議裡,讓會議的價值再提升一些。這時候我們就能切出一些更細緻的目標、關鍵指標與行動方式,此時產出的就會是中期目標、短期目標。

透過 OKR 進行專案過程管理

透過一連串的自上而下的拆分、定義目標,會讓專案的各個里程碑更明確、更細緻。另外,跨團隊的協作上,也能根據目標凝聚出當前應該要有的目標意識,某種程度上來說,可以避免不同團隊在過程中雖然是奔著大目標在執行,但是在中間環節彼此目標不同所導致的資源等待與浪費。

透過 OKR 進行專案過程管理

隨著目標的細分、關鍵指標的不同,粒度愈細的目標對於專案管理者來說愈容易管理,可以想成是在一個大的專案裡,有許多不同時間點的小專案。在筆者手裡進行的專案中,一般常用來訂目標與檢驗結果的時間,提供給各位讀者參考下:

  • 每月第一天,制訂當月目標,對於疑問制定行動策略,月底檢驗關鍵指標
  • 每週第一天,制訂當週目標,對於疑問制定行動策略,每週最後一天檢驗關鍵指標
  • 每日上午 10 點制訂當日目標,對於疑問制定行動策略,晚上 6 點檢驗關鍵指標

看似有了更多的會議,但這些會議通常會在 20 分鐘內結束,且價值極高,因為目標就在眼前:

  • 完成的目標明確且可被檢驗
  • 對於產生出來的問題,所提出的行動策略能大大的提高響應速度
  • 不同團隊間的協作聚焦提升
  • 不同的階段,目標是自上而下被拆分,能在下層的目標 (日目標、半日目標) 上進行檢驗,進而調整上層目標 (周目標、月目標等),降低因市場變化等因素,導致最後完成的內容與當初的規劃的差異過大

2.2 人員的要求

在 OKR 的理論中,會要求每個人都能找到自己的目標,這時候就會需要有人來檢視這個目標是否合理、是否太大或太小、或是是否跨職能/業務上的目標有一致,在一個專案裡我們通常會有幾類負責人可以對目標進行把控。

  • 業務負責人
  • 產品負責人
  • 技術負責人
  • 測試負責人
  • 運維負責人

在不同的目標制定上我們會需要這些負責人能夠識別出來各成員、不同職能團隊的目標是否在同一目標上。透過這個方式能間接的提升

  1. 各負責人對於專案與業務目標的對齊、節奏,可以安排更精細節點做出適當的決策,像是是否能在某些功能完成時先上線給使用者使用。
  2. 要求各負責人對於全域性觀的把控更為強烈,在專案的過程中,其實也是培養未來的新團隊小組長/負責人的一種路徑。
  3. 原本可能溝通較少、節奏不一致的情況能夠降低,風險也能提前被挖掘出來,並在前期就能先進行調研、修正。

2.3 目標檢驗的方式

在每個 O (目標) 訂出時,也會有與之相對應的 KR (關鍵指標) 和相對應完成 KR 的 AC (關鍵動作),在實際的操作中這些 KR 能提供明確的目標定義,協助專案成員、負責人在進行檢視時,有明確的驗證標準。像是

  • 日目標:完成客戶管理模組,KR1:客戶管理模組能完全跑通,KR2:單測覆蓋率 70%
  • 周目標:完成 CRM 系統,KR1:完成各模組整合且無嚴重系統流程阻塞,KR2:整合測試覆蓋率 70%

這時我們便可在目標檢驗時,進行演示、操作,看看相對應的指標是否達成,未達成的部分可以透過訂定新的 AC 來加速、加強各相關人的行動方式,也可以轉換 AC 為下一個目標的行動點或關鍵指標。透過這樣一連串的目標管理過程,使得專案的目標明確且可控,各個與目標的相關人也能知道當前的目標與進度,能適時的提出改進點或行動點,進而降低專案偏離預期的可能。

三、後記

本文雖然只是簡單的介紹了下 OKR 與專案管理過程的結合方式,但是其中有許多敏捷方法隱含在其中,像是 Scrum、Kanban、XP 等,也有些傳統的專案管理隱含在其中,像是 WBS、里程碑等。不同的專案型別、複雜度,我們可以選擇性的加減某些方法、工具的使用方式與節奏。進而找出計劃驅動與價值驅動的平衡點,達到保證一有一個「好過程」與「好結果」的雙贏目的。

不同的企業、團隊可以有更多豐富、深入的玩法。但其最終目的皆是以達成目標、減少資源浪費、可控為出發點。對於目標制定的方式也可以結合「吃掉那隻青蛙[5]」的方式來達到更好的效果。

最後附上一些常見的管理方式比較表

透過 OKR 進行專案過程管理


[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…

相關文章