提高開發者生產力的SPACE框架
譯文譯者 | 李睿
審校 | 重樓
提高開發人員的生產力是一個復雜的主題,并沒有什么靈丹妙藥。然而,經濟壓力、市場競爭加劇以及交付周期縮短等因素,迫使許多組織需要提高效率并開辟新的運營模式。在日益混合的工作場所中測量、維護并最終提高生產力是許多組織目前正在進行討論的重要主題。
越來越多的組織開始研究如何更好地利用他們所擁有的資源,如何消除流程中的瓶頸,以及如何提高開發人員的生產力。經驗證據和對生產力驅動因素的理解正在形成,與此同時,也揭穿了一些神話和誤解。
SPACE框架是備受關注的方法之一。以下介紹它的背景,并解釋了一些關鍵概念。此外,還提供了一些關于SPACE在組織中應用的示例。
SPACE框架簡介
“開發人員生產力的SPACE”是由GitHub、維多利亞大學和微軟公司研究人員合作編寫的一個框架,由于其實用性和多方面的方法而備受關注。
研究人員揭穿了有關開發人員生產力一些常見的神話和誤解,然后介紹了提高開發人員生產力的驅動因素。他們將這些驅動因素結構呈現出一個整體的多維模型。此外,他們還展示了一些生產力指標和計數器指標的例子。
為方便起見,本文對SPACE框架進行了總結,并就如何利用日益流行的工程智能啟動SPACE跟蹤和報告提供了一些幫助。
開發者生產力:神話和誤解
SPACE框架的開發者在早期澄清了一些誤解和神話:
- 一個明顯的誤解是(開發人員)生產力不是一個一維的指標。沒有一個單一的數字可以定義生產力,任何過于簡單的方法都無法提供深刻的見解。不僅如此,不同的組織和不同的團隊可能需要關注不同的KPI集。
- 軟件開發是一項團隊運動。因此,單一指標的相關性較低。事實上,這可能會適得其反。重要的是整個團隊或組織的表現。此外,絕對數字并不重要,但趨勢和計數器信號的可觀察性突出了需要解決的問題。
- 結果比產出更重要。雖然很難量化,但交付與客戶相關的特性的能力顯然比大量編寫代碼更重要。因此,單純的活動指標不足以做出良好的生產力估計。
盡管如此,值得強調的是衡量的價值:
- 一套良好的衡量標準可以讓人們了解組織的表現、發展趨勢以及可以改進的領域。此外,關鍵指標不僅對管理有價值,而且如果使用得當,同時也會給開發人員帶來發言權。
開發人員喜歡有證據來證明他們給團隊和組織帶來的價值。他們通常喜歡展示自己的價值,并喜歡改進流程和提升自己。而掌握這些證據有助于提高自我價值,進而提高組織的生產力。
SPACE框架解釋
SPACE代表滿意度(Satisfaction)、績效(Performance)、活動(Activity)、溝通(Communication)和效率(Efficiency),體現了創作者提出的多維度方法。
SPACE的5個維度分別是:
(1)滿意度和幸福感:這個維度衡量開發團隊和成員對他們的工具、流程和工作環境的滿意程度。例如,是否有合適的工具和資源來有效地執行任務?團隊是否可以避免超負荷工作,或者團隊成員是否會遭受潛在的倦怠?管理結構和環境是否支持增長和生產力?
(2)績效:這與團隊創造的實際結果以及創造這些結果的障礙的缺失有關。例如:客戶對所提供功能的接受程度和滿意度怎么樣?隨著時間的推移,團隊是如何改進的?是如何提高整體質量的?績效與組織和團隊的績效和滿意度密切相關,有助于提高整體效率。
(3)活動:如上所述,結果比輸出更可取,但活動或輸出通常是很好的代理指標,仍然可以實現一些有用的指標,尤其是計數器指標。這可以是發布節奏、構建系統性能,或者要管理的事件的數量。簡單地說,團隊能完成任務嗎?隨著時間的推移,團隊是如何改進的?
(4)溝通和協作:有效的協作和團隊凝聚力已被證明是開發人員生產力的重要貢獻因素。例如,頭腦風暴、協作、目標一致、參與成果都能提高生產力。與這些情況相反的是,員工之間相互對抗,推卸責任,或者感到被組織管理層拋棄。
(5)效率和流程:產生有價值的結果是一回事,但這樣做的效率有多高?一個關鍵的指標是有多少團隊和成員可以在流程中執行他們的工作;他們能在多大程度上擺脫障礙、中斷或延遲。“流程”是許多組織已經開始在流程或組織級別上關注的因素。這表現為組織的價值流指標或DORA指標。這些概念通常用于與執行團隊甚至組織董事會進行溝通。
組織維度
最后,SPACE框架區分了在哪些地方采取和應用生產力措施,這些措施是:
- 成員:幫助團隊成員感覺更有生產力是很重要的,但這通常是通過設置正確的流程、組織和團隊環境來實現的。以上所述,微觀管理成員并不會產生最好的影響,而且往往不會產生預期的結果。
- 團隊:優秀的團隊是優秀組織的核心。為團隊設置正確的環境、場景和反饋循環已被證明可以顯著提高生產力。
- 系統:改進流程、系統和組織指標有助于提高組織的效率,并更快地向客戶交付更好的結果。這些都是有助于推動全面提高績效的高級指標。
本文總結了SPACE框架的關鍵維度,接下來提供一些通過驗證可以增強經驗的例子。這些例子很容易衡量。
SPACE框架:示例指標
滿意度
對于滿意度和幸福感,有許多方法可以衡量組織內部的情況。這些可以是明確的指標,例如:
- 正式或半正式調查的凈推薦值(NPS)結果。
- 對調查電子郵件、票證支持案例或內部門戶功能快速回復表情符號:工程師和工程經理的保留率。
然而,這些指標需要專門的工作和資源來實現、維護和分析/報告。雖然這在一些組織中是可行的,但這通常不是轉向SPACE過程的第一步。
代理指標已被證明是有用的,等同于一定程度的滿意度,或者相反,是令人沮喪的指標。例如:
- 持續交付(CI)構建失敗率和恢復時間:等待和不確定的潛在痛苦。
- 代碼審查周期和審查延遲:場景切換的痛苦。
- 錯誤數量和問題修復時間:客戶不滿的痛苦。
雖然代理指標不適合更個性化的情緒分析或圍繞組織和管理問題的情緒,但它們可以突出顯示沮喪和不滿的常見誘因。此外,代理指標通常是一個簡單的起點,因為它們是挖掘現有數據的問題,不需要引入新的工作流或額外的潛在分發任務。
績效
SPACE框架的開發者強調了一些圍繞代碼審查和相關活動的績效代理指標。這包括:
- 代碼審查速度/接受率:團隊交付結果的速度/一致性有多快?
- 項目交付(史詩/功能/故事點):完成了多少?
- 基礎設施/產品/構建系統的可靠性:是否存在阻礙執行的基礎設施瓶頸?
同樣,雖然這并不一定能給出一個完整的畫面,但上述所有指標都提供了衡量整體績效的有用信號。
活動
績效衡量的是結果,而活動更關注的是產出。這些指標通常很容易獲得,例如:
- 完成代碼審查的數量
- 完成的績效數量
- 已經完成的問題/故事點的數量
- 用于開發活動的時間
- 部署頻率
活動項目是那些經常可以從工程工具和基礎設施中的數據中訪問的項目。當不斷地自動提取這些指標以減少任何摩擦和開發人員開銷時,這些指標尤其有用,同時將其聚合到團隊或組織級別以進行監控和趨勢分析。
溝通/協作
這類指標的解釋更加開放,在引入任何代理指標時需要小心雖然可以檢測到負面信號,但反過來就更難了。高度協作的團隊往往不能僅僅由數字來決定,它需要良好的個人管理技能。盡管如此,一些已被證明是有益的代理指標是:
- 代碼評審分數/評審人員數量/評審周期數量:評審是否分布良好,每個績效是否包括幾個活躍的人員,并且比“LGTM”評論更多?數字是否反映了一種合作意識,而不是像在同一個人之間的長時間審查周期中那樣明顯地推卸責任?
- 績效周期:團隊的效率和合作是否良好,或者是否存在明顯的阻礙階段?
- 知識/回顧圖表:是否存在更廣泛的協作網絡,還是存在知識孤島?
效率和流程
圍繞開發人員生產力的一個關鍵類別是工程師所處的“流程”,以及支持基礎設施和團隊流程所支持的流程。可以測量正信號和反信號,例如:
- 績效速度和趨勢
- 開發周期時間
- 構建時間和可靠性
- 代碼審查中的阻礙和延遲
- 待辦事項的老化和票據狀態的變化
- 測量流量、效率以及阻礙因素是可以通過硬數據很好地近似的事物。
在Logilica中SPACE報告的快照示例
總結
總的來說,SPACE框架為開發人員的生產力引入了一種多方面的方法。既要關注生產力的一些關鍵維度,也要關注個人、團隊和整個組織。
SPACE維度的指標可以是直接衡量,也可以是通過代理數據間接的衡量。最棒的是,許多數據點已經以某種形式存在于組織中,并且可以進行數據挖掘。例如,這可以由內部生產力工程團隊或在日益流行的軟件工程智能(SEI)平臺的幫助下完成。
原文標題:The SPACE Framework for Developer Productivity,作者:Ralf Huuck