软件研发效能提升之美
  • 推荐0
  • 收藏0
  • 浏览449

软件研发效能提升之美

吴骏龙 (作者) 

  • 书  号:978-7-121-42167-9
  • 出版日期:2021-10-20
  • 页  数:336
  • 开  本:16(170*230)
  • 出版状态:上市销售
  • 维护人:南海宝
纸质版 ¥89.00
内 容 简 介
本书汇聚了行业前沿的研发效能提升实践与案例,同时提炼出大量方法论和经验反思,以诙谐、幽默而又不失严谨、详实的风格,多角度、全方位覆盖研发效能领域的核心知识,深入浅出,发人深思。
全书采用从概要到细节、从方法论到案例、理论联系实际的写作思路。第1章和第2章通览研发效能的概念与背景,并对研发效能进行由浅入深的解读;第3章以敏捷开发为主线,讲述项目管理中的提效实践;第4章介绍了行业流行的DevOps实践,并衍生讲解了目前流行的DevSecOps、AIOps、DevPerfOps,以及混沌工程等内容;第5章和第6章立足于工具建设,详细介绍了流量回放、精准测试、服务虚拟化,以及AI在研发效能提升中的应用等12个大大小小的工具、系统与设计理念;第7章介绍了组织效能提升的多种手段,同时给出作者从实践中总结的大量经验和误区;第8章为案例篇,通过对四家不同形态企业的研发效能提升的实战讲解,帮助读者举一反三、融会贯通。
本书适合IT行业的各类从业人群,无论是技术人员、项目经理、产品经理,还是团队管理人员;无论是初入IT行业的新人,还是资深专家和高层管理者,都能从本书中得到启发。
行业前沿研发效能提升实践的浓缩精华!
.前 言

研发效能的那些事
研发效能是目前互联网企业和传统软件企业都高度关注的领域,头部大厂希望通过研发效能的提升,实现持续高效的产品交付,以应对日趋复杂的业务需求;而腰部厂商则希望通过研发效能的提升,实现弯道超车,充分发挥后来者居上的优势;还有更多中小型企业目睹国内互联网大厂对研发效能的重点投入,纷纷摩拳擦掌、跃跃欲试。一夜之间,似乎只有提升了研发效能,才能让企业在与竞争对手的较量中不落下风。
另外,一个火爆的概念背后,必然伴随着大量的偏见与纠葛。我们何尝不希望通过研发效能的提升,将软件生产力推向一个完美的顶峰,但事与愿违,不少研发效能实践最终都走进了困局,人们一度自嘲“只要努力搞,没有研发效能折腾不跨的团队”。种种乱象不禁让我们反思,研发效能究竟是神器,还是玄学?

微软现任CEO萨提亚?纳德拉说过这样一段话:
“There cannot be a more important thing for an engineer, for a product team, than to work on the systems that drive our productivity. So I would, any day of the week, trade off features for our own productivity.”
“对工程师和产品团队来说,没有比构建一个能够提升研发效能的体系更重要的事了。为了提升研发效能,我愿意随时舍弃某些功能的交付。”
这段话将“研发效能First”的理念体现得淋漓尽致。
我们应当承认,时代已然改变,无论从互联网微创新的百花齐放来看,还是从全球市场发展的导向来看,“快鱼吃慢鱼”已经成为主流,大公司庞大的组织规模原先在市场竞争中占尽优势,如今却反而成为一种负担,小公司的快速反应和适应变化的能力成为击败大公司的“钥匙”。在这个背景下,研发效能甚至可以决定一家公司的兴盛衰亡。于是,各大公司争相投入研发效能提升,也就不足为奇了。
做好研发效能提升是不容易的,我们需要的不仅仅是前沿技术的加持,更重要的是理念的更新换代和优秀实践的传承。而这些,正是本书所希望带给读者的核心价值。我们不仅会告诉你“怎么做”,还会告诉你这么做的“缘由和故事”,呈现所有人都能学得会且带得走的研发效能实践。这样,也许若干年后,你重读本书,依然能够时读时新,有全新的收获。
本书结构
本书共分为8章,采用从概要到细节、从方法论到案例、理论联系实际的写作思路。
第1章和第2章主要对研发效能进行了由浅入深的解读,讲述了研发效能提升的基础思路和最佳实践,以及研发效能背后的人性和规律,同时对研发效能的未来进行了展望。
第3章聚焦于项目管理中的效能提升手段,以敏捷开发为主线,从多个角度、全方位剖析了项目管理中的提效方法和难点。
第4章聚焦于DevOps这一研发效能提升的重要实践,衍生并讲解了目前流行的DevSecOps、AIOps、DevPerfOps,以及混沌工程等内容,浓缩了目前业界DevOps的主流实践。
第5章和第6章立足于交付“干货”,总共介绍了12个大大小小的工具、系统和设计理念,帮助读者深入理解这些工具的建设过程,以及工具建设背后的考量。
第7章主要讲解了组织效能的提升手段,我们尽可能输出多种不同的组织建设思路和观点,同时总结和归纳出最佳实践和误区,帮助读者举一反三,灵活应用到自己的团队建设中。
第8章为案例篇,通过对四种形态迥异的公司的实践案例解读,多角度、全方位地呈现给读者研发效能提升的不同落地思路和做法。
虽然本书各章节相对独立,但我们依然建议读者按顺序阅读每个章节,以便循序渐进地了解研发效能的全貌与精髓。

致谢
最后,感谢所有致力于软件研发效能提升的同行们,本书中的不少实践案例和思路都来源于你们杰出的工作成果,在此表示衷心的感谢!
限于作者水平有限,文中难免存在纰漏之处,恳请广大读者批评指正。

吴骏龙 茹炳晟
2021年秋

目录

.目 录

第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

读者评论

相关博文

  • 研发效能提升的八项实践建议

    研发效能提升的八项实践建议

    博文小编 2021-11-19

    【本文原创:吴骏龙 茹炳晟】 笔者常会被问及这样的问题:“你之前主导的研发效能提升项目都获得了成功,如果请你到我们公司来,几年可以帮助我们把研发效能做好?” 这其实是一个无解的问题。 从某种程度上说,投入大,周期就会短,但是...

    博文小编 2021-11-19
    734 0 0 0