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

2021-08-25 06:02:05 字數 2859 閱讀 2768

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

原創: 張建飛 阿里技術今天

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

為什麼需要技術kpi?

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

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

將就的代價

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

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

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

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

技術管理者者(tl)的失職

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

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

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

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

技術kpi的量化

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

技術kpi

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

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

應用質量:

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

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

設計重構:

我在客戶通專案中,對crm銷售域進行了領域建模和設計,並且抽象合理。

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

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

技術影響力:

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

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

code review:

我在review某某**的時候發現,存在設計不合理的現象,此處使用責任鏈可以很優雅的解決問題,並具備一定的擴充套件性。

創新提效:

我發現本地測試啟動pandoraboot比較浪費時間,所以寫了乙個testcontainer大大提公升了自測效率。

我發現有一些boilerplate**不需要寫,所以對樂觀鎖、分頁進行了annotation支援,簡化了**。

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

**質量:

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

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

kpi答疑

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

:技術kpi的提出,會不會導致技術同學只關注技術不做業務專案了?  a

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

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

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

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

技術KPI的量化

提公升技術氛圍,打造工程師文化不能僅停留在口頭上,可搭配一定的強制手段,比如和技術人員的利益繫結。這種繫結就需要我們能對技術貢獻進行乙個相對公平的分解和量化。技術kpi 基於此,我將技術人員的kpi分解為業務貢獻 技術貢獻和團隊貢獻三個大的部分,其詳細內容如下。業務貢獻 包括需求把控,業務專案和業務...

KPI之痛 有哪些奇葩的技術人員考核方式?

雖然程式設計師都說自己是搬磚的,但很顯然,搬磚是很好考核的,一天搬多少塊磚是一目了然可以量化的,一天搬1000塊磚肯定比一天搬800塊磚的要厲害 而程式設計師卻很難以這樣的方式來考核,一天1000行 比一天800行 要厲害?很有可能會反過來,800行 會更厲害。做過程式設計師的都知道,bug 數 行...

KPI之痛 有哪些奇葩的技術人員考核方式?

雖然程式設計師都說自己是搬磚的,但很顯然,搬磚是很好考核的,一天搬多少塊磚是一目了然可以量化的,一天搬1000塊磚肯定比一天搬800塊磚的要厲害 而程式設計師卻很難以這樣的方式來考核,一天1000行 比一天800行 要厲害?很有可能會反過來,800行 會更厲害。做過程式設計師的都知道,bug 數 行...