關於研發效能提升的思考
- 研發效能提升是最近比較熱門的一個話題,本人根據這幾年的工作心得,做了一些思考總結,由於個人深度有限,暫且拋轉引入。
-
三要素
- 任何生產力的提升都離不開這三個因素:人、流程和工具,少了其中任何一個因素都無法實現。
- 人,即思想,也就是古人說的“道”,道不同不相為謀,是制高點,也是高層建築的基石。
- 流程,即方法,也是古人說的“法”。研發效能的提升,也就是要提高投入產出比,既要增加產出,也要減少消耗。
- 工具,即道具、器械,對應“器”。選對工具很重要,趁手的工具往往能起到事半功倍的效果。
- 詳細解釋見下圖:
-
第一個要素:人
- 思想的深度決定了生產力的高度。按照敏捷宣言,個體和互動勝過流程和工具,人的因素是最重要的,但人的思想在短期內又無法提升,需要長期不斷投入。
- 我們可以從兩個方面著手,逐漸改進:
- 工程素養
- 做事方法
- 工程素養
- 做事方法
- 研發同學要形成PDCA的思維,任何事情都要有始有終,形成閉環
- 喬樑在《持續交付2.0》中提出的持續交付雙環模型,我覺得是PDCA環的發展,可以應用到很多領域,比如流程改進
- 持續交付雙環在流程改進中的應用
-
第二個要素:流程
- 流程的引入並不是為了給團隊增加束縛,而是提高研發效能,即必須起到減少浪費,促進價值產生的作用
- 減少浪費
按照精益的思想,軟體行業常見的浪費有以下幾種:
浪費種類 |
浪費舉例 |
減少浪費的措施 |
部分完成的功能 |
中途取消的需求、設計、BUG; 程式碼未及時合入導致引發後續更多同步工作量。 |
聚焦完成 拉式生產 時間盒 |
未應用功能 |
開發完成但沒有被客戶應用的功能。 |
快速反饋 故事地圖 |
再次學習/重複投入 |
人員頻繁流動導致經驗不能積累,反覆重新學習; 在多個環節移交時,接收資訊者需要重新學習; 相同的功能多個專案同時在開發,重複投入; 擁有某領域的專家,但卻沒參與,由團隊重新摸索。 |
自組織團隊 結果為導向 |
傳遞 |
知識資訊的傳遞總是伴隨資訊丟失,比如需求傳遞。 |
Scrum五會 |
任務切換 |
員工參與多個專案或雜事繁多,導致效率下降。 |
小迭代 |
延遲/等待 |
構建失敗;測試阻塞;關聯專案延遲。 |
看板方法 |
缺陷
|
解決缺陷活動本身就是浪費,而且缺陷越遺留到後端浪費越大。 |
TDD 自動化測試 |
- 促進價值產生
流程必須促進價值的產生,即價值產生的催化劑
價值 |
詳細解說 |
具體實踐 |
明確分工 |
流程應該明確各職責的權利和責任,只有明確分工,才能防止扯皮 我們很難做到每個技能都掌握,只能充分發揮每個人的長處,實現整體產出最優化 |
專業的人做專業的事 RACI矩陣 |
響應變化 |
流程必須有利於快速響應變化,及時作出應對 流程本身也要響應變化,而不是一成不變 |
快速試錯 |
提高協同效率 |
通過統一的標準,大家可以在同一個頻度溝通 新成員通過流程的指引,可以快速進入狀態 |
Scrum模式 |
暴露問題 |
流程必須能促進問題的暴露,而不是掩蓋問題 當問題暴露出來時,可以通過解決機制快速解決 |
看板方法的應用 |
客戶價值為導向 |
流程最終的目的也是要為客服服務,以客戶價值為導向設計流程 |
使用者故事 影響地圖 |
學習型組織養成 |
促進學習型組織的養成,提高以上能力,並及時總結,形成良性迴圈 |
實踐總結 實踐分享 |
- 流程改進
-
流程改進一定要避免買櫝還珠的行為,改進的目的是減少浪費,促進價值產生,而不是為了符合流程而走流程。
-
如果流程已經阻礙到價值的交付,那麼就要考慮優化流程。
-
第三個要素:工具
- 工具是三個因素中最容易實現的,可以購買現成的,也可以企業自己開發,比如業界常用的有Jira、TFS、禪道、Tembition等,可以根據自身需求匯入。
- 工具畢竟只是流程的載體,不能把心思都花在工具上,而忽略了人和流程,那就捨本逐末了。
- 工具和人
- 工具是人工作的道具,既要輔助人實現工作目標,也要把工作過程透明出來,方便干係人瞭解工作進展
- 所以工具的選型需要考慮幾個因素:
- 組織複雜度
- 工具維護成本
- 是否能滿足流程需要
- 是否方便獲取狀態報告
- 工具和流程
- 工具是流程的載體,流程只有整合到工具中才能更高效率的被執行,尤其是流轉的自動化
- 正所謂術以載道,好的工具必須是符合企業文化,並能促進流程的自我改良的
- 工具和度量
- 度量是研發活動的鏡子,只有完善的度量體系,才能清晰知道哪裡存在弱項,哪裡是我們改進的重點
- 缺少度量,研發過程必然不可見,更談不上如何提升研發效能
- 而度量必須通過工具實現,否則度量的效率就會很低下,如果度量本身要花費大量工作,那就得不償失
- 度量原則
- 度你所做,為優而量,這是度量的根本目標
- 簡單,減少度量工作量
- 客觀,不易受人為干涉
- 儘量不與考核掛鉤
- 較完整的度量框架
- 根據以往經驗,及目前公司正在做的度量,梳理了一套較完整的端到端度量體系,可以參考
- 如何考核
- 既然說度量不與考核掛鉤,那該如何採集考核資料?
- 建議從幾個客觀指標著手(有部分借用阿里)
- 團隊互評
- 也可以採用團隊匿名互評的方法
- 回顧會上,每個人給包括自己在內的所有人進行評價,包括:綜合評分、做得好的、待改進點
- 某專案團隊互評結果
- 當然,任何措施若涉及到個人利益,必然會有變味的行為(壞味道),即使現在很火的OKR一樣有走歪的,只能看這個措施是否能引導團隊往正確的方向走,是否利大於弊。
相關文章
- 關於研發規範化的一些思考
- GTest(基於YApi)介面研發效能提升10倍 實戰API
- 軟體研發之道——有關軟體的思考
- KubeSphere 助力提升研發效能的應用實踐分享
- 平臺工程助力企業提升研發效能
- AI DevOps | ChatGPT 與研發效能、效率提升(中)AIdevChatGPT
- 平臺工程如何助力企業提升研發效能?
- 關於開發流的一點思考
- 關於技術人員自身能力提升的一些思考
- DevOps 與研發效能資深技術專家張樂:研發效能的升維思考與降維執行dev
- 研發效能提升 36 計第一課:網際網路時代研發效能的挑戰和應對之道
- 淺談攜程大住宿研發效能提升實踐
- 阿里云云效助力企業10倍研發效能提升阿里
- 進擊的程式設計師,如何提升研發效能?|直播預告程式設計師
- 關於難點的思考
- 關於面試的思考面試
- 小程式 Serverless: 解放生產力,驅動研發效能提升Server
- 乾貨分享 | 阿里專家親授如何提升研發效能阿里
- 研發模式和流程的再思考模式
- Game On Serverless:SAE 助力廣州小邁提升微服務研發效能GAMServer微服務
- 關於限流實現的思考
- 關於中介軟體的思考
- 關於Flux,Vuex,Redux的思考VueRedux
- 關於工廠模式的思考模式
- 關於寫部落格的思考
- 關於Fork和Malloc的思考
- 研發效能度量引發的血案
- 一次筆試引發的關於setTimeout的this的思考筆試
- 關於Java併發多執行緒的一點思考Java執行緒
- 關於近期幣安事件的思考事件
- 關於 Method Swizzling 的一點思考
- 關於同步的一點思考-下
- 關於 PHP 框架的簡單思考PHP框架
- 關於運營邊界的思考
- 關於CodeReview的一些思考View
- 關於git flow的一點思考Git
- 關於知識付費的思考
- 最近關於工作的幾點思考