如何量化考核技術人的 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 數 行...