书籍详情
高效研发:硅谷研发效能方法与实践
作者:葛俊 著
出版社:机械工业出版社
出版时间:2022-01-01
ISBN:9787111698173
定价:¥89.00
购买这本书可以去
内容简介
内容介绍 本书以Facebook(Meta)等硅谷企业的研发经验为背景,结合作者17年的研发经验,讲解了如何实现个人和团队的高效研发。 全书主要从以下5个方面对硅谷的高效研发方法进行了总结,提供了非常系统的指导原则和实践指南。 (1)研发效能综述 主要了讲解研发效能的定义、模型,以及研发效能度量的正确方法。希望借此帮助读者梳理出研发效能的主脉络,构建一幅清晰的知识图谱。 (2)个人高效研发实践 主要讲解如何提高个人研发效能,具体涉及深度工作、Git、命令行、VIM、工具环境集成等内容,旨在帮助读者提高技术的专精程度和持续成长。 (3)研发流程优化 主要讲解研发流程优化的基本目标和原则、代码优化、分支管理、DevOps、团队协同等,希望帮助读者深入理解研发过程中的关键流程,以及流程优化的基本原则,从而能够针对自己的实际情况,找到合适的工程实践,让软件开发的整个流程更加顺畅、高效。 (4)团队高效研发实践 主要讲解团队高效研发实践过程中各关键步骤的高效工程方法,内容涉及研发环境搭建、代码审查、合理处理技术债、开源利弊分析、测试等,同时对研发流程及工程方法的趋势进行解读,希望帮助读者掌握这些具体工程方法的正确使用。 (5)管理和文化 系统分析了硅谷研发团队的管理和文化,尤其是Facebook的工程师文化,并根据作者在国内公司的具体落地经验,给出推荐的文化引入和建设方法。
作者简介
作者介绍 葛俊 资深研发效能专家,17年技术研发和管理经验。曾任职于微软、Facebook、华为,以及硅谷和国内的两家创业公司,担任研发效能团队负责人及CTO等角色。 在Facebook(Meta)任职期间,担任内部工具团队Tech Lead,负责知名开源开发工具集Phabricator。在华为任职期间,担任华为内部工具团队的首席架构师,高级产品总监兼执行总监。在研发团队有丰富的工作经验和带团队的经验,有主导推进研发效能的丰富经历。 曾多次被“全球架构师峰会”等大型会议邀请,做互联?技术研发效能方面的专题报告。
目录
前言 什么是研发效能,为什么要关注研发效能
第一部分 研发效能综述
第1章 高效学习、实践方法论3
1.1 使用黄金圈原则3
1.2 如何有效落地实践4
小测试7
第2章 研发效能定义及模型8
2.1 为什么要关注研发效能8
2.2 研发效能定义9
2.3 提高研发效能的“坑”9
2.4 研发活动的本质10
2.4.1 软件研发本质之一:流水线11
2.4.2 软件研发本质之二:灵活性12
2.5 研发效能模型12
小测试14
第3章 效能度量谜题15
3.1 研发效能度量的定义和作用16
3.2 效能度量的三个失败案例16
3.3 效能难以度量的三大原因18
3.4 效能度量的正面案例19
3.5 使用效能度量的根本原则20
3.6 正确使用效能度量的方法21
小测试27
第二部分 个人高效研发实践
第4章 精准打击目标:通过提高准确性来提高投入产出比32
4.1 以终为始,寻找最重要的任务33
4.1.1 自己定义任务33
4.1.2 聚焦目标,以终为始33
4.1.3 无情的筛选,少即是多34
4.2 追根究底,寻找最高效的解决方案34
4.3 高效沟通,利用信息的准确传递来寻找、调整目标35
4.3.1 同理心原则36
4.3.2 外在与内在同样重要36
4.3.3 冰山原则37
4.3.4 建设性冲突37
4.4 管理者视角38
第5章 唯快不破:如何利用速度提高个人研发效能39
5.1 应用高效实践提高完成任务的速度39
5.2 应用快速迭代的思路获取快速反馈40
5.2.1 完成比完美更重要40
5.2.2 让代码尽快运行起来41
5.2.3 设置本地代码检验机制42
5.2.4 尽早解决合并冲突43
5.3 管理者视角43
第6章 不仅是当下的成功:持续地提高个人研发效能45
6.1 精力管理45
6.1.1 拥抱无聊,控制手机依赖46
6.1.2 用反向行事日历来确保休息和高效工作46
6.2 使用80/20原则寻找研发活动中的关键因素47
6.3 对关键活动进行优化48
6.3.1 研发活动中长期有效的原则48
6.3.2 高频发生的活动49
6.4 目标驱动和兴趣驱动相结合51
6.5 管理者视角52
第7章 高效选用工具提高研发速度54
第8章 工程师常见工作任务的系统性工具优化56
8.1 第一个任务类别:操作系统上的通用操作56
8.2 第二个任务类别:输入和编辑59
8.3 第三个任务类别:知识管理62
8.4 第四个任务类别:浏览网页64
8.5 第五个任务类别:编程65
8.6 小结65
第9章 高效Git基本操作66
9.1 Git和代码原子性66
9.2 Git支持原子性的五种基本操作67
9.3 小结80
第10章 实现代码提交的原子性的Git工作流81
10.1 工作流一:使用一个分支完成所有需求的开发81
10.2 工作流二:使用多个分支完成所有需求的开发97
10.3 小结101
第11章 每个开发人员都应该学一些Vim104
11.1 Vim简介104
11.2 Vim的前世今生105
11.3 Vim的两大特点105
11.4 小结108
第12章 高效学习Vim的实用技巧110
12.1 学习Vim的命令模式和命令组合方式110
12.2 学习Vim最常用的命令113
12.3 在更广泛的工作场景中应用Vim技能118
12.4 小结120
第13章 高效命令行环境选择和设置122
13.1 为什么要使用命令行122
13.2 命令行配置的四个步骤124
13.3 小结133
第14章 研发场景的有效命令行工具134
14.1 日常操作中的工具和技巧134
14.2 开发中的常见工作143
14.3 小结146
第15章 工具的高效集成147
15.1 工具集成147
15.1.1 使用管道对命令行工具进行集成147
15.1.2 IDE和周边工具集成150
15.2 提高工具一致性151
15.3 小结153
第三部分 研发流程优化
第16章 研发流程优化的基本目标和原则157
16.1 寻找用户价值157
16.2 提高用户价值的流动效率158
16.3 小结162
第17章 代码入库之前的流程优化163
17.1 规范化、自动化核心步骤163
17.2 提供快速反馈,促进增量开发166
17.3 小结168
第18章 代码入库之后的流程优化169
18.1 三个“持续”的定义和作用169
18.2 CI/CD流水线的原则及具体实践171
18.3 案例:Facebook如何落地CI/CD来提高效能172
18.4 小结174
第19章 选择适当的分支管理策略提高流程和产品质量175
19.1 共主干分支管理和发布策略175
19.2 共分支管理策略的优点178
19.3 其他主要分支方式180
19.4 如何选择、应用分支管理策略181
19.5 小结182
第20章 使用全栈思路打通开发和运维184
20.1 DevOps和SRE的异同184
20.2 DevOps和SRE的目标、原则185
20.3 落地实践187
20.4 小结189
第21章 研发流程中的高效信息流通190
21.1 团队成员愿意共享是有效沟通的前提191
21.2 设计流程和使用工具,推动研发信息高效沟通192
21.3 沟通工具的选用技巧194
21.4 小结195
第四部分 团队高效研发实践
第22章 研发环境:让开发人员不再操心环境199
22.1 开发机器200
22.2 IDE200
22.3 本地环境与联调环境201
22.4 开发过程中使用的各种工具、数据和配置203
22.5 测试环境与类生产环境203
22.6 提供高效研发环境的原则204
22.7 小结204
第23章 代码审查:高效代码审查实践206
23.1 代码审查的作用206
23.2 代码审查方法的分类207
23.3 代码审查方法选择的三个成功案例210
23.4 小结212
第24章 代码审查:如何有效引入、执行代码审查213
24.1 引入代码审查的步骤和方法213
24.2 推进代码审查的两个关键操作216
24.3 推行代码审查的两个关键原则218
24.4 小结220
第25章 合理处理技术债:让快速研发可持续222
25.1 技术债的成因223
25.2 技术债的影响223
25.3 处理技术债的两个基本原则223
25.4 控制技术债的四个步骤224
25.5 小结226
第26章 开源:从Phabricator的开源历程看开源利弊228
26.1 Phabricator开源过程的关键步骤229
26.2 开源对公司的利弊233
26.3 小结234
第27章 高效上云:运用云计算提高效能235
27.1 云计算的优势235
27.2 云计算的挑战及解决方法238
27.3 小结239
第28章 测试左移:测试如何应对新的开发模式240
28.1 测试左移的定义240
28.2 测试左移的四个原则241
28.3 小结243
第29章 测试右移与高效部署:应对频繁发布带来的挑战244
29.1 三种部署方式的定义244
29.2 目标246
29.3 原则247
29.4 具体实践247
29.4.1 部署阶段的实践247
29.4.2 发布阶段的实践249
29.4.3 发布后阶段的实践249
29.5 小结250
第30章 持续进步:研发流程、工程方法趋势解读和展望251
30.1 协作方式的发展趋势251
30.2 云计算平台的发展趋势252
30.3 应用开发的发展趋势254
30.4 AI方面的发展趋势255
30.5 小结256
第五部分 管理和文化
第31章 业务目标和技术目标两手抓:打造高效团队的三个步骤259
31.1 寻找目标259
31.2 目标管理260
31.3 任务执行261
31.4 小结263
第32章 从奈飞的著名PPT谈硅谷公司文化264
32.1 定义核心价值观265
32.2 在招聘、流程方面设计方案推动文化建设266
32.3 持续推动文化建设267
32.4 关于奈飞公司文化的思考268
32.5 小结268
第33章 Facebook创造力引擎:工程师文化270
33.1 Facebook的工程师文化270
33.2 Facebook推行工程师文化的具体实践271
33.3 个人角度感受Facebook工程师文化带来的效果272
33.4 小结273
第34章 Facebook工程师文化实践三大原则之一:让员工做感兴趣的事274
34.1 Facebook工程师文化落地的三大原则274
34.2 让员工做感兴趣的事275
34.3 Hackathon落地经验277
34.4 小结278
第35章 Facebook工程师文化实践三大原则之二:让员工拥有信息和权限279
35.1 让员工拥有信息279
35.2 让员工拥有权限281
35.3 Facebook之外的落地经验282
35.4 小结283
第36章 Facebook工程师文化实践三大原则之三:绩效调节284
36.1 360度绩效考评系统285
36.2 360度绩效考评系统的两个原则286
36.3 360度绩效考评系统的问题287
36.4 绩效考评落地实践287
36.5 小结288
结束语 超越昨天的自己,享受成长的快乐289
第一部分 研发效能综述
第1章 高效学习、实践方法论3
1.1 使用黄金圈原则3
1.2 如何有效落地实践4
小测试7
第2章 研发效能定义及模型8
2.1 为什么要关注研发效能8
2.2 研发效能定义9
2.3 提高研发效能的“坑”9
2.4 研发活动的本质10
2.4.1 软件研发本质之一:流水线11
2.4.2 软件研发本质之二:灵活性12
2.5 研发效能模型12
小测试14
第3章 效能度量谜题15
3.1 研发效能度量的定义和作用16
3.2 效能度量的三个失败案例16
3.3 效能难以度量的三大原因18
3.4 效能度量的正面案例19
3.5 使用效能度量的根本原则20
3.6 正确使用效能度量的方法21
小测试27
第二部分 个人高效研发实践
第4章 精准打击目标:通过提高准确性来提高投入产出比32
4.1 以终为始,寻找最重要的任务33
4.1.1 自己定义任务33
4.1.2 聚焦目标,以终为始33
4.1.3 无情的筛选,少即是多34
4.2 追根究底,寻找最高效的解决方案34
4.3 高效沟通,利用信息的准确传递来寻找、调整目标35
4.3.1 同理心原则36
4.3.2 外在与内在同样重要36
4.3.3 冰山原则37
4.3.4 建设性冲突37
4.4 管理者视角38
第5章 唯快不破:如何利用速度提高个人研发效能39
5.1 应用高效实践提高完成任务的速度39
5.2 应用快速迭代的思路获取快速反馈40
5.2.1 完成比完美更重要40
5.2.2 让代码尽快运行起来41
5.2.3 设置本地代码检验机制42
5.2.4 尽早解决合并冲突43
5.3 管理者视角43
第6章 不仅是当下的成功:持续地提高个人研发效能45
6.1 精力管理45
6.1.1 拥抱无聊,控制手机依赖46
6.1.2 用反向行事日历来确保休息和高效工作46
6.2 使用80/20原则寻找研发活动中的关键因素47
6.3 对关键活动进行优化48
6.3.1 研发活动中长期有效的原则48
6.3.2 高频发生的活动49
6.4 目标驱动和兴趣驱动相结合51
6.5 管理者视角52
第7章 高效选用工具提高研发速度54
第8章 工程师常见工作任务的系统性工具优化56
8.1 第一个任务类别:操作系统上的通用操作56
8.2 第二个任务类别:输入和编辑59
8.3 第三个任务类别:知识管理62
8.4 第四个任务类别:浏览网页64
8.5 第五个任务类别:编程65
8.6 小结65
第9章 高效Git基本操作66
9.1 Git和代码原子性66
9.2 Git支持原子性的五种基本操作67
9.3 小结80
第10章 实现代码提交的原子性的Git工作流81
10.1 工作流一:使用一个分支完成所有需求的开发81
10.2 工作流二:使用多个分支完成所有需求的开发97
10.3 小结101
第11章 每个开发人员都应该学一些Vim104
11.1 Vim简介104
11.2 Vim的前世今生105
11.3 Vim的两大特点105
11.4 小结108
第12章 高效学习Vim的实用技巧110
12.1 学习Vim的命令模式和命令组合方式110
12.2 学习Vim最常用的命令113
12.3 在更广泛的工作场景中应用Vim技能118
12.4 小结120
第13章 高效命令行环境选择和设置122
13.1 为什么要使用命令行122
13.2 命令行配置的四个步骤124
13.3 小结133
第14章 研发场景的有效命令行工具134
14.1 日常操作中的工具和技巧134
14.2 开发中的常见工作143
14.3 小结146
第15章 工具的高效集成147
15.1 工具集成147
15.1.1 使用管道对命令行工具进行集成147
15.1.2 IDE和周边工具集成150
15.2 提高工具一致性151
15.3 小结153
第三部分 研发流程优化
第16章 研发流程优化的基本目标和原则157
16.1 寻找用户价值157
16.2 提高用户价值的流动效率158
16.3 小结162
第17章 代码入库之前的流程优化163
17.1 规范化、自动化核心步骤163
17.2 提供快速反馈,促进增量开发166
17.3 小结168
第18章 代码入库之后的流程优化169
18.1 三个“持续”的定义和作用169
18.2 CI/CD流水线的原则及具体实践171
18.3 案例:Facebook如何落地CI/CD来提高效能172
18.4 小结174
第19章 选择适当的分支管理策略提高流程和产品质量175
19.1 共主干分支管理和发布策略175
19.2 共分支管理策略的优点178
19.3 其他主要分支方式180
19.4 如何选择、应用分支管理策略181
19.5 小结182
第20章 使用全栈思路打通开发和运维184
20.1 DevOps和SRE的异同184
20.2 DevOps和SRE的目标、原则185
20.3 落地实践187
20.4 小结189
第21章 研发流程中的高效信息流通190
21.1 团队成员愿意共享是有效沟通的前提191
21.2 设计流程和使用工具,推动研发信息高效沟通192
21.3 沟通工具的选用技巧194
21.4 小结195
第四部分 团队高效研发实践
第22章 研发环境:让开发人员不再操心环境199
22.1 开发机器200
22.2 IDE200
22.3 本地环境与联调环境201
22.4 开发过程中使用的各种工具、数据和配置203
22.5 测试环境与类生产环境203
22.6 提供高效研发环境的原则204
22.7 小结204
第23章 代码审查:高效代码审查实践206
23.1 代码审查的作用206
23.2 代码审查方法的分类207
23.3 代码审查方法选择的三个成功案例210
23.4 小结212
第24章 代码审查:如何有效引入、执行代码审查213
24.1 引入代码审查的步骤和方法213
24.2 推进代码审查的两个关键操作216
24.3 推行代码审查的两个关键原则218
24.4 小结220
第25章 合理处理技术债:让快速研发可持续222
25.1 技术债的成因223
25.2 技术债的影响223
25.3 处理技术债的两个基本原则223
25.4 控制技术债的四个步骤224
25.5 小结226
第26章 开源:从Phabricator的开源历程看开源利弊228
26.1 Phabricator开源过程的关键步骤229
26.2 开源对公司的利弊233
26.3 小结234
第27章 高效上云:运用云计算提高效能235
27.1 云计算的优势235
27.2 云计算的挑战及解决方法238
27.3 小结239
第28章 测试左移:测试如何应对新的开发模式240
28.1 测试左移的定义240
28.2 测试左移的四个原则241
28.3 小结243
第29章 测试右移与高效部署:应对频繁发布带来的挑战244
29.1 三种部署方式的定义244
29.2 目标246
29.3 原则247
29.4 具体实践247
29.4.1 部署阶段的实践247
29.4.2 发布阶段的实践249
29.4.3 发布后阶段的实践249
29.5 小结250
第30章 持续进步:研发流程、工程方法趋势解读和展望251
30.1 协作方式的发展趋势251
30.2 云计算平台的发展趋势252
30.3 应用开发的发展趋势254
30.4 AI方面的发展趋势255
30.5 小结256
第五部分 管理和文化
第31章 业务目标和技术目标两手抓:打造高效团队的三个步骤259
31.1 寻找目标259
31.2 目标管理260
31.3 任务执行261
31.4 小结263
第32章 从奈飞的著名PPT谈硅谷公司文化264
32.1 定义核心价值观265
32.2 在招聘、流程方面设计方案推动文化建设266
32.3 持续推动文化建设267
32.4 关于奈飞公司文化的思考268
32.5 小结268
第33章 Facebook创造力引擎:工程师文化270
33.1 Facebook的工程师文化270
33.2 Facebook推行工程师文化的具体实践271
33.3 个人角度感受Facebook工程师文化带来的效果272
33.4 小结273
第34章 Facebook工程师文化实践三大原则之一:让员工做感兴趣的事274
34.1 Facebook工程师文化落地的三大原则274
34.2 让员工做感兴趣的事275
34.3 Hackathon落地经验277
34.4 小结278
第35章 Facebook工程师文化实践三大原则之二:让员工拥有信息和权限279
35.1 让员工拥有信息279
35.2 让员工拥有权限281
35.3 Facebook之外的落地经验282
35.4 小结283
第36章 Facebook工程师文化实践三大原则之三:绩效调节284
36.1 360度绩效考评系统285
36.2 360度绩效考评系统的两个原则286
36.3 360度绩效考评系统的问题287
36.4 绩效考评落地实践287
36.5 小结288
结束语 超越昨天的自己,享受成长的快乐289
猜您喜欢