衡量開發(fā)人員工作效率的好處引發(fā)了激烈的爭論,這取決于你問的是誰。由于定義和跟蹤它有許多不確定,因此更加關(guān)注簡化開發(fā)人員的工作流程可能是更好的選擇。當(dāng)談到生產(chǎn)力時,關(guān)鍵是企業(yè)從概念化想法和定義其細(xì)節(jié)到規(guī)劃架構(gòu)的進(jìn)展速度。生產(chǎn)力直接轉(zhuǎn)化為進(jìn)入市場和創(chuàng)新的速度,最終影響到盈虧平衡點。
圖源:GORODENKOFF
大多數(shù)企業(yè)都致力于數(shù)字化戰(zhàn)略,并尋找提高員工生產(chǎn)力的方法。與此同時,開發(fā)人員稀缺,對新軟件的需求也很高。Gartner(高德納,Gartner Group公司成立于1979年,它是第一家信息技術(shù)研究和分析的公司。它為有需要的技術(shù)用戶來提供專門的服務(wù)。Gartner已經(jīng)成為了一家獨立的咨詢公司,Gartner公司的服務(wù)主要是迎合中型公司的需要,它希望使自己的業(yè)務(wù)覆蓋到IT行業(yè)的所有領(lǐng)域,從而讓自己成為每一位用戶的一站式信息技術(shù)服務(wù)公司。)的高級董事、分析師Keith Mann(基思·曼)說,這激發(fā)了人們對理解和衡量開發(fā)人員工作效率的興趣?!敖M織需要充分利用有限數(shù)量的開發(fā)人員。”他說,“Gartner(高德納)的調(diào)查和客戶調(diào)查數(shù)據(jù)證實,開發(fā)人員的生產(chǎn)力仍然是軟件工程領(lǐng)導(dǎo)者的首要任務(wù)。”
加州Delta Dental(是美國最大的牙科系統(tǒng),運(yùn)營著美國最大的兩個參與牙醫(yī)網(wǎng)絡(luò)。德爾塔牙科為美國50個州、波多黎各和其他地區(qū)的7800多萬人提供牙科和正畸服務(wù),包括小型企業(yè)、政府實體和各種專業(yè)組織。)的首席信息官Dominic Titcombe(多米尼克·泰特庫姆)補(bǔ)充說,最近關(guān)于生成式人工智能的進(jìn)展激發(fā)了新的工作方式,關(guān)于應(yīng)用人工智能加速軟件創(chuàng)建也有很多討論。他說:“在這個領(lǐng)域里,顯然有一些巨大的工具,比如GitHub Co-Pilot(微軟與OpenAI共同推出了一款AI編程工具,能夠基于?GitHub?及其他網(wǎng)站的源代碼,可根據(jù)上文提示為程序員自動編寫下文代碼。),開發(fā)者可以使用這些工具來提高和提高他們的生產(chǎn)力?!?/span>
應(yīng)付賬款自動化軟件和支付解決方案提供商AvidXchange(是一家自動化支付解決方案提供商,主要為中小企業(yè)提供支付賬戶管理和按需發(fā)票/票據(jù)管理解決方案。還推出了基于Web的無紙化應(yīng)付賬款和支付解決方案,通過自動化技術(shù)和服務(wù)減少中小企業(yè)運(yùn)作成本,提升企業(yè)運(yùn)營效率。)的首席信息官Angelic Gibson(安吉利奇·吉布森)贊同消除開發(fā)人員工作流程中的摩擦可以增強(qiáng)敏捷創(chuàng)新。她說:“專注于創(chuàng)新和技術(shù)部署有助于查明和消除阻礙技術(shù)團(tuán)隊的障礙。”她補(bǔ)充道,雖然衡量軟件開發(fā)生產(chǎn)對IT數(shù)字化至關(guān)重要,但它也需要謹(jǐn)慎地推出,以保持健康的團(tuán)隊動態(tài)。她說:“互聯(lián)團(tuán)隊表現(xiàn)出更大的所有權(quán)和承諾,從而提高了生產(chǎn)力?!?/span>
一、精簡以優(yōu)化生產(chǎn)力
敏捷軟件開發(fā)對于創(chuàng)新和保持競爭力至關(guān)重要。Mann(曼)說,因此,工程領(lǐng)導(dǎo)層應(yīng)該衡量軟件開發(fā)人員的工作效率,同時也應(yīng)該了解如何有效地做到這一點,并警惕陷阱。他說:“如果得當(dāng),衡量生產(chǎn)力可以深入了解開發(fā)團(tuán)隊如何為用戶和客戶提供更多價值,這是帶來積極業(yè)務(wù)影響的原因?!?/span>
Titcombe(泰特庫姆)同樣認(rèn)為,評估軟件開發(fā)人員的效率是值得的,并指出它如何幫助IT實現(xiàn)其為終端消費(fèi)者提供優(yōu)質(zhì)產(chǎn)品的目標(biāo)。“任何業(yè)務(wù)部門都應(yīng)該尋求提高生產(chǎn)率,并想辦法用更少的錢做更多的事情?!彼f,“為客戶打造體驗的一個關(guān)鍵部分是在提供優(yōu)秀產(chǎn)品的同時,快速、經(jīng)濟(jì)地完成?!?/span>
然而,如果軟件開發(fā)團(tuán)隊沒有取得成功,那么交付優(yōu)秀的數(shù)字產(chǎn)品可能是一項挑戰(zhàn)。Gibson(吉布森)說,IT經(jīng)常處理大量的功能,阻礙了greenfield development(綠地軟件開發(fā)是指為全新環(huán)境開發(fā)系統(tǒng),需要從頭開始開發(fā)——沒有遺留代碼。)。她說:“一旦IT積壓,恢復(fù)生產(chǎn)所需的時間至關(guān)重要。”
開發(fā)團(tuán)隊還經(jīng)常遇到阻礙工作流程順利進(jìn)行的瓶頸,Gibson(吉布森)補(bǔ)充說,包括復(fù)雜的代碼、復(fù)雜的體系結(jié)構(gòu)或劣質(zhì)的自動化和測試不足。她說,由于軟件開發(fā)過程中的摩擦?xí)档凸ぷ餍?,因此,深入了解這些障礙對于避免阻礙團(tuán)隊發(fā)展至關(guān)重要。
摩擦?xí)p緩創(chuàng)新的速度,從而影響公司的整體收入和利潤。Gibson(吉布森)說:“就像Netflix(美國奈飛公司,簡稱網(wǎng)飛。是一家會員訂閱制的流媒體播放平臺,總部位于美國加利福尼亞州洛斯蓋圖。成立于1997年,曾經(jīng)是一家在線DVD及藍(lán)光租賃提供商,用戶可以通過免費(fèi)快遞信封租賃及歸還Netflix庫存的大量影片實體光盤。)通過無縫技術(shù)開發(fā)對Blockbuster(百視達(dá),是一家美國家庭影視娛樂供應(yīng)商,最初只是出租錄像,后來發(fā)展到了流媒體、隨選視訊和影院等行業(yè)。)進(jìn)行創(chuàng)新一樣,簡化這一過程的公司可以加速市場創(chuàng)新,提高收入和盈利能力?!?/span>
然而,并不是所有的高管都相信開發(fā)人員的生產(chǎn)力度量可以產(chǎn)生可操作的結(jié)果。相反,最重要的可能是這種對精簡流程的重視。代碼測試平臺CTO.ai(是一家于2017年在加拿大溫哥華成立的初創(chuàng)企業(yè),主要業(yè)務(wù)是將開發(fā)工具引入Slack頻道以提高協(xié)作能力,進(jìn)而簡化DevOps實施流程。該平臺能夠通過Slack命令行共享復(fù)雜的工作流,從而將開發(fā)團(tuán)隊與運(yùn)營團(tuán)隊緊密聯(lián)系起來。借助這種“SlackOps”模式,CTO.ai得以有效促進(jìn)分布式員工之間的協(xié)作能力。以此為基礎(chǔ),現(xiàn)有DevOps工具可以直接插入該平臺,最終實現(xiàn)DevOps整體周期的全面自動化。)的首席執(zhí)行官和創(chuàng)始人Kyle Campbell(凱爾·坎貝爾)說:“專注于開發(fā)人員的生產(chǎn)力是一件愚蠢的事情。一個更有經(jīng)驗和具有實踐能力的領(lǐng)導(dǎo)者知道,團(tuán)隊的產(chǎn)出與他們必須專注于做好工作的支持水平直接相關(guān)。”
因此,他建議通過批判性地思考如何優(yōu)化開發(fā)人員工作流,如CI/CD(Continuous Integration持續(xù)集成/Continuous Delivery持續(xù)交付,屬于DevOps的概念,指將傳統(tǒng)開發(fā)過程中的代碼構(gòu)建、測試、部署以及基礎(chǔ)設(shè)施配置等一系列流程的人工干預(yù)轉(zhuǎn)變?yōu)樽詣踊?。使?span style=";padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-family: 'Times New Roman'">CI/CD,代碼經(jīng)由開發(fā)人員更改后,可進(jìn)行自動化測試并完成交付和部署。恰當(dāng)?shù)?span style=";padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-family: 'Times New Roman'">CI/CD管道可使計算機(jī)停機(jī)時間最小化,從而更快發(fā)布代碼。),并根據(jù)經(jīng)驗衡量開發(fā)人員在這些領(lǐng)域的經(jīng)驗,來增強(qiáng)開發(fā)團(tuán)隊的能力。
二、衡量業(yè)務(wù)成果,而不是代碼行
在整個software development lifecycle/SDLC/軟件開發(fā)生命周期中,從想法生成到生產(chǎn)階段,都有各種測量點,應(yīng)該對這些測量點進(jìn)行監(jiān)控,以確保流程順暢。Gibson(吉布森)說:“如果企業(yè)不提高這些階段的效率或商業(yè)技術(shù)的部署,他們就有落后于競爭對手的風(fēng)險?!?/span>
然而,衡量軟件開發(fā)人員生產(chǎn)力的愿望本身就面臨著障礙。盡管關(guān)于如何準(zhǔn)確地做到這一點,有很多學(xué)派的觀點,但技術(shù)領(lǐng)導(dǎo)者的普遍觀點是避免從微觀的個人貢獻(xiàn)者層面來衡量貢獻(xiàn)。
Titcombe(泰特庫姆)說:“計算每天生成的代碼行可能會導(dǎo)致錯誤的生產(chǎn)力測量?!毕喾?,最好檢查一下新功能交付的速度。他說:“如果我們能更快地向客戶提供工具和體驗,就可以更好地衡量開發(fā)人員的效率,這將帶來更大的整體效益。”
生產(chǎn)力測量的一個重要警告是,有些測量可能會導(dǎo)致誤報,或?qū)е鹿こ處熍c系統(tǒng)博弈。“一旦開發(fā)者意識到他們是用某個指標(biāo)來衡量的,他們就會人為地夸大這個指標(biāo)?!?span style=";padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-family: 'Times New Roman'">Titcombe(泰特庫姆)說,“更好的指標(biāo)是企業(yè)生產(chǎn)力指標(biāo),它關(guān)注交付給客戶的結(jié)果。”
Mann(曼)說,在Gartner(高德納),他們看到客戶對實現(xiàn)某些開發(fā)者生產(chǎn)力框架感興趣。SPACE就是這樣一個框架。由GitHub(是一個面向開源及私有軟件項目的托管平臺,因為只支持Git作為唯一的版本庫格式進(jìn)行托管,故名GitHub。Github擁有1億以上的開發(fā)人員,400萬以上組織機(jī)構(gòu)和3.3億以上資料庫。)研究人員提出,SPACE通過基于滿意度和幸福感、績效、活動、溝通和協(xié)作以及效率和工作流程的更多定性測量,增強(qiáng)了?DevOps Research and Assessment/DORA/DevOps研究與評估框架。Mann(曼)在使用中看到的另一個框架是DevEx(開發(fā)者體驗,開發(fā)者體驗聚焦于開發(fā)者的真實體驗及其在日常工作中遇到的摩擦點。DevEx?框架將影響開發(fā)者體驗的因素提煉為三個維度:反饋回路、認(rèn)知負(fù)荷和心流狀態(tài)。領(lǐng)導(dǎo)者可以在這三個維度中選擇指標(biāo),以衡量和確定需要關(guān)注的領(lǐng)域,最終推動生產(chǎn)力的提高。)。
Mann(曼)指出,這些框架中的屬性可以幫助衡量開發(fā)人員的生產(chǎn)力,有些比其他的更客觀。然而,他鼓勵領(lǐng)導(dǎo)在實施這些計劃時要有目的。同樣,測量活動應(yīng)該揭示阻礙積極業(yè)務(wù)結(jié)果的障礙,而不是用于將特定的貢獻(xiàn)者放在基座上。
“衡量標(biāo)準(zhǔn)的目的不是通過比較他們的指標(biāo)來確定一個開發(fā)人員是更好還是更差?!?span style=";padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-family: 'Times New Roman'">Mann(曼)說,“相反,其目的是診斷哪些因素可能導(dǎo)致相關(guān)開發(fā)人員的生產(chǎn)力提高或降低。”例如,他講述了一個使用SPACE框架的客戶是如何發(fā)現(xiàn)通信故障的,該故障被成功修復(fù),以減少質(zhì)量問題和返工。
通過智能生產(chǎn)力監(jiān)控,這些小的修復(fù)可以實現(xiàn)更快的周轉(zhuǎn),并帶來回報。Gibson(吉布森)說:“當(dāng)談到生產(chǎn)力時,關(guān)鍵是企業(yè)從概念化想法和定義其細(xì)節(jié)到規(guī)劃架構(gòu)的進(jìn)展速度。生產(chǎn)力直接轉(zhuǎn)化為進(jìn)入市場和創(chuàng)新的速度,最終影響到盈虧平衡點(bottom line?在財務(wù)報表中是“最終贏利或虧損”的意思,引申開是指“最重要的因素最關(guān)鍵的一點”)。”
三、團(tuán)隊合作提高生產(chǎn)力
提高軟件開發(fā)生產(chǎn)力不一定僅通過指標(biāo)來鼓勵。提高整體生產(chǎn)力的另一個重要因素是開發(fā)人員對團(tuán)隊的歸屬感和承諾。
“團(tuán)隊連接是生產(chǎn)力的基石,”Gibson(吉布森)說,“為了擁有高效的團(tuán)隊,人們需要感覺到彼此之間的聯(lián)系,并與合作的團(tuán)隊有歸屬感和凝聚力?!?/span>
更好地理解生產(chǎn)力也意味著重新構(gòu)想整個概念,因為對“生產(chǎn)力”的典型工業(yè)定義并不能很好地轉(zhuǎn)移到流體的軟件設(shè)計和開發(fā)過程中。Mann(曼)說,軟件不像生產(chǎn)一些機(jī)械部件,每個單元的制造過程是相同的。軟件更加微妙,不斷變化,而且每個組件的最終價值不同,這使傳統(tǒng)的生產(chǎn)力測量技術(shù)復(fù)雜化。
“每一個軟件都是獨特的,都有獨特的價值,”Mann(曼)說,“說‘我們生產(chǎn)的軟件數(shù)量是上周的兩倍,所以產(chǎn)量是上周的一倍’是毫無意義的,因為上周的軟件價值可能是現(xiàn)在的一半?!币虼耍a(chǎn)力衡量往往是幻想,沒有真正切實的好處。他說:“我們需要做的是將生產(chǎn)力理解為我們每單位時間或成本所帶來的價值。”
另一個含義是,我們意識到軟件并不是孤立創(chuàng)建的——它是一個與每個sprint(敏捷開發(fā)領(lǐng)域的?Sprint/沖刺是指一個固定時間段內(nèi)的開發(fā)循環(huán),通常為2至4周。在Sprint中,團(tuán)隊通過計劃、執(zhí)行、回顧和反饋的過程來完成一個可交付的產(chǎn)品增量。)中涉及的許多利益相關(guān)者進(jìn)行的協(xié)作過程?!按蠖鄶?shù)軟件是由開發(fā)團(tuán)隊而非個人開發(fā)的,”Mann(曼)說。因此,領(lǐng)導(dǎo)者應(yīng)該尋求長期評估團(tuán)隊的生產(chǎn)力——Mann(曼)將生產(chǎn)力描述為“單位時間的價值”——以真正衡量生產(chǎn)力的提高是否有效。
Mann(曼)指出:“如果你能始終如一地評估各個團(tuán)隊的價值,那么你甚至可以比較他們的生產(chǎn)力?!辈贿^,他補(bǔ)充道,這是一個很大的“如果”,因為價值在很大程度上取決于所涉及的業(yè)務(wù)領(lǐng)域,并且在利益相關(guān)者之間差異很大。
當(dāng)然,價值并不總是容易衡量的,這突出了靈活方法的必要性,特別是在比較團(tuán)隊動態(tài)時。因此,與其依賴于特定的通用指標(biāo),不如揭示與相關(guān)團(tuán)隊相關(guān)的趨勢。
“比較和理解趨勢,并將這些趨勢作為提出更深層次問題的基礎(chǔ),這更有意義?!?span style=";padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-family: 'Times New Roman'">Mann(曼)說,“例如,如果一個團(tuán)隊的生產(chǎn)力呈上升趨勢,而類似的團(tuán)隊的生產(chǎn)力沒有上升,我們可能會問第一支團(tuán)隊做了什么?!?/span>提出這樣的問題可以讓整個公司共享知識,這將有助于其他團(tuán)隊提高。
在開發(fā)人員經(jīng)驗的背景下,需要關(guān)注的關(guān)鍵領(lǐng)域具有略有不同的特點。Campbell(坎貝爾)說:“當(dāng)我們間接地談?wù)撻_發(fā)結(jié)果時,通過來自團(tuán)隊的反饋來評估開發(fā)人員經(jīng)驗的關(guān)鍵組件是至關(guān)重要的?!彼麑⑦@些組件分為Clarity/透明度(我如何部署)、Ease of use/易用性(部署的最低步驟是什么)、Functionality/功能性(是否有我可以擴(kuò)展的現(xiàn)有工作流、API或SDK)和Stability/穩(wěn)定性(如果我現(xiàn)在部署它,我能確定這不會在半夜中斷嗎)。
Campbell(坎貝爾)說,通過聽取這些領(lǐng)域工程師的反饋,領(lǐng)導(dǎo)層可以“迅速培養(yǎng)出對他們需要支持的領(lǐng)域的同理心,以完成他們的最佳工作。”有了這一點,IT就可以最好地投資于提高生產(chǎn)力并積極影響業(yè)務(wù)的改進(jìn)。
四、開發(fā)人員和客戶體驗
技術(shù)領(lǐng)導(dǎo)者在衡量開發(fā)人員的生產(chǎn)力時應(yīng)該謹(jǐn)慎,如果他們確實嘗試了,結(jié)果必須基于對終端消費(fèi)者的有形價值。
Titcombe(泰特庫姆)說:“高管應(yīng)該確保生產(chǎn)力衡量標(biāo)準(zhǔn)側(cè)重于客戶體驗和結(jié)果,團(tuán)隊在支持新機(jī)會出現(xiàn)時保持敏捷?!彼a(bǔ)充說:““我們希望優(yōu)先考慮技術(shù)可以幫助我們現(xiàn)在和未來照顧患者的方式?!?/span>
領(lǐng)導(dǎo)者還應(yīng)該記住,精神能量也有局限性,而職業(yè)倦怠對知識工作者來說是一種真正的可能性。因此,Gibson(吉布森)表示,在衡量績效時,關(guān)注過程而不是個人是至關(guān)重要的,以避免灌輸恐懼。她說:“通過強(qiáng)調(diào)整個過程的有效性和評估衡量過程本身的效率,重點轉(zhuǎn)移到個人在該框架內(nèi)的運(yùn)作情況?!?/span>
對于另一些人來說,單獨衡量開發(fā)人員的生產(chǎn)力可能會轉(zhuǎn)移注意力。相反,Campbell(坎貝爾)鼓勵培養(yǎng)一種持續(xù)改進(jìn)和發(fā)現(xiàn)策略的文化,以更好地為開發(fā)人員的工作流程提供工具,并從中衡量這一工具鏈,以獲得可操作的開發(fā)見解。他說:“正如我們衡量我們的軟件對試圖實現(xiàn)目標(biāo)的最終用戶的影響一樣,我們也可以衡量我們的內(nèi)部工具對我們的目標(biāo)的影響?!?/span>
作者:Bill Doerrfeld(比爾·多菲爾德)
Bill(比爾)是一名專門研究企業(yè)云軟件領(lǐng)域最先進(jìn)技術(shù)的技術(shù)記者。他也是API從業(yè)人員知識中心Nordic API的主編,并為DevOps.com、Cloud Native Now(前身為Container Journal)和Acceleration Economy撰稿。