高效研發:矽谷研發效能方法與實踐

葛俊

  • 出版商: 機械工業
  • 出版日期: 2022-01-05
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 304
  • 裝訂: 平裝
  • ISBN: 7111698177
  • ISBN-13: 9787111698173
  • 相關分類: DevOpsVersion Control
  • 銷售排行: 🥉 2023/4 簡體中文書 銷售排行 第 3 名

    立即出貨

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

相關主題

商品描述

本書以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