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

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

 

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

 

一、爲什麼需要技術KPI?

 

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

 

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

 

1、將就的代價

 

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

 

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

 

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

 

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

 

2、技術管理者(TL)的失職

 

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

 

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

 

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

 

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

 

 

二、技術KPI的量化

 

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

 

1、技術KPI

 

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

 

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

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

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

 

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

 

應用質量:

 

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

  • 你做了哪些提升應用質量分的工作。

 

設計重構:

 

  • 我在客戶通項目中,對CRM銷售域進行了領域建模和設計,並且抽象合理。

  • 我發現Infrastructure中Package分類不合理,進行了重新設計並重構完成。

  • 我發現現在系統中錯誤碼比較混亂,我梳理制定了新的錯誤碼規範,並完成了代碼重構。

 

技術影響力:

 

  • 在團隊內分享10篇乾貨,點贊數1000。

  • 團隊分享策略模式,得到同學好評 。

  • 我接受邀請,在行業會議上分享了SOFA架構。

 

Code Review:

 

  • 我在Review某某代碼的時候發現,可能存在線程不安全的隱患。

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

 

創新提效:

 

  • 我發現本地測試啓動PandoraBoot比較浪費時間,所以寫了一個TestContainer大大提升了自測效率。

  • 我發現有一些Boilerplate代碼不需要寫,所以對樂觀鎖、分頁進行了Annotation支持,簡化了代碼。

  • 在某個項目或者技術點上面,我產出了一篇專利:基於領域模型的業務配置化。

 

代碼質量:

 

  • 提測後的Bug數,線上故障數(系統可以提取,不用自己填寫)。 

  • 我完善了某某模塊的單元測試,並多次在自動化迴歸中發現問題。

 

2、KPI答疑

 

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

 

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

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

 

Q2: 您說的設計重構怎麼量化?

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

 

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

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

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章