《研發效能提升“雙流模型”解讀-茹炳晟.pdf》由會員分享,可在線閱讀,更多相關《研發效能提升“雙流模型”解讀-茹炳晟.pdf(35頁珍藏版)》請在三個皮匠報告上搜索。
1、研發效能提升研發效能提升“雙流模型雙流模型”解讀解讀茹炳晟茹炳晟茹炳晟n中國計算機學會(CCF)TF 研發效能SIG 主席n“研發效能宣言”發起人及主要內容起草者n“軟件研發效能度量規范”標準專家組核心專家n年度IT圖書最具影響力作者n業界第一本研發效能領域專著軟件研發效能提升之美作者n暢銷書軟件研發效能提升實踐作者n暢銷書測試工程師全棧技術進階與實踐作者n高效自動化測試平臺:設計與開發實戰作者n新書軟件研發效能權威指南主編(即將出版)n極客時間軟件測試52講-從小工到專家的實戰心法作者nCertified DevOps Enterprise Coach講師簡介時代變了,底層邏輯也變了大魚 吃
2、 小魚快魚 吃 慢魚研發效能的“靈魂拷問”!#$!#$%&%&()*()*+,-.+,-.重要性(高)緊迫性(高)重要性(低)緊迫性(低)靈魂拷問1-研發團隊的忙碌能代表高效率嗎?靈魂拷問2-敏捷是研發效能提升的銀彈嗎?靈魂拷問3-自動化測試真的提升軟件質量了嗎?皇帝的新裝靈魂拷問4-研發效能的提升一定是由技術驅動的嗎?時間業務增長的趨勢軟件架構的復雜度與軟件規模的復雜度人員規模期待的研發效能實際的研發效能研發效能的鴻溝靈魂拷問5-研發效能真的可以提升嗎?各大行業龍頭企業為什么都開始關注“研發效能”產品層面的“煙囪效應”持續開發持續集成持續測試持續交付持續運維流動速度長期質量客戶價值數據驅動研
3、發效能提升的“第一性原理”順暢、高質量地持續交付有效價值的閉環研發效能提升的“雙流模型”需求階段(開發開始前)的效率提升實踐需求階段(開發開始前)的效率提升實踐需求優先級原則(KANO 模型)用戶滿意度高用戶滿意度高用戶滿意度低用戶滿意度低功能實現程度高功能實現程度高功能實現程度低功能實現程度低基礎功能基礎功能亮點功能亮點功能期望功能期望功能無差別功能無差別功能反向功能反向功能個人本地開發和測試階段的效率提升實踐個人本地開發和測試階段的效率提升實踐高效獲取開發環境高效獲取開發環境個人本地開發和測試階段的效率提升實踐高效獲取開發環境個人本地開發和測試階段的效率提升實踐IDE精準代碼提示個人本地開
4、發和測試階段的效率提升實踐IDE精準代碼提示n IDE自帶推薦功能需要的按鍵次數:311n 基于大數據智能推薦功能需要的按鍵次數:56Python示例示例(Tensorflow)https:/ Cover)個人本地開發和測試階段的效率提升實踐Java單元測試用例的自動生成(Diffblue Cover)被測代碼https:/ Cover)個人本地開發和測試階段的效率提升實踐(本地)單模塊功能測試個人本地開發和測試階段的效率提升實踐代碼合流階段的效率提升實踐代碼評審(Code Review)代碼評審CR的普遍困惑:u“政治正確”的代碼評審活動為什么看起來像是再走過場u自己的開發任務還沒完成,哪有
5、時間和精力認真評審別人的代碼u你可能對要評審對代碼的設計上下文一無所知,不知道該從哪里看起u當認真評審的時候,因為編碼風格和你不一致而感覺備受折磨,甚至引發矛盾uCR響應時間過長,不能即時反饋u為了達成CR評審的度量指標要求而湊數代碼合流階段的效率提升實踐代碼評審的核心理念:n代碼評審必須算工作量n保證代碼邏輯正確,是設計者的責任n審查者避免根據自己的編程習慣來評判別人的代碼響應快找對人合適的Reviewer多批次Review要頻繁發生小批量每次Review的代碼量要少代碼評審的最佳實踐代碼評審(Code Review)代碼合流階段的效率提升實踐代碼評審可以及時發現一些容易發現的BUG,而不必
6、將發現BUG的時間點推遲到測試階段,但是代碼評審的最大好處卻是純社會屬性的。編碼者視角良性的社交壓力維護者視角代碼可讀性的保證全局視角知識傳播設計共識代碼評審(Code Review)代碼合流階段的效率提升實踐知識傳播和設計共識的佐證代碼評審(Code Review)代碼合流階段的效率提升實踐基于觀察而非考核的CR度量指標Author角度:l單次變更的代碼行數(主要指標)l變更的頻度(參考)Reviewer角度:l響應時間(參考)l評論數(參考)l一次通過率(參考)l拒絕率(參考)代碼評審(Code Review)代碼合流階段的效率提升實踐集成測試與驗證階段的效率提升實踐測試基礎架構服務化和測
7、試中臺集成測試與驗證階段的效率提升實踐Test CasesTest Request from CI/CDGlobal Registry ServiceUnified Flow FrameworkSystem Under Test(SUT)Test BedEnvironmentTest BedServiceTest ReportServiceUnified MockServiceLaunch test executionTest executionBuild onCall TDS to prepare(create/search/update)test dataProvisionBuild onTest Execution Report Meta DataTest on SUTProvide Mock for dependencyPrepare test data on SUTTest DataService Test ExecutionServiceEngineering Productivity Tools StoreInvoke Test Bed Service to prepare test execution environment SUT Setup ServiceInvoke SUT Setup Service to prepare test environment