08.24 如何量化考核技術人的 KPI?

如何量化考核技術人的 KPI?

對技術人來說,技術是成長的“核心”。然而,在實際工作協作中,技術的重要性常常被業務所掩蓋,造成先業務後技術的現象。

針對這個痛點,阿里高級技術專家張建飛提出了自己的解決思路,希望能與大家一起探討、交流。

為什麼需要技術 KPI?

在業務技術團隊,有一個不好的趨勢就是團隊越來越業務,越來越沒有技術味道。每個人都在談業務,技術大會上在談業務,週會上在聊業務,週報裡寫的是業務項目......

唯獨少被談及的是技術本身。此處並不是說業務不重要,而是說理解業務和把控業務需求是技術人員的 base,而不是全部。

將就的代價

這種技術味道的缺失對技術團隊來說是非常可惜的,也不利於技術人員的成長和發展。因為很難想象一個沒有技術追求的團隊能開發出一個健壯的、可維護性好、可擴展性好的系統。相反,這種業務代碼的堆砌,從短期看也許是“較快”實現了業務需求,但是從長遠來看,這種爛系統的增加會極大的阻礙業務的發展,形成一個個的黑洞應用,而工程師被裹挾在業務需求和爛系統之間,疲於應對,心力交瘁。

這種將就將導致系統腐化,技術債越壘越高,像腫瘤一樣消耗你所有的能量。

我不是藥神,只能嘗試開出一方——那就是在不影響業務的情況下(特別是相對穩定的業務,請拒絕業務方的時間倒排),Tech Story 應該和 User Story 有同等的重要性,要把重構優化提到和業務需求相等的優先級去處理。我們不僅要對業務需求負責,我們更要對應用的質量,系統的可維護性負責。

因為我們技術人員是應用的父母(有些是親生父母,有些是養父母),你不照顧它們,不治理它們,它們就會生病,你忍心看到這樣的局面嗎?

如何量化考核技術人的 KPI?

技術管理者(TL)的失職

造成這種局面,我們的技術管理者,我們的 TL 要負有主要責任。如果一個 TL 從來不關注系統架構和設計,從來不寫 code,對技術沒有熱情也不學習,甚至其本身技術就很爛,那麼在這個 TL 領導下的技術團隊,又怎麼會有技術味道,團隊成員又怎麼能進步和成長?

現在很多的 TL 每天都混跡在各種會議上,很忙,做著各種溝通協調的事情,可是我們真的需要這麼多的會議、這麼多的溝通嗎?

如果溝通的結果只是做業務和 PD 對團隊的傳話筒,沒有業務創新,沒有用技術和數據系統化的解決業務問題,沒有在技術方向和架構上給團隊指引,沒能切實的幫助系統優化、團隊提效,請問這樣的溝通給業務帶來了什麼價值,給團隊帶來了什麼價值?還是沉下心來,多看看書,哪怕非技術的書也好。多寫寫代碼,哪怕跟業務無關的代碼也好。

所以,我們要回歸技術本身。我們不需要這麼多“高高在上”、“指點江山”的技術 Manager,而是需要能真正深入到系統裡面,深入到代碼細節,給團隊帶來實實在在改變的技術 Leader。

如何量化考核技術人的 KPI?

技術 KPI 的量化

提升技術氛圍,打造工程師文化不能僅停留在口頭上,可搭配一定的強制手段,比如和技術人員的利益綁定。這種綁定就需要我們能對技術貢獻進行一個相對公平的分解和量化。

技術 KPI

基於此,我將技術人員的 KPI 分解為業務貢獻、技術貢獻和團隊貢獻三個大的部分,其詳細內容如下。

業務貢獻:包括需求把控,業務項目和業務創新。

技術貢獻:包括設計重構、技術影響力、Code Review、創新提效和代碼質量。

團隊貢獻:包括招聘、新人培養和團隊氛圍。

那麼技術貢獻中的這幾個維度要怎麼理解呢,解釋的話我就不多說了,用我們工作中的一些案例來描述一下吧。

應用質量:

  • 你負責或者共同負責的應用質量分(可以從代碼重複率,圈複雜度,分層合理性等維度考察)。
  • 你做了哪些提升應用質量分的工作。

設計重構:

  • 我在客戶通項目中,對 CRM 銷售域進行了領域建模和設計,並且抽象合理。
  • 我發現 Infrastructure 中 package 分類不合理,進行了重新設計並重構完成。
  • 我發現現在系統中錯誤碼比較混亂,我梳理制定了新的錯誤碼規範,並完成了代碼重構。

技術影響力:

  • 在團隊內分享 10 篇乾貨,點贊數 1000。
  • 團隊分享策略模式,得到同學好評 。
  • 我接受邀請,在行業會議上分享了 SOFA 架構。

Code Review:

  • 我在 review 某某代碼的時候發現,可能存在線程不安全的隱患。
  • 我在 review 某某代碼的時候發現,存在設計不合理的現象,此處使用責任鏈可以很優雅的解決問題,並具備一定的擴展性。

創新提效:

  • 我發現本地測試啟動 PandoraBoot 比較浪費時間,所以寫了一個 TestContainer 大大提升了自測效率。
  • 我發現有一些 boilerplate 代碼不需要寫,所以對樂觀鎖、分頁進行了 annotation 支持,簡化了代碼。
  • 在某個項目或者技術點上面,我產出了一篇專利:基於領域模型的業務配置化。

代碼質量:

  • 提測後的 Bug 數,線上故障數(系統可以提取,不用自己填寫)
  • 我完善了某某模塊的單元測試,並多次在自動化迴歸中發現問題。

KPI 答疑

對於上面的 KPI 大部分的技術同學是表示認可的,當然質疑的聲音也很多,我這裡挑一些典型的回答一下。

技術 KPI 的提出,會不會導致技術同學只關注技術不做業務項目了?

關於績效,肯定是綜合看業務貢獻,技術貢獻和團隊貢獻。但是作為一個重要參考和風向標,技術 KPI 是有積極意義的。

你這個設計重構怎麼量化?

這個很難用系統標準化,更多的還是要依賴 TL 的專業能力進行評分,但即使是這樣,也比以前什麼都沒有完全黑盒要強。至少在傳達一個信息,我們鼓勵好的設計,鼓勵不斷地重構優化。

我們現在的業務需求已經在堆積,一線同學根本沒有時間去做重構優化。

這個問題開篇其實已經說過了,你是要不斷地裹挾在業務需求和爛代碼裡面呢,還是花時間 improve,然後更快地支持業務。這個權衡應該不難做,關鍵是要看決心和能力。對於很多業務,我沒有看到推遲幾天上線就會影響業務格局的業務場景,所以作為技術團隊,我們就應該在 User Story 之外,加上我們的 Technical Story,把完成業務需求和系統重構都當成我們的核心任務。

關於技術童鞋的量化考核,你有哪些好的建議或想法,也可以在留言區交流,一起探討。

作者 / 張建飛


分享到:


相關文章: