自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

危險的KPI,“逼瘋”了程序員...

原創(chuàng) 精選
開發(fā) 開發(fā)工具
在本文中,我們將介紹如何為團隊選擇KPI,并列出其他工程團隊行之有效的9個軟件開發(fā)KPI。

?作者 | 云昭

不管在哪個領域,團隊想要高效運轉,取得成功,最重要的是,讓團隊有一個與上下文語境相適應的“方向”,而在軟件開發(fā)領域,KPI則充當著“北極星”,使團隊朝著正確的方向前進。

軟件開發(fā)KPI經(jīng)常與指標相混淆。指標是代表一個事實的數(shù)字,而KPI是對一個組織很重要的事情。注意:選擇KPI而不評估其給團隊帶來的影響,往往弊大于利。例如,“代碼行(LOC)”可以是一個度量,但絕不應該是軟件開發(fā)團隊的“KPI”。

軟件開發(fā)的KPI只有設置正確的度量,才能有助于確保打造一支高績效、高效的工程團隊,從某種程度上看,這才是一支團隊真正的競爭優(yōu)勢。“高績效”和“高效”的定義往往因業(yè)務性質(zhì)和許多其他因素而異。找出這些關鍵績效指標有助于區(qū)分重要因素和噪音。

在本文中,我們將介紹如何為團隊選擇KPI,并列出其他工程團隊行之有效的9個軟件開發(fā)KPI。

一、那些危險的KPI

“賽馬”、“LOC”、“編碼天數(shù)”……你應該不惜一切代價避免以下這些指標。它們往往對開發(fā)團隊弊大于利。

1.有效編碼天數(shù)

這個指標絕不代表個人所做工作的質(zhì)量。每個人的工作模式都可能不同——有些人可能需要三天時間來理解需求,并邏輯地規(guī)劃出具體需要做什么,然后在一天內(nèi)完成實際任務。假設每個團隊成員都應該每天編寫代碼,這是一個毫無根據(jù)的假設。團隊還有很多其他的工作,比如評審、設計、測試、發(fā)布、規(guī)劃、整理和幫助初級團隊成員等等。將編碼天數(shù)作為KPI進行跟蹤會使所有其他功能變得無用。而不是你想在一個高績效團隊中灌輸?shù)恼_文化。

2.代碼行

毫無疑問,這個古老的指標是跟蹤工程團隊生產(chǎn)力/產(chǎn)出的最差方法。跟蹤像LOC這樣的KPI表明,對于一項任務,如果一個團隊使用100行智能代碼,則比1000行錯誤代碼更糟糕。任何軟件開發(fā)團隊都不應將LOC作為KPI。

3.沖刺速度(Velocity)

另一個非常常用的度量是速度(Velocity)。速度可以很好地指示完成了多少計劃任務,也有助于未來的沖刺計劃。但從來不是團隊生產(chǎn)力或效率的指標。當使用“Velocity”用于推動開發(fā)人員和比較團隊時,它會成為一個危險的KPI。即使在同一個組織中,兩個團隊也可能有非常不同的評估標準,作為團隊生產(chǎn)力的KPI,這種機制往往埋下危險的種子。團隊成員往往會為了完成KPI而使得工作變形,最后的結果適得其反。

4.與其他程序員相比較

許多管理者經(jīng)常會犯一個錯誤:將軟件開發(fā)KPI與以“開發(fā)人員生產(chǎn)力”為名跟蹤個人的指標混為一談。前者應該代表團隊或項目的整體狀態(tài),而不是個人。最重要的是,將一個開發(fā)人員與另一個進行比較,對于團隊的生產(chǎn)力而言,有百害而無一利。記住:這些KPI是為了促使團隊成員提高工程效率做出貢獻,而不要感到受到威脅。

二、五條原則

1.始終考慮團隊效率,而不是開發(fā)人員效率

軟件開發(fā)本質(zhì)上是一個團隊概念,從長遠來看,在個人層面制定KPI去跟蹤是行不通的。

2.KPI不應是定量的

它應該更多地關注你工作的質(zhì)量層面。例如,跟蹤“提交次數(shù)”不能成為KPI,但“客戶滿意度”就能很好地反應出團隊產(chǎn)出的質(zhì)量,是一個不錯的候選指標。

3.首先確定重要流程,然后選擇KPI

KPI是對工程團隊至關重要的績效指標,所以首先要確定重要的流程,然后找出有助于實現(xiàn)這一目標的KPI。需要考慮的一些工程過程包括:規(guī)劃、執(zhí)行、代碼質(zhì)量、部署周期、測試、團隊健康和用戶滿意度。

4.永遠不要“復制粘貼”KPI

記住,組織的性質(zhì)、文化和發(fā)展方向,對于選擇正確的KPI非常重要。最好的方法是從別人做什么和不做什么中學習,但千萬不要因為這對他們有用就復制他們。

5.要團隊相信KPI的重要性

你在決定什么樣的軟件開發(fā)KPI對的團隊很重要時,還需要確定優(yōu)先級,并告訴團隊這對我們很重要。擁有錯誤的KPI比沒有KPI更糟糕。

三、行之有效的9個KPI

這些是我們看到的一些KPI,對于軟件開發(fā)團隊來說非常有效。(順序不表示重要性或有效性。)

1.團隊上手時間

新團隊成員開始為團隊交付做出有意義貢獻所需的時間。這有助于理解團隊的學習曲線有多大,也表明團隊在教育新成員有關團隊架構、技術堆棧和開發(fā)實踐方面的效率有多高。數(shù)字越小,表示學習曲線越小,新成員可以開始快速做出貢獻,從而影響團隊的整體生產(chǎn)力以及新成員的滿意度。

2.測試有效性

這可以通過幾個指標的組合來衡量,比如在非生產(chǎn)環(huán)境與生產(chǎn)環(huán)境中發(fā)現(xiàn)的bug的比率、在非產(chǎn)品環(huán)境中測試的用戶場景的百分比以及測試分支覆蓋率。此KPI的主要目的應該是確保團隊在投入使用之前測試更改的措施是有效的,并且生產(chǎn)缺陷的開銷不會降低團隊的速度。

3.有效開發(fā)

進行了多少代碼更改,并不重要,重要的是代碼的有效性。這里的有效性是是指,當團隊在添加新更改的同時不繼續(xù)添加代碼債務時,需要最少的返工。返工有時也反映出要求的不明確,或經(jīng)常需要進行特別改進。跟蹤代碼有效性的另一個很好的衡量標準是,開發(fā)的代碼對客戶產(chǎn)生影響的百分比是多少。將此作為KPI進行跟蹤有助于樹立有效工作比更多工作更重要的觀念。

4.客戶滿意度

開發(fā)團隊的所有工作最終都會為用戶提供新的功能或更好的體驗。衡量最終用戶滿意度是一個很好的衡量標準,可以表明團隊是否以正確的心態(tài)工作。

跟蹤這一點的幾種方法可以是測量功能的使用頻率,也可以來自新功能發(fā)布后的反饋調(diào)查。根據(jù)產(chǎn)品類型和組織提供的客戶支持、客戶報告錯誤的頻率、客戶請求的交付速度等指標,在衡量滿意度方面也起著重要作用。

管理者可以通過查看特性請求的周期時間(從整理到生產(chǎn)部署)來跟蹤特性請求的速度。

另一個非常有效的指標是NPS(Net Promoter Score,凈促銷得分),它是一個最終用戶向其他人推薦產(chǎn)品的可能性的得分。通??梢允褂每蛻粽{(diào)查和反饋表跟蹤這一點。

5.周期時長(Cycle Time)

這是一種廣泛使用的KPI,是交付速度的明確指標。周期時長主要幫助了解團隊的敏捷性,以及管理者應該在哪些領域花費精力。例如,如果在登臺環(huán)境中進行測試所需的時間超過了開發(fā)項目,則意味著需要考慮如何優(yōu)化或者自動化測試框架。

跟蹤周期時長的最佳方法是從開始(計劃)到實現(xiàn)(生產(chǎn)部署)。繪制開發(fā)過程全貌的周期時間示例如下:

圖片

從計劃部署到生產(chǎn)部署的真實工程周期

將周期時間作為KPI進行跟蹤有助于了解不同流程的效率。有時,不同階段的周期可能不能精確到分鐘,但比較視圖和不同流程之間的整體分割,可以幫助你優(yōu)化正確的區(qū)域。

6.生產(chǎn)穩(wěn)定性和可觀測性

沒有一個系統(tǒng)是完美的,軟件開發(fā)中的錯誤是不可避免的。我們需要接受這樣一個事實:即完善開發(fā)過程無濟于事。擁有適當?shù)目捎^測性機制,將影響降至最低,是解決這一問題的最佳方法。關注過程的速度和穩(wěn)定性是關鍵(也是DORA度量思想的核心)。幫助了解穩(wěn)定性的一些軟件開發(fā)KPI包括:

(1)CFR(更改失敗率):導致生產(chǎn)缺陷的部署百分比,有助于了解團隊修復缺陷的開銷發(fā)生的頻率。

(2)MTTD(平均檢測時間):在生產(chǎn)中識別缺陷所需的平均時間-這代表了監(jiān)控和可觀察性機制的有效性。

(3)MTTR(平均恢復時間):檢測到生產(chǎn)缺陷后修復生產(chǎn)缺陷所需的平均時間,表征著團隊找出并修復問題的速度,以最大限度地減少對最終用戶的影響。

7.團隊健康和滿意度

維珍創(chuàng)始人Richard Branson曾說:“照顧好你的員工,他們也會照顧好你?!焙笠咔闀r代,團隊成員都有待從倦怠中恢復,這比以往任何時候都更重要。確保團隊不會筋疲力盡,并對他們自身所做的工作感到滿意,這是擁有一個高效團隊的根本支柱。有助于跟蹤這一情況的一些指標包括:

(1)每個人都希望開發(fā)新功能和最新技術:如果你的團隊不斷致力于解決現(xiàn)有系統(tǒng)的bug和維護,勢必會引起團隊成員的不滿。

(2)開發(fā)經(jīng)驗-測試系統(tǒng)的:行更改是否太難了?為開發(fā)人員配備快速測試更改或運行小型POC的工具和靈活性對于擁有一個更快樂的團隊至關重要。

(3)花在會議上的時間與實際工作的時間:軟件開發(fā)團隊經(jīng)常面臨“會議疲勞”,他們在會議上花費的時間比工作效率高,這會導致倦怠和上下文切換,而這通常是可以避免的。了解團隊參加會議的次數(shù)或他們在會議上花費的時間百分比可以幫助了解團隊對會議的態(tài)度。

8.文件和知識共享

想要讓軟件開發(fā)團隊有效地工作,在整個團隊中廣泛地共享知識是必不可少的。它可以是代碼文檔、組件規(guī)范或設計文檔的形式。在很多情形中人們往往擔心團隊成員的外流。但問題在于,某個團隊成員要“活水”或跳槽到另一個團隊或組織,這都是時間長短的問題。零減員根本就是是不可能的。

所以,解決這一問題的最佳方法是減少團隊中的知識孤島,這樣即使團隊成員決定離開“演出”也可以繼續(xù)。涵蓋這一方面的工程KPI包括:

(1)記錄的代碼庫百分比。組件圖或API規(guī)范的更新頻率,是表示代碼/設計文檔實踐的幾個指標。

(2)新加入者理解系統(tǒng)所需的會議次數(shù)。大量的會議意味著沒有足夠的文檔作為新團隊成員的自助服務。

(3)只有一個團隊成員知道的代碼庫的百分比。(百分比越高=團隊中的知識庫越多)

9.任務規(guī)劃和可預測性

哪些任務需要完成,何時完成,以及誰來完成,這些都是計劃項目時需要回答的關鍵問題。并非所有團隊成員都必須參與決策,但是,團隊需要以可預見的方式為組織的發(fā)展而努力。以下是一些有效的KPI:

工作分解結構:項目管理完全基于你如何將任務分解為更易于管理的任務,這有助于明確需要做什么,并更好地估計可能需要的時間。

可預測性:這表示在一個時間范圍內(nèi)完成的承諾工作的百分比。有很多事情可能會影響可預測性,比如臨時請求或生產(chǎn)錯誤。

WIP計數(shù):可以同時處理幾件事情固然好,但同時處理太多事情是不可取的。通過查看開發(fā)團隊的這一點,可以了解規(guī)劃過程的健全性。

通過過程來選擇對您的團隊至關重要的正確軟件開發(fā)KPI可能會稍微耗時,但如果有正確的心態(tài),從長遠來看,這是非常有用的。正確的績效指標,將在動蕩時期為你的工程團隊指引方向,并幫助確保朝著正確的方向前進。?

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2015-07-28 17:58:22

程序員指南

2022-08-22 08:58:20

Java程序員虛擬機

2022-09-20 15:24:09

程序員項目

2017-03-07 15:25:51

2015-04-03 11:15:32

程序員如何寫簡歷寫簡歷技巧

2024-12-03 11:33:33

Cursor代碼模型

2021-02-07 10:20:58

KPI軟件開發(fā)生產(chǎn)力

2012-06-08 09:57:25

2013-08-20 09:33:59

程序員

2012-02-23 15:02:46

程序員

2011-06-08 10:24:58

程序員

2021-11-01 07:11:03

程序員職場公司

2011-05-13 14:34:02

程序員

2020-11-10 11:02:12

自定義Java代碼

2017-11-13 09:35:02

2019-10-24 13:56:24

2019-11-18 10:16:37

工程師開發(fā)網(wǎng)絡

2019-03-25 07:14:57

程序員工程師職業(yè)

2019-11-18 10:05:43

程序員技能開發(fā)者

2024-08-05 09:16:54

點贊
收藏

51CTO技術棧公眾號