軟件研發效能提升之美

吳駿龍,茹炳晟

  • 出版商: 電子工業
  • 出版日期: 2021-10-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 336
  • 裝訂: 平裝
  • ISBN: 7121421674
  • ISBN-13: 9787121421679
  • 立即出貨

買這商品的人也買了...

商品描述

內 容 簡 介本書匯聚了行業前沿的研發效能提升實踐與案例,同時提煉出大量方法論和經驗反思,以詼諧、幽默而又不失嚴謹、詳實的風格,多角度、全方位覆蓋研發效能領域的核心知識,深入淺出,發人深思。全書採用從概要到細節、從方法論到案例、理論聯系實際的寫作思路。第1章和第2章通覽研發效能的概念與背景,並對研發效能進行由淺入深的解讀;第3章以敏捷開發為主線,講述項目管理中的提效實踐;第4章介紹了行業流行的DevOps實踐,並衍生講解了目前流行的DevSecOps、AIOps、DevPerfOps,以及混沌工程等內容;第5章和第6章立足於工具建設,詳細介紹了流量回放、精準測試、服務虛擬化,以及AI在研發效能提升中的應用等12個大大小小的工具、系統與設計理念;第7章介紹了組織效能提升的多種手段,同時給出作者從實踐中總結的大量經驗和誤區;第8章為案例篇,通過對四家不同形態企業的研發效能提升的實戰講解,幫助讀者舉一反三、融會貫通。本書適合IT行業的各類從業人群,無論是技術人員、項目經理、產品經理,還是團隊管理人員;無論是初入IT行業的新人,還是資深專家和高層管理者,都能從本書中得到啟發。

作者簡介

吳駿龍
WishChinaQADirector,阿里本地生活前高級測試經理,畢業於中國科學技術大學,碩士學位。
在軟件質量體系、服務容量保障、服務穩定性建設、軟件研發效能等領域深耕多年,善於通過創新手段解決質量和效能難題,擁有多項國內外專利。
極客時間專欄作者,多次受邀於業界各技術大會發表演講,傳播先進理念和方法論,具備一定的行業影響力。


茹炳晟
業界知名實戰派軟件研發效能和軟件質量雙領域專家,矽谷先進研發效能理念在國內的技術佈道者,騰訊Tech Lead,騰訊研究院特約研究員。
騰訊雲、阿里雲和華為雲Z具價值專家;中國商業聯合會互聯網應用技術委員會智庫專家;多本技術暢銷書作者,極客時間專欄作者;“研發效能度量規範”核心編寫專家;國內外各大軟件技術峰會的聯主席,技術委員會成員和出品人。

目錄大綱

第1章 軟件研發效能概論 1
1.1 到底什麼是研發效能 2
1.1.1 研發效能提升案例1:前端代碼的自動生成 3
1.1.2 研發效能提升案例2:臨界參數下的API測試 4
1.1.3 研發效能提升案例3:基於流程優化的效能提升 5
1.2 研發效能的“第一性原理” 6
1.3 研發效能的另一種解讀 7
1.4 基於工具協作的研發效能提升 8
1.5 基於MVP原則構建研發效能的持續改進 11
1.6 研發效能提升最佳實踐的探索 12
1.6.1 從痛點入手 13
1.6.2 從全局切入 14
1.6.3 用戶獲益 15
1.6.4 持續改進 16
1.6.5 全局優化 17
1.6.6 效能平台架構的靈活性 18
1.6.7 杜絕“掩耳盜鈴” 18
1.6.8 吃自己的“狗糧” 19
1.7 研發效能的發展方向與未來展望 20
1.8 總結 21

第2章 研發效能的進階解讀 23
2.1 研發效能與霍桑效應 25
2.1.1 霍桑效應 25
2.1.2 霍桑效應的負面影響 26
2.1.3 霍桑效應的正面影響 27
2.2 摩爾定律與反摩爾定律 28
2.2.1 摩爾定律 28
2.2.2 反摩爾定律 28
2.2.3 反摩爾定律對研發效能的意義 29
2.3 不容忽視的溝通成本 31
2.3.1 信息熵 32
2.3.2 溝通信息熵衰減 32
2.3.3 自解釋編程 34
2.4 研發效能對現代大型軟件企業的重要性 35
2.5 總結 37

第3章 項目管理中的提效手段 38
3.1 敏捷項目管理概述 39
3.1.1 敏捷宣言 40
3.1.2 常見的敏捷開發方法 42
3.1.3 敏捷角色 45
3.2 敏捷項目管理中效能提升的五大要素 47
3.2.1 自組織團隊 47
3.2.2 持續改進 48
3.2.3 頻繁交付 48
3.2.4 消除對立 49
3.2.5 未雨綢繆 50
3.3 敏捷項目管理中的常見誤區 50
3.3.1 敏捷開發就是快速開發 51
3.3.2 敏捷開發應當拋棄文檔 51
3.3.3 敏捷開發只適合小微團隊 52
3.3.4 敏捷開發淪為小瀑布開發 52
3.3.5 敏捷是沒有約束的 53
3.4 建立度量體系:無法度量,就無法改進 54
3.4.1 選擇度量指標 55
3.4.2 構建度量體系 58
3.4.3 度量的誤區 59
3.5 可視化:打開窗戶看世界 60
3.5.1 項目管理中的效能可視化 61
3.5.2 效能數據可視化 64
3.6 提速:依賴解耦,提升交付速度 65
3.6.1 提速的切入點 65
3.6.2 高頻的威力 68
3.6.3 避免豎井效應 68
3.7 消除變量:控制複雜度 70
3.7.1 約束 70
3.7.2 控制 71
3.7.3 抵抗熵增 71
3.7.4 遠慮 72
3.8 未雨綢繆:防禦性管理 73
3.8.1 及時暴露風險 73
3.8.2 防禦性管理 74
3.8.3 Plan B 74
3.8.4 避免盲目自信 75
3.9 總結 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 代碼質量 87
4.2.2 分支與工作流 91
4.2.3 流水線 94
4.3 持續集成與持續交付 96
4.3.1 持續集成與持續交付的輕量級實施 98
4.3.2 持續集成與持續交付的誤區 101
4.4 容器技術在DevOps中的應用 103
4.4.1 無容器化管理 104
4.4.2 持續集成的容器化 104
4.4.3 持續交付的容器化 105
4.4.4 測試環境的容器化 107
4.5 混沌工程 109
4.5.1 Chaos Monkey 110
4.5.2 混沌工程的實施要點 111
4.5.3 混沌工程的相關工具 114
4.6 DevSecOps的由來與發展 115
4.6.1 傳統軟件安全開發體系面臨的挑戰 115
4.6.2 新技術對軟件安全開發提出的挑戰 118
4.6.3 DevSecOps概念的誕生與內涵 119
4.6.4 DevSecOps工具 121
4.6.5 典型DevSecOps流程的解讀 124
4.7 AIOps的行業實踐 126
4.7.1 AIOps的知識體系 128
4.7.2 AIOps實施的關鍵技術 129
4.7.3 AIOps的應用場景 133
4.7.4 AIOps在運營保障中的應用 134
4.7.5 AIOps在成本優化中的應用 137
4.7.6 AIOps在效率提升中的應用 139
4.8 DevPerfOps初探 142
4.8.1 全鏈路壓測的局限性 142
4.8.2 DevPerfOps全流程解讀 144
4.9 軟件產品的可測試性和可運維性 149
4.9.1 可測試性的例子 150
4.9.2 可運維性的例子 151
4.10 總結 152

第5章 基於工具的研發效能提升(基礎篇) 154
5.1 造數能力 155
5.1.1 通過服務接口實時造數 156
5.1.2 異步造數與造數平台 156
5.1.3 黃金數據集 158
5.1.4 生產數據遷移 159
5.2 流量回放 160
5.2.1 傳統流量回放技術 161
5.2.2 請求對比 162
5.2.3 高級流量回放技術 163
5.3 精準測試 166
5.3.1 什麼是精準測試 167
5.3.2 精準測試的工程化實施 168
5.3.3 精準測試的應用 170
5.4 異常場景測試 171
5.4.1 一個交易服務逆向流程補償機制的設計 172
5.4.2 使用JVM-Sandbox製造異常場景 174
5.4.3 兼容異常場景測試和正常場景測試 176
5.4.4 異常場景測試平台 176
5.5 測試模塊化 178
5.5.1 可複用單元 179
5.5.2 切面化 181
5.5.3 模塊化案例 181
5.6 測試環境治理 183
5.6.1 測試環境的標籤化容器方案 184
5.6.2 測試環境的配置管理 185
5.6.3 測試環境的可用性巡檢 186
5.7 總結 187

第6章 基於工具的研發效能提升(進階篇) 189
6.1 服務虛擬化 190
6.1.1 Hoverfly的搭建方式 191
6.1.2 Hoverfly的六大模式 192
6.1.3 Hoverfly對有狀態請求的支持 197
6.2 變異測試 200
6.2.1 變異測試的概念 201
6.2.2 兩個基本假設和六大定義 201
6.2.3 變異測試步驟 204
6.2.4 變異測試實戰 204
6.3 高效API自動化測試的分層設計 209
6.3.1 原始狀態 210
6.3.2 API定義層 213
6.3.3 Service層 214
6.3.4 TestCase層 219
6.3.5 測試數據層 221
6.4 高效GUI自動化測試的分層設計 223
6.4.1 Page Object 224
6.4.2 Page Section 225
6.4.3 Flow 226
6.4.4 Action 226
6.5 AI在研發效能提升中的應用 228
6.5.1 AI在測試結果分析中的應用 229
6.5.2 使用aiXcoder開發代碼的效率提升 231
6.6 單元測試用例的自動化生成 234
6.6.1 EvoSuite 235
6.6.2 Diffblue Cover 239
6.7 總結 240

第7章 組織效能提升 242
7.1 工程效能部:從哪裡來,到哪裡去 244
7.1.1 工程效能部的背景 244
7.1.2 工程效能部的組織建設 245
7.1.3 工程效能部的未來 247
7.2 業務中台與質量中台 248
7.2.1 中台的深入解讀 249
7.2.2 業務中台解讀 250
7.2.3 質量中台解讀 251
7.3 組織建設中的研發效能度量 252
7.3.1 度量失敗的案例 253
7.3.2 度量失敗的原因 254
7.3.3 組織建設中的研發效能度量精解 255
7.3.4 組織建設中的研發效能度量誤區 258
7.4 高效組織建設的最佳實踐 263
7.4.1 不要製定衝突的目標 264
7.4.2 善用激勵手段,敢用懲罰手段 265
7.4.3 規避形式主義,勇於做減法 266
7.4.4 重視創新,鼓勵“小輪子”經濟 267
7.5 企業級研發效能提升的常見誤區 268
7.5.1 試圖提升研發效能的絕對值 268
7.5.2 迷信單點局部能力 268
7.5.3 過高估計普適性的通用研發效能工具的能力 269
7.5.4 用偽工程實踐和麵子工程來濫竽充數 270
7.5.5 忽略研發效能工具體系的長尾效應 270
7.5.6 盲目跟風 271
7.5.7 研發效能的“冷思考” 271
7.6 總結 272

第8章 業界優秀研發效能提升案例解讀 274
8.1 大型全球化電商公司的“去QE化”實踐 275
8.1.1 “去QE化”帶來的問題 277
8.1.2 “去QE化”的工程建設 278
8.2 CODING團隊的組織效能變遷 288
8.2.1 作坊式的團隊組織 288
8.2.2 “稍微”敏捷的團隊組織 289
8.2.3 產品製的團隊組織 291
8.2.4 基於工具優化助力組織建設 292
8.3 大型通信行業公司的研發效能提昇實戰案例 293
8.3.1 DevOps實踐 294
8.3.2 敏捷開發實踐 296
8.3.3 研發效能的度量 298
8.3.4 案例總結 299
8.4 某大型金融行業公司的性能測試提效之路 299
8.4.1 背景與挑戰 300
8.4.2 基礎平台建設 301
8.4.3 性能測試體系建設 303
8.4.4 案例總結 308
8.5 總結 310

參考文獻 312