软件研发效能提升之美pdf下载pdf下载

软件研发效能提升之美百度网盘pdf下载

作者:
简介:本篇主要提供软件研发效能提升之美pdf下载
出版社:电子工业出版社
出版时间:2021-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

编辑推荐

全面:覆盖项目管理、DevOps、工具平台、组织建设等研发效能的全领域知识体系。

实战:揭秘一线大厂研发效能提升的实践内幕,助你规避误区,少走弯路。

权威:作者多年互联网大型公司研发效能建设的经验总结,收录行业知名大会热门演讲的精华内容。

先进:囊括研发效能提升的前沿技术与理念,与时俱进。


内容简介

《软件研发效能提升之美》汇聚了行业前沿的研发效能提升实践与案例,同时提炼出大量方法论和经验反思,以诙谐、幽默而又不失严谨、详实的风格,多角度、全方位覆盖研发效能领域的核心知识,深入浅出,发人深思。

全书采用从概要到细节、从方法论到案例、理论联系实际的写作思路。第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


精彩书摘

1.6.1从痛点入手

研发效能提升八项实践建议的第一项,是“从痛点入手”。很多时候,当我们手上拿着锤子的时候,看什么都像钉子。但是研发效能的提升恰好是反过来了,我们要先找到哪些是最碍眼的钉子,然后用体系化的方法论去打造合适的锤子。

所以在推行研发效能的早期阶段,我们通常会采用自下而上的策略,从一个个工程实践中的实际痛点(钉子)入手,从解决问题的角度打造研发效能提升的亮点,此时我们追求的是“短、平、快”,遵循的是将问题点逐个击破的原则。比如下面这些场景:

?本地编译耗时长:提供增量编译和分布式编译能力。

?本地测试困难,测试环境准备复杂且耗时长:基于Kubernetes的Pod提供一键搭建测试环境的能力。

?自动化测试用例数量大,执行回归时间过长:采用并发测试用例执行机制,使用几百、几千台测试执行机并行执行用例,实现用硬件资源换时间。

?自动化测试用例维护成本高:测试用例采用模块化和分层体系,实现低成本的自动化用例维护。

?测试数据准备困难:引入统一的测试数据服务(TestDataService)能力。

?研发后期阶段,代码递交集中,缺陷井喷:推行测试左移策略,鼓励研发自测,遵循“谁开发、谁测试、谁上线、谁值班”的原则。

?性能缺陷在研发后期发现,修复重测成本高居不下:从性能测试转变为性能工程,让性能融入软件研发的各个环节,而不是最后的一锤子买卖。

?安全问题频现:将安全测试能力纳入研发的全生命周期,实现DevSecOps,而不是早期的SDL(SecurityDevelopmentLifecycle,安全开发生命周期)。

?集群规模庞大,发布过程耗时过长:各个层级的并发部署能力,集群内节点的并发、集群间的并发等。

?项目的过程数据都是后期集中填充,失去度量意义:项目的过程数据由工具自动填充,不再依赖工程师手工输入。比如,开发完成的时间不再依赖于开发人员手工填写,而是由Jenkins构建完成后自动填写,以保证所有过程数据的真实有效性,从而为后面的度量和改进提供可靠的信息输入。

1.6.2从全局切入

第二项是“从全局切入”。很多时候我们会尝试去优化某个具体的环节,而忽略了全局优化的可能。

举个例子,我们去医院看病,在挂号时经常会出现排队半小时,而实际挂号可能就花费两分钟的情况,接下来很可能又是漫长的排队等待医生就诊,好不容易进入了诊室,可能问诊不到五分钟就又被要求去验血……整个过程中实际有效时间的占比很小。如果这个时候我们还试图去优化挂号本身的时间,而不去关注优化各个环节的等待时间,那显然是错误的方向。因此,效率的提升既要关注单个步骤的优化,也要专注减少步骤与步骤之间的无用等待。这一点体检中心就比公立医院做得好很多,我们很少会见到体检中心每个科室门口都大排长龙的情景,因为体检中心出于经济利益的考虑会关注吞吐量,会通过全局排队调度优化来实现更高的盈利。

回到软件研发领域,你会发现类似上面医院这种不合理的排队现象随处可见,比如软件缺陷的流转,软件需求的实现与交付,软件制品包发布等待,等等。这些也是提升研发效能需要重点关注的领域,需要从全局理清楚全流程,识别出等待浪费的时间,通过流程再造与优化实现全局效率的提升。

1.6.3用户获益

对于研发效能的提升,有一点我们必须牢记,那就是成功的标准不是研发效能平台的成功,而是客户的成功。只有客户获益才是检验研发效能项目成功的唯一标准,下面我们再总结一些要点。

伪需求:伪需求是指研发效能团队自己臆想出来的需求,是属于典型的“手里拿着锤子,看什么都像钉子”的典型案例。那么如何识别伪需求呢?识别标准其实很简单,就看用户是不是愿意和你分摊成本,如果业务线已经开始做了,或者想要开始做,那就说明那是业务线的刚需,如果研发效能平台能帮助用户提供方案,那么研发效能平台的接入就是水到渠成的事情。笔者见过很多这类刚需的例子,比如微服务架构下集成测试环境的搭建就是其中的典型。

结构问题:著名商业顾问刘润说过“结构不对,什么都不对”。比如,两个和尚分粥的故事想必大家都听过,一碗粥两个和尚要均分,但是分粥的和尚总想多喝点粥,那怎么才能做到无监管情况下的公平呢?教育分粥的和尚说出家人“以少吃为怀”吗?显然一旦没有了监管,他就会给自己多分点,解决这个问题的最好办法就是一个和尚分粥,另一个和尚选粥——这个体制就决定了分粥的均匀性。

因此,好的策略是承认每个人都是自私的,但是我们制定的策略要能够在人人都是自私的基础上获得全局利益的最大化。如果全局利益最大化是建立在要求每个人都是大公无私的基础上,那就是失败的设计,因为这必然会导致失败。回到研发效能提升这个问题上,我们必须抱着“不是我们的研发效能平台有多好,而是业务线用了以后有什么提升”的态度来定位自己,才能从结构上获得成功的筹码。

服务意识:理解了上面的观点,再来理解服务意识就很容易了。在研发效能平台落地的过程中,我们需要和业务线互助以实现双赢,业务线收获现成可用的方案,研发效能平台收获最佳实践的沉淀,这些最佳实践的沉淀是至关重要的,为后期的批量成功复制提供了技术基础。

1.6.4持续改进

持续改进是研发效能平台自身发展的必经之路。很多问题在开始时,我们的关注点是如何快、速简单地解决问题,但是当用户量和接入团队日益增长后,我们更需要关注解决方案的普适性和通用性。如果一开始就试图寻找完美的方案,那么必然会得不偿失。

比如,我们需要在Jenkins中通过hook机制去触发一些操作(比如代码静态扫描、单元测试等),最简单的做法就是在hook中实现操作的具体步骤,这种实现在开始的效率很高,也非常容易实现,但却不是最优的方案,因为hook中的代码只会被执行一次,而且hook越来越多以后,各种实现都散落在各个地方,难以维护,一旦有新的需要(比如要加入慢SQL扫描),就需要改hook实现,而且这种做法也违背了IaC(InfrastructureasCode)原则。

更好的做法是引入研发效能的消息中心,通过下游操作的订阅模式来实现未来的可扩展性。但是,如果我们从一开始就创建消息中心,实现的难度和成本都会大增,业务线有可能就等不及这个方案,从而研发效能的提升就无法如期落地。所以我们认为,研发效能的落地可以采取“先圈地、后改进”的策略。

1.6.5全局优化

研发效能提升的落地,光靠自下往上和光靠自上往下都是行不通的,而是应该双管齐下,“从两边往中间挤”才是切实可行的方案。

研发效能提升的初期,主要是靠“自下往上”的工程实践来实现各种痛点问题的各个击破,比如通过分布式编译来降低编译的时长,通过AI技术来自动生成单元测试的用例,通过分析代码递交历史自动推荐最合适的代码评审者等。通过这些专项的效率提升逐渐向管理层证明研发效能提升的实际价值,由此引起管理层对研发效能的重视,进而为管理层从上往下推进研发效能的提升打下基础。

随着研发效能实践逐渐进入深水区,单一领域效能提升的边际效应会逐渐递减,此时基于横向拉通的全局优化变得非常关键,自上往下的推动在此时将会起到关键的作用。很多横向跨部门的流程优化和整合必须借助管理层的力量才能有效地向前推进。

1.6.6效能平台架构的灵活性

这里我们先来讲两个概念:“唱戏的”和“搭台的”。刚开始做研发效能的时候,我们既是搭台的又是唱戏的,在研发效能平台(搭台)的基础上提供各业务线的解决方案(唱戏)。但是,当业务线的接入规模不断扩大的时候,各个垂直领域的多样化需求越来越多,我们已经很难应对各家的个性化非通用需求了(每家要唱的戏都不同)。此时,研发效能平台的开放能力就成为关键,它必须能够应对这种多样性,让业务线能够在平台上实现各自的个性化需求,所以研发效能平台本身的技术架构设计必须考虑可扩展性和灵活性。

比如,我们可以Jenkins持续集成工具视为一个平台,在这个平台上支持安装各种插件,以增强平台功能,从而实现平台架构的灵活性。

1.6.7杜绝“掩耳盗铃”

“掩耳盗铃”是我们在落地研发效能过程中经常会犯的错误。下面给出了一些研发效能的“最差实践”,读者可以在心里默默数一数被砸中几条。

?代码质量门禁Sonar设而不卡。

?单元测试只是执行,不写断言Assert。

?代码覆盖率形同虚设。

?PeerReview走过场。

?代码递交过于随意。

?监控超配,有报警但无人认领。

另一种掩耳盗铃的错误实践是普遍采用虚荣性指标来做度量效能,那么到底什么是虚荣性指标呢?虚荣性指标是指那些不能直接用来指导后续行动的指标,我们需要的是可以指导我们行动的可执行指标,可以参考以下内容。

?“接入Sonar的工程数”就是虚荣性指标,与之对应的可执行指标是“Sonar问题的增长趋势”和“Sonar问题的修复时长”。

?“系统用户数”就是虚荣性指标,与之对应的可执行指标是“DAU单日活跃用户数”和“MAU月活跃用户数”。

?“接入研发效能平台的项目数”就是虚荣性指标,与之对应的可执行指标是“百分之多少的项目使用过研发效能平台来完成开发测试和发布流程”。

总而言之,我们需要的是雪中送炭,而不是锦上添花。

1.6.8吃自己的“狗粮”

最后一点,吃自己的“狗粮”,意为“做自己研发效能平台的第一个用户”,研发效能平台本身的研发流程必须通过自己的平台来执行,这样才能站在用户的角度看待自己的方案,才能和业务线用户“共情”。

如果我们作为效能工具平台的研发团队,自己都不用自己的工具平台来完成研发过程,就很难要求别人也来使用我们的研发效能平台。基于这项理念,我们始终践行的做法是,研发效能团队主持开发的产品和解决方案,自己必须是第一个用户,同时我们自己必须认可其带来的价值,只有这样才能站在用户的视角来客观地评价我们的产品和方案,不至于出现“王婆卖瓜自卖自夸”的现象。


前言/序言

研发效能的那些事

研发效能是目前互联网企业和传统软件企业都高度关注的领域,头部大厂希望通过研发效能的提升,实现持续高效的产品交付,以应对日趋复杂的业务需求;而腰部厂商则希望通过研发效能的提升,实现弯道超车,充分发挥后来者居上的优势;还有更多中小型企业目睹国内互联网大厂对研发效能的重点投入,纷纷摩拳擦掌、跃跃欲试。一夜之间,似乎只有提升了研发效能,才能让企业在与竞争对手的较量中不落下风。

另外,一个火爆的概念背后,必然伴随着大量的偏见与纠葛。我们何尝不希望通过研发效能的提升,将软件生产力推向一个完美的顶峰,但事与愿违,不少研发效能实践最终都走进了困局,人们一度自嘲“只要努力搞,没有研发效能折腾不跨的团队”。种种乱象不禁让我们反思,研发效能究竟是神器,还是玄学?

微软现任CEO萨提亚·纳德拉说过这样一段话:

“Therecannotbeamoreimportantthingforanengineer,foraproductteam,thantoworkonthesystemsthatdriveourproductivity.SoIwould,anydayoftheweek,tradeofffeaturesforourownproductivity.”

“对工程师和产品团队来说,没有比构建一个能够提升研发效能的体系更重要的事了。为了提升研发效能,我愿意随时舍弃某些功能的交付。”

这段话将“研发效能First”的理念体现得淋漓尽致。

我们应当承认,时代已然改变,无论从互联网微创新的百花齐放来看,还是从全球市场发展的导向来看,“快鱼吃慢鱼”已经成为主流,大公司庞大的组织规模原先在市场竞争中占尽优势,如今却反而成为一种负担,小公司的快速反应和适应变化的能力成为击败大公司的“钥匙”。在这个背景下,研发效能甚至可以决定一家公司的兴盛衰亡。于是,各大公司争相投入研发效能提升,也就不足为奇了。

做好研发效能提升是不容易的,我们需要的不仅仅是前沿技术的加持,更重要的是理念的更新换代和优秀实践的传承。而这些,正是本书所希望带给读者的核心价值。我们不仅会告诉你“怎么做”,还会告诉你这么做的“缘由和故事”,呈现所有人都能学得会且带得走的研发效能实践。这样,也许若干年后,你重读本书,依然能够时读时新,有全新的收获。

本书结构

本书共分为8章,采用从概要到细节、从方法论到案例、理论联系实际的写作思路。

第1章和第2章主要对研发效能进行了由浅入深的解读,讲述了研发效能提升的基础思路和最佳实践,以及研发效能背后的人性和规律,同时对研发效能的未来进行了展望。

第3章聚焦于项目管理中的效能提升手段,以敏捷开发为主线,从多个角度、全方位剖析了项目管理中的提效方法和难点。

第4章聚焦于DevOps这一研发效能提升的重要实践,衍生并讲解了目前流行的DevSecOps、AIOps、DevPerfOps,以及混沌工程等内容,浓缩了目前业界DevOps的主流实践。

第5章和第6章立足于交付“干货”,总共介绍了12个大大小小的工具、系统和设计理念,帮助读者深入理解这些工具的建设过程,以及工具建设背后的考量。

第7章主要讲解了组织效能的提升手段,我们尽可能输出多种不同的组织建设思路和观点,同时总结和归纳出最佳实践和误区,帮助读者举一反三,灵活应用到自己的团队建设中。

第8章为案例篇,通过对四种形态迥异的公司的实践案例解读,多角度、全方位地呈现给读者研发效能提升的不同落地思路和做法。

虽然本书各章节相对独立,但我们依然建议读者按顺序阅读每个章节,以便循序渐进地了解研发效能的全貌与精髓。

致谢

最后,感谢所有致力于软件研发效能提升的同行们,本书中的不少实践案例和思路都来源于你们杰出的工作成果,在此表示衷心的感谢!

限于作者水平有限,文中难免存在纰漏之处,恳请广大读者批评指正。

吴骏龙茹炳晟

2021年秋