極客頭條精選:拿什么來衡量程序員的生產力?

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

如果你用谷歌搜索“mearsuring software developer productivity”,那么你會發現出來的全都是一些廢話,一點用處都沒有的廢話。

Nick Hodges,《Measuring Developer Productivity》


所以現在你知道了吧,原來我們并沒有辦法來衡量程序員的工作效率。


老實說,我們現在還沒有明確的方法可以衡量程序員以及整個團隊的生產力。我們可以確定誰可以依賴,誰比較努力,但卻無法證明這些猜想,也沒有量化的方法。




我們的代碼寫得多,所以我們的生產力更高


既然開發人員的工作就是寫代碼。那么,何不通過衡量代碼的多少來衡量其生產力呢——看看他們寫了多少行代碼?


但是,不同編程語言之間的代碼行數是沒辦法比較的,即使使用的是相同的編程語言,在不同的框架下的程序員之間的生產效率,光看代碼寫了多少也是無從裁定的。


更根本的問題是,通過衡量所寫的代碼行數來斷定生產力其實沒有意義的。很多軟件開發中的最重要部分還包含思考和學習——不僅僅是寫代碼。


最優秀的程序員會將大量的時間用于了解和解決疑難雜癥,或幫助他人解決難題,而不是寫代碼。他們會想方設法簡化代碼,避免重復。他們會通過實驗、建立原型等方式迭代代碼,替換原先舊的代碼,以獲得最佳的解決方案。


所以,光從代碼數量上看,還真看不出程序員的生產力水平來。


我們錢賺得多,所以我們的生產力更高


我們也可以通過財務上面的盈利能力來衡量每個團隊的產出,或者其他的業務措施,如有多少用戶正在使用系統——如果開發人員能為企業賺更多的錢(或節省更多的錢),那么是不是他們的生產力更高呢?


利用財政措施似乎在執行層面上是一個不錯的主意,但是卻有太多的商業因素是不受開發團隊控制的。有些開發團隊很垃圾,但他們的產品就是成功了;而有些團隊兢兢業業卻還是只收獲了失敗的果實。注重節約成本的理念很有可能會導致許多管理者裁人,企圖“少花錢多辦事”,而不是投資于真正的生產力提高。


看來此路不通,我們需要尋找其他更有有意義的生產力指標。


我們的開發速度快,所以我們的生產力更高


衡量開發速度——敏捷速度——看起來更像是另一種從團隊層面來衡量生產力的方式。畢竟,軟件開發的重點是提供可工作的軟件。如果你的團隊能更快地拿出產品,自然是更好。


但是,速度(一個團隊在一段時間內能完成的工作)與其說是衡量生產力的,還不如更精確點說,是用來衡量預見性的:用來衡量一個團隊能承受多少的工作。


但是,我們又不得不考慮人員加入或離開等對速度的影響因素。而且,有一點你得清楚,速度只能只能用于衡量已知團隊——由于很多因素的不同,速度并不能用于不同團隊之間的比較。


保持忙碌的狀態就對了


一個我認識的經理曾這樣說道,與其試圖衡量生產力,還不如


“保持忙碌的狀態就對了。只要我們不斷地挖掘問題,就一定可以找到瓶頸,解決掉這些難題。”


在這種情況下,我們會衡量——并優化——循環時間。


團隊可以使用看板去監控——并限制——正在進行的工作,并確定瓶頸,使用價值流圖可以了解需要優化的步驟、排序、延誤和信息流。總之一切為了盡快地交貨和發布。


但是我們還是不能將交貨速度等同于生產力。這是因為只優化交付本身的循環時間/速度很有可能會導致更大的長期性問題,要知道這種方式實質上是在鼓勵人們只顧眼前,從而偷工減料,背負技術債務。


我們的軟件更好,所以我們的生產力更高


眾所周知,軟件中出現bug和錯誤會導致成本顯著提高:不僅開發返工成本高了,維護和支持的成本也高了。而最最重要的是,差的軟件可能會造成客戶的流失,甚至是生意的失敗。


要想衡量你正在寫的軟件是好是壞也很容易:缺陷密度、缺陷逃逸率,以及利用SonarQube之類的工具對代碼庫進行靜態分析。


我們知道如何編寫好的軟件。但是軟件質量是否真的足以定義生產力?


開發人員——衡量和改進IT性能


開發團隊試著綜合上述一些因素來衡量生產力:交付速度和質量。


但開發人員并不限于創建和提供代碼——相反還需要著眼于為端到端提供IT服務的性能指標:交付吞吐量和服務質量。


所以這不只是軟件更快、更好的問題,而是需要提供更好更快的服務,在速度和功能之間選擇平衡,衡量并提高生產效率和質量。


還有一點,最近有研究表明,企業要想成功:不僅生產力要提高,更重要的是要提高市場份額和盈利能力。


衡量成效,而不是產量


不要再試圖去衡量單個開發人員的生產力了。


這純粹是在浪費時間。


每個人心中都有一桿秤。 對于表現優秀的——鼓勵他們繼續朝著正確的方向前進,再接再厲。對于那些努力上進的——給予他們幫助。對于那些不適合的——可以請出去了。


衡量和提高團隊或組織級別的生產力將會讓你收獲更加有意義的回報。


所以當涉及到生產力時:


1.衡量關鍵因素——能對團隊和組織起重要作用的因素。

2.設置的指標應該是起積極作用的——可以推動學習和改進,而不是造成團隊或個人之間關于產量的惡性競爭。



CSDN 2015-08-23 08:45:10

[新一篇] 互聯網圈辦公室戀情那些事

[舊一篇] 軟件長壽法則,記住這7條
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表