內(nèi) 容 簡 介本書匯聚了行業(yè)前沿的研發(fā)效能提升實踐與案例,同時提煉出大量方法論和經(jīng)驗反思,以詼諧、幽默而又不失嚴(yán)謹(jǐn)、詳實的風(fēng)格,多角度、全方位覆蓋研發(fā)效能領(lǐng)域的核心知識,深入淺出,發(fā)人深思。全書采用從概要到細(xì)節(jié)、從方法論到案例、理論聯(lián)系實際的寫作思路。第1章和第2章通覽研發(fā)效能的概念與背景,并對研發(fā)效能進(jìn)行由淺入深的解讀;第3章以敏捷開發(fā)為主線,講述項目管理中的提效實踐;第4章介紹了行業(yè)流行的DevOps實踐,并衍生講解了目前流行的DevSecOps、AIOps、DevPerfOps,以及混沌工程等內(nèi)容;第5章和第6章立足于工具建設(shè),詳細(xì)介紹了流量回放、精準(zhǔn)測試、服務(wù)虛擬化,以及AI在研發(fā)效能提升中的應(yīng)用等12個大大小小的工具、系統(tǒng)與設(shè)計理念;第7章介紹了組織效能提升的多種手段,同時給出作者從實踐中總結(jié)的大量經(jīng)驗和誤區(qū);第8章為案例篇,通過對四家不同形態(tài)企業(yè)的研發(fā)效能提升的實戰(zhàn)講解,幫助讀者舉一反三、融會貫通。本書適合IT行業(yè)的各類從業(yè)人群,無論是技術(shù)人員、項目經(jīng)理、產(chǎn)品經(jīng)理,還是團(tuán)隊管理人員;無論是初入IT行業(yè)的新人,還是資深專家和高層管理者,都能從本書中得到啟發(fā)。
無
.目 錄
第1章 軟件研發(fā)效能概論1
1.1 到底什么是研發(fā)效能2
1.1.1 研發(fā)效能提升案例1:前端代碼的自動生成3
1.1.2 研發(fā)效能提升案例2:臨界參數(shù)下的API測試4
1.1.3 研發(fā)效能提升案例3:基于流程優(yōu)化的效能提升5
1.2 研發(fā)效能的性原理6
1.3 研發(fā)效能的另一種解讀7
1.4 基于工具協(xié)作的研發(fā)效能提升8
1.5 基于MVP原則構(gòu)建研發(fā)效能的持續(xù)改進(jìn)11
1.6 研發(fā)效能提升實踐的探索12
1.6.1 從痛點入手13
1.6.2 從全局切入14
1.6.3 用戶獲益15
1.6.4 持續(xù)改進(jìn)16
1.6.5 全局優(yōu)化17
1.6.6 效能平臺架構(gòu)的靈活性18
1.6.7 杜絕掩耳盜鈴18
1.6.8 吃自己的狗糧19
1.7 研發(fā)效能的發(fā)展方向與未來展望20
1.8 總結(jié)21
第2章 研發(fā)效能的進(jìn)階解讀23
2.1 研發(fā)效能與霍桑效應(yīng)25
2.1.1 霍桑效應(yīng)25
2.1.2 霍桑效應(yīng)的負(fù)面影響26
2.1.3 霍桑效應(yīng)的正面影響27
2.2 摩爾定律與反摩爾定律28
2.2.1 摩爾定律28
2.2.2 反摩爾定律28
2.2.3 反摩爾定律對研發(fā)效能的意義29
2.3 不容忽視的溝通成本31
2.3.1 信息熵32
2.3.2 溝通信息熵衰減32
2.3.3 自解釋編程34
2.4 研發(fā)效能對現(xiàn)代大型軟件企業(yè)的重要性35
2.5 總結(jié)37
第3章 項目管理中的提效手段38
3.1 敏捷項目管理概述39
3.1.1 敏捷宣言40
3.1.2 常見的敏捷開發(fā)方法42
3.1.3 敏捷角色45
3.2 敏捷項目管理中效能提升的五大要素47
3.2.1 自組織團(tuán)隊47
3.2.2 持續(xù)改進(jìn)48
3.2.3 頻繁交付48
3.2.4 消除對立49
3.2.5 未雨綢繆50
3.3 敏捷項目管理中的常見誤區(qū)50
3.3.1 敏捷開發(fā)就是快速開發(fā)51
3.3.2 敏捷開發(fā)應(yīng)當(dāng)拋棄文檔51
3.3.3 敏捷開發(fā)只適合小微團(tuán)隊52
3.3.4 敏捷開發(fā)淪為小瀑布開發(fā)52
3.3.5 敏捷是沒有約束的53
3.4 建立度量體系:無法度量,就無法改進(jìn)54
3.4.1 選擇度量指標(biāo)55
3.4.2 構(gòu)建度量體系58
3.4.3 度量的誤區(qū)59
3.5 可視化:打開窗戶看世界60
3.5.1 項目管理中的效能可視化61
3.5.2 效能數(shù)據(jù)可視化64
3.6 提速:依賴解耦,提升交付速度65
3.6.1 提速的切入點65
3.6.2 高頻的威力68
3.6.3 避免豎井效應(yīng)68
3.7 消除變量:控制復(fù)雜度70
3.7.1 約束70
3.7.2 控制71
3.7.3 抵抗熵增71
3.7.4 遠(yuǎn)慮72
3.8 未雨綢繆:防御性管理73
3.8.1 及時暴露風(fēng)險73
3.8.2 防御性管理74
3.8.3 Plan B74
3.8.4 避免盲目自信75
3.9 總結(jié)76
第4章 DevOps落地實施精要78
4.1 DevOps核心解讀80
4.1.1 DevOps的六大武器81
4.1.2 自動化、自動化、自動化82
4.1.3 DevOps生命周期精解83
4.1.4 DevOps不適合的場景86
4.2 代碼、分支與流水線86
4.2.1 代碼質(zhì)量87
4.2.2 分支與工作流91
4.2.3 流水線94
4.3 持續(xù)集成與持續(xù)交付96
4.3.1 持續(xù)集成與持續(xù)交付的輕量級實施98
4.3.2 持續(xù)集成與持續(xù)交付的誤區(qū)101
4.4 容器技術(shù)在DevOps中的應(yīng)用103
4.4.1 無容器化管理104
4.4.2 持續(xù)集成的容器化104
4.4.3 持續(xù)交付的容器化105
4.4.4 測試環(huán)境的容器化107
4.5 混沌工程109
4.5.1 Chaos Monkey110
4.5.2 混沌工程的實施要點111
4.5.3 混沌工程的相關(guān)工具114
4.6 DevSecOps的由來與發(fā)展115
4.6.1 傳統(tǒng)軟件安全開發(fā)體系面臨的挑戰(zhàn)115
4.6.2 新技術(shù)對軟件安全開發(fā)提出的挑戰(zhàn)118
4.6.3 DevSecOps概念的誕生與內(nèi)涵119
4.6.4 DevSecOps工具121
4.6.5 典型DevSecOps流程的解讀124
4.7 AIOps的行業(yè)實踐126
4.7.1 AIOps的知識體系128
4.7.2 AIOps實施的關(guān)鍵技術(shù)129
4.7.3 AIOps的應(yīng)用場景133
4.7.4 AIOps在運營保障中的應(yīng)用134
4.7.5 AIOps在成本優(yōu)化中的應(yīng)用137
4.7.6 AIOps在效率提升中的應(yīng)用139
4.8 DevPerfOps初探142
4.8.1 全鏈路壓測的局限性142
4.8.2 DevPerfOps全流程解讀144
4.9 軟件產(chǎn)品的可測試性和可運維性149
4.9.1 可測試性的例子150
4.9.2 可運維性的例子151
4.10 總結(jié)152
第5章 基于工具的研發(fā)效能提升(基礎(chǔ)篇)154
5.1 造數(shù)能力155
5.1.1 通過服務(wù)接口實時造數(shù)156
5.1.2 異步造數(shù)與造數(shù)平臺156
5.1.3 黃金數(shù)據(jù)集158
5.1.4 生產(chǎn)數(shù)據(jù)遷移159
5.2 流量回放160
5.2.1 傳統(tǒng)流量回放技術(shù)161
5.2.2 請求對比162
5.2.3 高級流量回放技術(shù)163
5.3 精準(zhǔn)測試166
5.3.1 什么是精準(zhǔn)測試167
5.3.2 精準(zhǔn)測試的工程化實施168
5.3.3 精準(zhǔn)測試的應(yīng)用170
5.4 異常場景測試171
5.4.1 一個交易服務(wù)逆向流程補(bǔ)償機(jī)制的設(shè)計172
5.4.2 使用JVM-Sandbox制造異常場景174
5.4.3 兼容異常場景測試和正常場景測試176
5.4.4 異常場景測試平臺176
5.5 測試模塊化178
5.5.1 可復(fù)用單元179
5.5.2 切面化181
5.5.3 模塊化案例181
5.6 測試環(huán)境治理183
5.6.1 測試環(huán)境的標(biāo)簽化容器方案184
5.6.2 測試環(huán)境的配置管理185
5.6.3 測試環(huán)境的可用性巡檢186
5.7 總結(jié)187
第6章 基于工具的研發(fā)效能提升(進(jìn)階篇)189
6.1 服務(wù)虛擬化190
6.1.1 Hoverfly的搭建方式191
6.1.2 Hoverfly的六大模式192
6.1.3 Hoverfly對有狀態(tài)請求的支持197
6.2 變異測試200
6.2.1 變異測試的概念201
6.2.2 兩個基本假設(shè)和六大定義201
6.2.3 變異測試步驟204
6.2.4 變異測試實戰(zhàn)204
6.3 高效API自動化測試的分層設(shè)計209
6.3.1 原始狀態(tài)210
6.3.2 API定義層213
6.3.3 Service層214
6.3.4 TestCase層219
6.3.5 測試數(shù)據(jù)層221
6.4 高效GUI自動化測試的分層設(shè)計223
6.4.1 Page Object224
6.4.2 Page Section225
6.4.3 Flow226
6.4.4 Action226
6.5 AI在研發(fā)效能提升中的應(yīng)用228
6.5.1 AI在測試結(jié)果分析中的應(yīng)用229
6.5.2 使用aiXcoder開發(fā)代碼的效率提升231
6.6 單元測試用例的自動化生成234
6.6.1 EvoSuite235
6.6.2 Diffblue Cover239
6.7 總結(jié)240
第7章 組織效能提升242
7.1 工程效能部:從哪里來,到哪里去244
7.1.1 工程效能部的背景244
7.1.2 工程效能部的組織建設(shè)245
7.1.3 工程效能部的未來247
7.2 業(yè)務(wù)中臺與質(zhì)量中臺248
7.2.1 中臺的深入解讀249
7.2.2 業(yè)務(wù)中臺解讀250
7.2.3 質(zhì)量中臺解讀251
7.3 組織建設(shè)中的研發(fā)效能度量252
7.3.1 度量失敗的案例253
7.3.2 度量失敗的原因254
7.3.3 組織建設(shè)中的研發(fā)效能度量精解255
7.3.4 組織建設(shè)中的研發(fā)效能度量誤區(qū)258
7.4 高效組織建設(shè)的實踐263
7.4.1 不要制定沖突的目標(biāo)264
7.4.2 善用激勵手段,敢用懲罰手段265
7.4.3 規(guī)避形式主義,勇于做減法266
7.4.4 重視創(chuàng)新,鼓勵小輪子經(jīng)濟(jì)267
7.5 企業(yè)級研發(fā)效能提升的常見誤區(qū)268
7.5.1 試圖提升研發(fā)效能的值268
7.5.2 迷信單點局部能力268
7.5.3 過高估計普適性的通用研發(fā)效能工具的能力269
7.5.4 用偽工程實踐和面子工程來濫竽充數(shù)270
7.5.5 忽略研發(fā)效能工具體系的長尾效應(yīng)270
7.5.6 盲目跟風(fēng)271
7.5.7 研發(fā)效能的冷思考271
7.6 總結(jié)272
第8章 業(yè)界優(yōu)秀研發(fā)效能提升案例解讀274
8.1 大型全球化電商公司的去QE化實踐275
8.1.1 去QE化帶來的問題277
8.1.2 去QE化的工程建設(shè)278
8.2 CODING團(tuán)隊的組織效能變遷288
8.2.1 作坊式的團(tuán)隊組織288
8.2.2 稍微敏捷的團(tuán)隊組織289
8.2.3 產(chǎn)品制的團(tuán)隊組織291
8.2.4 基于工具優(yōu)化助力組織建設(shè)292
8.3 大型通信行業(yè)公司的研發(fā)效能提升實戰(zhàn)案例293
8.3.1 DevOps實踐294
8.3.2 敏捷開發(fā)實踐296
8.3.3 研發(fā)效能的度量298
8.3.4 案例總結(jié)299
8.4 某大型金融行業(yè)公司的性能測試提效之路299
8.4.1 背景與挑戰(zhàn)300
8.4.2 基礎(chǔ)平臺建設(shè)301
8.4.3 性能測試體系建設(shè)303
8.4.4 案例總結(jié)308
8.5 總結(jié)310
參考文獻(xiàn)312