善工利器 : 程序員管理範式 Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams

Mickey W. Mantle,Ron Lichty

  • 善工利器 : 程序員管理範式-preview-1
  • 善工利器 : 程序員管理範式-preview-2
善工利器 : 程序員管理範式-preview-1

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

商品描述

這是一本系統闡述在面對容易失控的軟件開發團隊時,如何管理、建設和賦能團隊,以及成功交付開發成果的書。本書總結了兩位作者多年的軟件開發實踐經驗和軟件團隊管理經驗,通過深刻的觀察和分析,圍繞軟件開發管理的核心問題——人的管理,講解如何真正理解程序員、如何找到合適的程序員、如何與程序員順暢地溝通等困擾大家已久的問題,進而擴展到如何以人為本地建設團隊、管理人員、管理項目。相較於第1 版(《告別失控:軟件開發團隊管理必讀》),第2 版(本書)增加瞭如何招聘和培養程序員,並搭建卓有成效的團隊的相關內容。

作者簡介

作者
[美]米奇·W. 蒙托(Mickey W. Mantle)
從事軟件開發工作超過50 年,作為軟件和硬件產品創建者、管理者和領導者,先後供職於Evans & Sutherland、Pixar、Br?derbund Software和Gracenote公司。他現在從事移動/平板應用開發、寫作和諮詢工作。
他的經驗包括指導全球的研發團隊和管理跨職能的團隊進行7×24 小時的高效工作以交付成功的產品。憑藉在印度、俄羅斯、加拿大、日本和韓國挑選、創建和管理離岸開發機構的經驗,他對使用跨時區、跨地域的不同人員和團隊進行軟件開發所面臨的管理挑戰有深刻的見解。


[美]羅恩·利克蒂(Ron Lichty),從事軟件開發工作超過35 年,歷任程序設計經理、開發總監、產品與工程副總裁,先後供職於蘋果、富士通、Schwab、斯坦福大學。他是6家創業公司的顧問,也是矽谷歷史悠久的開發者組織SVForum的董事會成員。他曾開設敏捷和Scrum相關的演講和在線講座。


譯者
王小剛,《軟技能:代碼之外的生存指南》和《軟技能2:軟件開發者職業生涯指南》譯者。畢業於西安電子科技大學計算機學院,“計算機及應用”專業,研究生學歷;曾先後服務於華為、IBM、中國移動無線數據研發中心,參與過3G(第3代無線通信技術)基站、MISC(移動互聯網服務中心)等產品的研發工作,擔任過項目經理、質量保證經理、質量總監等職務。
他是業界知名的諮詢顧問和培訓講師,擁有NPDP及NPDP認證講師、PMP、PBA、ACP、CSM、CAL等多項認證資質,華為雲MVP(最有價值專家,授予領域:產品研發管理),六西格瑪黑帶;致力於產品研發管理、項目管理和團隊管理等領域的研究工作,幫助研發企業持續提升產品創新與研發管理能力,先後為100多家企業的超過30000名各級各類管理人員和研發人員提供過諮詢培訓服務。


(譯者)陳連生,敏捷從業者、諮詢師,在互聯網、IT行業具有超過15年工作經驗,在互聯網以及軟件領域的產品研發、敏捷項目管理、DevOps落地等方面有豐富的經驗。
在他的敏捷諮詢師的生涯中,他為十餘家公司提供過敏捷轉型與研發效能提升等方面的輔導,也在多家諮詢客戶內部建立起完整的產品研發體系,從源頭幫助企業開發出貼合市場要求的產品並取得市場競爭優勢。
他是EXIN Agile Scrum Master、EXIN Agile Business Professional以及EXIN DevOps Professional等敏捷課程以及PMI-PBA、NPDP 等產品研發類課程的授權講師,並以佈道師的身份,言傳身教地將敏捷、產品研發等理念與實踐推廣到企業。

目錄大綱

第 1 章 程序員為何難以管理 / 1
1.1 程序員的特點 / 3
1.2 優秀的程序設計經理從何而來 / 6

第 2 章 了解程序員 / 8
2.1 程序設計工作的不同類型 / 9
2.1.1 嵌入式程序員和物聯網程序員 / 9
2.1.2 前端程序員 / 10
2.1.3 後端程序員 / 10
2.1.4 數據庫程序員 / 11
2.1.5 Web 開發人員及其他腳本編寫者 / 12
2.1.6 全棧程序員 / 12
2.1.7 DevOps / 13
2.1.8 DevSecOps / 14
2.2 程序員的不同類型 / 15
2.2.1 系統工程師/架構師 / 15
2.2.2 系統程序員 / 15
2.2.3 應用程序員 / 16
2.2.4 非真正意義上的程序員 / 17
2.3 領域知識 / 17
2.4 程序員的工作要求與能力 / 18
2.5 僱傭關係類型 / 22
2.5.1 內部員工 / 22
2.5.2 遠程員工 / 23
2.5.3 合同製員工 / 23
2.5.4 根據合同管理團隊和外包公司 / 24
2.6 代溝 / 24
2.7 個性特點 / 27
2.7.1 左腦型與右腦型 / 28
2.7.2 夜晚型與白天型 / 29
2.7.3 “牛仔”與“農夫” / 29
2.7.4 “英雄” / 30
2.7.5 內向的人 / 31
2.7.6 憤世嫉俗的人 / 31
2.7.7 “奇葩” / 31
2.8 本章總結 / 32
2.9 工具 / 32

第3 章 尋找並延攬出類拔萃的程序員 / 33
3.1 確定要招聘哪種程序員 / 35
3.2 編寫崗位描述 / 36
3.3 溝通招聘需求 / 40
3.4 招聘全職員工 / 41
3.4.1 招聘工作一直在路上 / 42
3.4.2 招聘預算 / 43
3.4.3 招聘案例分析 / 44
3.4.4 內部推薦 / 46
3.4.5 高效的招聘 / 47
3.4.6 招聘小貼士 / 48
3.5 招聘合同製員工 / 50
3.6 審查簡歷 / 51
3.7 縮小面試範圍 / 52
3.8 準備面試 / 53
3.9 面試 / 59
3.10 做出決定僱用一位候選人 / 62
3.11 給候選人發出恰如其分的錄用通知 / 65
3.12 持續跟進,直到候選人答應入職 / 71
3.13 本章總結 / 71
3.14 工具 / 72

第4 章 幫助新員工順利入職 / 73
4.1 引導新員工儘早入職 / 73
4.2 為新員工的到來做好準備 / 75
4.3 第 一天必須要做的事 / 76
4.4 向新員工介紹公司 / 79
4.5 確保新員工成功融入團隊 / 80
4.6 對新員工最初的預期 / 82
4.7 本章總結 / 84
4.8 工具 / 85

第5 章 成為高效的程序設計經理:向下管理 / 86
5.1 贏得技術層面的尊重 / 86
5.2 招聘出類拔萃的程序員 / 92
5.3 錘煉現有的團隊,強化他們的技能 / 92
5.3.1 因人制宜,因人施“管” / 92
5.3.2 引導 / 97
5.3.3 儀錶盤 / 97
5.3.4 保護團隊 / 98
5.4 績效考核和改進 / 100
5.4.1 設立目標 / 100
5.4.2 績效評估 / 102
5.4.3 清楚何時止損 / 107
5.4.4 裁退清單 / 109
5.5 人員組成結構方面的考量要素 / 109
5.5.1 人員配置 / 109
5.5.2 組織 / 114
5.5.3 職能化程序設計團隊 / 120
5.5.4 跨職能團隊 / 121
5.5.5 敏捷團隊 / 123
5.6 對功能失調的組織進行故障診斷 / 123
5.7 交付成果和慶祝勝利 / 124
5.8 本章總結 / 124
5.9 工具 / 125

第6 章 成為高效的程序設計經理:向上管理、對外管理以及自我管理 / 126
6.1 向上管理 / 126
6.1.1 了解你的領導 / 127
6.1.2 準備好溝通材料 / 128
6.1.3 了解你領導的領導 / 129
6.1.4 時機 / 130
6.1.5 成為模範員工 / 131
6.1.6 小結 / 132
6.2 對外管理 / 132
6.2.1 與部門內的人合作 / 132
6.2.2 了解其他部門 / 133
6.2.3 有效利用重要的職能部門,獲得他們的支持和協助 / 135
6.2.4 管理跨公司關係 / 139
6.2.5 小結 / 145
6.3 自我管理 / 145
6.3.1 個人風格 / 146
6.3.2 時間管理能力(優先級管理) / 148
6.3.3 溝通管理能力 / 150
6.3.4 管理實踐 / 153
6.3.5 跟踪管理能力 / 157
6.3.6 虛心好學、處處請教的能力 / 158
6.3.7 小結 / 159
6.4 本章總結 / 159
6.5 工具 / 160

經驗法則與至理名言 / 161
管理中面臨的挑戰 / 163
人員管理 / 181
管理團隊,順利交付 / 204

第7 章 激勵程序員 / 222
7.1 激勵理論 / 222
7.1.1 馬斯洛的需求層次理論 / 222
7.1.2 麥格雷戈的X-Y 理論 / 224
7.1.3 赫茨伯格的激勵因素和保健因素理論 / 225
7.2 適用於程序員的激勵因素 / 226
7.3 理論付諸實踐 / 229
7.4 保健因素—缺乏會導致不滿的因素 / 230
7.4.1 贏得員工的尊重 / 230
7.4.2 趣味性 / 234
7.4.3 學習與成長 / 235
7.4.4 良好的工作條件 / 236
7.4.5 合理的公司政策和管理 / 241
7.4.6 愛人以德 / 243
7.5 關鍵激勵因素 / 247
7.5.1 改變世界 / 248
7.5.2 學習與成長 / 249
7.5.3 工具和技術 / 250
7.5.4 認可與讚許 / 251
7.5.5 趣味性 / 252
7.5.6 利益 / 253
7.6 個人承諾 / 254
7.7 對新技術的攻守之道 / 256
7.8 了解你的程序員的動力—從頭開始 / 257
7.9 本章總結 / 258
7.10 工具 / 259

第8 章 建立成功的程序設計文化 / 260
8.1 準確定義“成功”的概念 / 261
8.2 程序設計文化 / 261
8.3 公司文化 / 262
8.3.1 化繁為簡,降低公司文化的複雜度 / 263
8.3.2 趨利避害,遠離公司的負面文化 / 264
8.3.3 彈斤估兩:技術在你的公司中扮演什麼樣的角色 / 265
8.3.4 探本溯源:哪種力量推動你的公司的發展 / 266
8.4 成功的程序設計文化的特徵 / 268
8.4.1 互相尊重 / 269
8.4.2 創新 / 269
8.4.3 合規 / 271
8.4.4 高品質交付 / 271
8.4.5 高效率交流 / 272
8.4.6 虛擬團隊間的溝通 / 273
8.4.7 公平 / 275
8.4.8 授權 / 276
8.4.9 職業精神 / 277
8.4.10 直面問題 / 277
8.4.11 追求卓越 / 278
8.4.12 獎勵程序設計中的卓越表現 / 279
8.4.13 團隊精神和協作 / 279
8.4.14 激情 / 279
8.4.15 客戶至上 / 280
8.4.16 持續學習 / 281
8.4.17 良好的環境 / 282
8.5 本章總結 / 283
8.6 工具 / 283

第9 章 成功管理軟件交付過程 / 284
9.1 激勵目標 / 285
9.2 定義“成功” / 286
9.2.1 識別無法調整的交付日期 / 288
9.2.2 獎勵計劃 / 289
9.3 確保需求清晰 / 290
9.3.1 通過合作來進行優先級排序 / 293
9.3.2 把需求限制在“做什麼”而不是“如何做” / 296
9.3.3 力求取悅客戶 / 297
9.4 定義“完成” / 298
9.5 估算所需工作 / 300
9.6 確保適當的架構與設計 / 306
9.6.1 多少設計才足夠 / 308
9.6.2 概念論證、原型和Spike 的價值 / 309
9.6.3 進行設計評審 / 310
9.7 支持工作 / 310
9.7.1 你需要一個計劃 / 313
9.7.2 確定項目的節奏 / 315
9.7.3 設立共同認可的里程碑 / 315
9.7.4 確保每個人都在溝通 / 316
9.7.5 聚焦於使命 / 318
9.7.6 消除障礙 / 319
9.7.7 確保達成商定好的標準與需求 / 320
9.7.8 採用測試驅動開發 / 321
9.7.9 堅持代碼審查 / 322
9.8 交付上線 / 323
9.8.1 不再增加新功能 / 324
9.8.2 運行產品 / 324
9.8.3 準備好宣布成功以及開啟更新版本的工作 / 325
9.8.4 知道何時減少損失 / 326
9.8.5 OEM 或國際版 / 327
9.9 圓滿完成 / 328
9.9.1 慶祝 / 328
9.9.2 回顧 / 329
9.9.3 分享 / 332
9.9.4 重構 / 332
9.9.5 小版本升級 / 332
9.10 本章總結 / 333
9.11 工具 / 333

第 10 章 敏捷團隊中的管理者 / 334
10.1 為什麼管理者可能會覺得被冷落 / 335
10.2 敏捷如何改變管理者職責 / 336
10.3 敏捷組織中管理者的職責 / 338
10.4 敏捷組織結構調整如何改變管理者的職責 / 339
10.5 敏捷團隊中管理者的十大關鍵職責 / 342
10.5.1 培養敏捷文化 / 343
10.5.2 擁抱敏捷價值觀 / 344
10.5.3 輔導和指導良好的敏捷實踐 / 348
10.5.4 消除敏捷誤區 / 351
10.5.5 銘記敏捷模式和反模式 / 356
10.5.6 牽頭組建跨專業團隊的實踐社區 / 360
10.5.7 消除障礙 / 361
10.5.8 諮詢與輔導 / 362
10.5.9 僱用 / 363
10.5.10 解僱 / 364
10.6 本章總結 / 364
10.7 工具 / 365