内 容 简 介本书汇聚了行业前沿的研发效能提升实践与案例,同时提炼出大量方法论和经验反思,以诙谐、幽默而又不失严谨、详实的风格,多角度、全方位覆盖研发效能领域的核心知识,深入浅出,发人深思。全书采用从概要到细节、从方法论到案例、理论联系实际的写作思路。第1章和第2章通览研发效能的概念与背景,并对研发效能进行由浅入深的解读;第3章以敏捷开发为主线,讲述项目管理中的提效实践;第4章介绍了行业流行的DevOps实践,并衍生讲解了目前流行的DevSecOps、AIOps、DevPerfOps,以及混沌工程等内容;第5章和第6章立足于工具建设,详细介绍了流量回放、精准测试、服务虚拟化,以及AI在研发效能提升中的应用等12个大大小小的工具、系统与设计理念;第7章介绍了组织效能提升的多种手段,同时给出作者从实践中总结的大量经验和误区;第8章为案例篇,通过对四家不同形态企业的研发效能提升的实战讲解,帮助读者举一反三、融会贯通。本书适合IT行业的各类从业人群,无论是技术人员、项目经理、产品经理,还是团队管理人员;无论是初入IT行业的新人,还是资深专家和高层管理者,都能从本书中得到启发。
无
.目 录
第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 B74
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 Monkey110
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 Object224
6.4.2 Page Section225
6.4.3 Flow226
6.4.4 Action226
6.5 AI在研发效能提升中的应用228
6.5.1 AI在测试结果分析中的应用229
6.5.2 使用aiXcoder开发代码的效率提升231
6.6 单元测试用例的自动化生成234
6.6.1 EvoSuite235
6.6.2 Diffblue Cover239
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