《2019年參考硅谷高效能標桿公司提高團隊研發效能.pdf》由會員分享,可在線閱讀,更多相關《2019年參考硅谷高效能標桿公司提高團隊研發效能.pdf(44頁珍藏版)》請在三個皮匠報告上搜索。
1、參考硅谷高效能標桿公司提高團隊研發效能你是否遇到過這些問題?1.最終發布的產品與用戶需求偏差很大,有時甚至要完全推到重來2.每個沖刺、迭代最后關頭出現大量提交、合并,導致大量問題聚集在最后關頭,要么倉促上線,要么推遲發布時間3.產品發布上線時,團隊成員集體熬夜加班。卻將大把的時間花在了等待上(等待環境、等待驗證等)4.開發提測質量不好,大量壓力聚集到測試這一步,導致代碼返工率很高。引入單元測試、代碼審查,效果卻都不明顯。5.開發人員疲于應付業務,沒有精力或者興趣去精進技術,對Git、命令行等強大工具的使用僅限于皮毛,士氣低迷、工作效率低下。分享大綱 1、什么是研發效能,為什么要關注 2、研發效
2、能的模型 3、研發效能實踐解析:3.1、持續開發 3.2、分支管理和發布流程 3.3、工程師文化1、什么是研發效能?為什么需要關注?的一些統計數據(2019.6)MAU2.41 BillionDAU1.59 Billion員工39,651效能情況及實踐1.沒有QA2.幾千開發者共主干開發,不使用功能分支3.每周全量部署,每日部署,熱修復部署4.持續部署https:/ Phabricator+產品4.Stand,華為,國內創業公司:效能工具+搭建流程、建設文化5.KodeRover:工程效能創業6.極客時間研發效率破局之道專欄研發效能:持續地為用戶產生有效價值的效率 有效性(Effectiven
3、ess):產品對客戶、對公司提供價值 效率(Efficiency):快速生產發布產品 可持續性(Sustainability):能夠持續地高效生產為什么要提高研發效能?軟件行業發展階段的競爭成功必要條件 野蠻生長 精耕細作 發明創造 國內落地實踐 技術 管理 文化我們也可以!2、研發效能模型軟件研發的本質:一條超級靈活的流水線 流水線?靈活性:最終產品 節點之間關系 每個節點 每個開發者研發效能模型3.1、研發效能實踐解析:持續開發持續開發持續開發:讓開發人員聚焦于開發持續開發基本原則 規范化,優化核心步驟 快速反饋,增量開發代碼入庫前步驟優化本地開發入庫前系統檢查代碼檢查調測調優自動化測試本
4、地編碼代碼檢查人工代碼審查自動化測試入庫獲取開發環境獲取代碼配置環境獲取開發機規范化、優化核心步驟1.本地研發環境獲取2.本地編碼3.本地檢查4.建設代碼入庫前門禁系統快速反饋,增量開發1.靈活使用各種linter和測試2.建設并優化沙盒環境的搭建3.使用實時檢驗工具4.并行化優化結果本地開發入庫前系統檢查代碼檢查調測調優自動化測試本地編碼代碼檢查人工代碼審查自動化測試入庫獲取開發環境獲取代碼配置環境獲取開發機快速反饋快速反饋聯調環境規范化、優化核心步驟1.本地研發環境獲取2.本地編碼3.本地檢查4.建設代碼入庫前門禁系統快速反饋,增量開發1.靈活使用各種linter和測試2.建設并優化沙盒環
5、境的搭建3.使用實時檢驗工具4.并行化持續開發演示一:命令行開發環境持續開發演示二:快速反饋方法論的學習-黃金圈法則持續開發總結討論 Why How What3.2、分支管理和發布流程分支管理和發布流程分支管理發布流程:CI/CD做到極致分支管理 唯一一個長期純在的分支:Trunk-based 第一步,獲取最新代碼?第二步,本地開發,產生本地提交?第三步,推送到主代碼倉的master分支?第四步,rebase時,如果有沖突就先解決沖突,然后更新自己的提交,然后重復步驟3?CI/CD流程部署流程兩個問題 問題1:如果功能比較大,一個代碼提交不合適,怎么辦?問題2:如果需要多人協同一個較大的功能,
6、怎么辦?代碼原子性 原子性:一個大型系統中,形成一個不可分割的最簡單元或組件 代碼提交的原子性:一個提交包含一個不可分割的特性、修復或者優化,同時這個提交要盡可能小。優點:結構清晰;容易定位問題;容易回滾使用Commit Message作為抓手 標題,簡明扼要地描述這個提交。詳細描述,描述提交的目的、選擇這個方法的原因,并給出實現細節的總結性描述。測試情況,描述的是你對這個提交做了什么樣的測試驗證。跟其他工具和系統的相關信息,比如相關任務ID,相關的迭代信息鏈接。分支管理演示:單分支多commits鏈開發工作流其他分支方式 Git-flow工作流;Fork-merge;靈活的功能分支組合成發布
7、分支。分支管理、發布策略的背后原因 下面操作共同點?幾千名開發者同時工作在同一條主干;不使用功能分支,直接在master上開發;必須要使用Rebase才能入庫,不能使用Merge。持續集成能做到極致 git bisect分支和部署策略討論 Why How What3.3、工程師文化工程師文化工程師文化:自由和責任文化文化是決定一群人行為方式的共同認知,價值觀和信念?!叭绻h見是你想實現的目標,那么文化就是確保你能夠實現目標的根本?!盨potifyNetflix怎樣推動文化的步驟Netflix操作定義出自己需要的價值*追求高貢獻度(Performance)*追求創新 從招聘、流程、組織結構方面設
8、計方案推動文化*在公司規模變大的時候,不引入規則,而是引入更多人才來控制混亂*在HR方面,采用高薪招聘,獎勵人才,對不合適的人則容忍度很低持續堅持行動去推動文化,并總結提高*明確地提出*持續發展Why工程師文化:實用主義地達到目標工程師文化:決定行為方式的共同認知,價值觀和信念。行為包括開發軟件,解決問題,與客戶打交道,與團隊合作。這些價值觀對公司員工的行為和工作方式產生了很大的影響。每個軟件工程師都是管理者“The knowledge worker cannot be supervised closely or in detail.He can only be helped.But he m
9、ust direct himself,and he must direct himself toward performance and contribution,that is,toward effectiveness.”-The Effective Executive Peter Drucker自由和責任工程師當家做主,激發創造力 做感興趣的事 擁有信息 擁有權力與權力隨之而來的還有責任工程師文化討論 Why How What總結 研發效能對團隊,對個人的價值 效能總體模型 具體工程、管理實踐:持續開發,讓開發人員聚焦于開發 分支管理策略 工程師文化 其他沒有討論的重要工程方法、管理原則:DevOps 代碼審查 回顧討論1.但最終發布的產品與用戶需求偏差很大。甚至要完全重來。2.每個沖刺、迭代最后關頭出現大量提交、合并,出現大量問題3.產品發布上線,團隊成員集體熬夜加班。卻將大把的時間花在了等待環境、等待驗證上。4.開發提測質量不好,大量壓力聚集到測試這一步,導致代碼返工率很高。引入單元測試、代碼審查,效果卻都不明顯。5.開發人員疲于應付業務,沒有精力或者興趣去精進技術,對Git、命令行等強大工具的使用僅限于皮毛,士氣低迷、工作效率低下。團隊高效產出-10X效能團隊加快個人技術成長,提高幸福感我們也可以!