本書是軟件開發(fā)界的傳奇人物羅伯特·C. 馬。ā磅U勃大叔”)對(duì)敏捷發(fā)展歷程的回顧,對(duì)敏捷最初用意的重述,對(duì)敏捷價(jià)值觀和原則的傳達(dá)。本書首先概述敏捷的歷史、敏捷的全貌;然后說明敏捷出現(xiàn)的緣由;接著講解敏捷的業(yè)務(wù)實(shí)踐、團(tuán)隊(duì)實(shí)踐和技術(shù)實(shí)踐,介紹成就敏捷的因素,還談到敏捷轉(zhuǎn)型中常見的問題與困難;最后提出軟件匠藝?yán)砟睢?本書適合開發(fā)人員、測(cè)試人員、管理人員、項(xiàng)目經(jīng)理、業(yè)務(wù)人員等軟件行業(yè)從業(yè)者閱讀。
·回顧敏捷的歷史,重述敏捷最初的用意,闡述敏捷的本質(zhì)
·澄清長(zhǎng)久以來人們對(duì)敏捷的誤解與混淆,讓敏捷回歸正途
·正本清源,為軟件行業(yè)從業(yè)者講述敏捷的價(jià)值觀與原則
·給出敏捷開發(fā)人員面臨的關(guān)鍵問題的實(shí)用答案
《敏捷宣言》簽署近20年后,軟件開發(fā)界的傳奇人物羅伯特·C. 馬丁(“鮑勃大叔”)重出江湖,為新一代軟件行業(yè)從業(yè)者——不論是程序員還是非程序員——講述敏捷的價(jià)值觀與原則。馬丁著有《代碼整潔之道》等極具影響力的軟件開發(fā)指導(dǎo)性著作,也是敏捷最初的奠基人之一。如今,在本書中,他澄清了長(zhǎng)久以來人們對(duì)敏捷的誤解與混淆,重述敏捷最初的用意。
馬丁明確地闡述了敏捷的本質(zhì):敏捷雖然是一種幫助小團(tuán)隊(duì)運(yùn)作小項(xiàng)目的小方法,但它對(duì)整個(gè)IT 行業(yè)有著巨大的影響,因?yàn)槿魏未箜?xiàng)目都是由若干小項(xiàng)目組成的。他將自己50年的從業(yè)經(jīng)驗(yàn)融入平實(shí)的文字,展示了敏捷如何幫助軟件行業(yè)從業(yè)者達(dá)到真正的專業(yè)水準(zhǔn)。
書中的具體內(nèi)容包括:
● 回歸本源——敏捷從哪里來,現(xiàn)狀如何,應(yīng)該堅(jiān)守的底線是什么;
● 理解Scrum 的來源和正確用法;
● 掌握敏捷業(yè)務(wù)實(shí)踐的精髓,從小步發(fā)布、驗(yàn)收測(cè)試,到完整團(tuán)隊(duì)的溝通;
● 探尋敏捷團(tuán)隊(duì)中人與人之間、人與產(chǎn)品之間的關(guān)系;
● 重拾不可或缺的敏捷技術(shù)實(shí)踐,包括測(cè)試驅(qū)動(dòng)開發(fā)、重構(gòu)、簡(jiǎn)單設(shè)計(jì)、結(jié)對(duì)編程;
● 理解敏捷價(jià)值觀與匠藝精神在敏捷團(tuán)隊(duì)中的重要意義。
如果想從敏捷中獲益,沒有捷徑可走:必須把敏捷用對(duì)。不管你是開發(fā)人員、測(cè)試人員、管理人員、項(xiàng)目經(jīng)理還是客戶,本書都會(huì)告訴你如何把敏捷用對(duì)。
羅伯特·C. 馬。≧obert C. Martin)世界級(jí)軟件開發(fā)大師,設(shè)計(jì)模式和敏捷開發(fā)先驅(qū),敏捷聯(lián)盟首任主席,C++ Report雜志前主編。他從20世紀(jì)70年代起就是一名程序員,被后輩程序員尊稱為“鮑勃大叔”(Uncle Bob)。
他是Clean Coders網(wǎng)站的創(chuàng)始人,這個(gè)網(wǎng)站為軟件開發(fā)者提供在線視頻培訓(xùn)。他也是“鮑勃大叔咨詢公司”(Uncle Bob Consulting LLC)的創(chuàng)始人,這家公司為世界各地的大企業(yè)提供軟件咨詢、培訓(xùn)和技能發(fā)展服務(wù)。他的著作有《代碼整潔之道》《代碼整潔之道:程序員的職業(yè)素養(yǎng)》《敏捷整潔之道:回歸本源》《架構(gòu)整潔之道》《敏捷軟件開發(fā):原則、模式與實(shí)踐》等。
目 錄
Chapter 1 Introduction to Agile / 介紹敏捷 1
History of Agile / 敏捷的歷史 3
Snowbird / 雪鳥會(huì)議 10
After Snowbird / 雪鳥會(huì)議之后 13
Agile Overview / 敏捷全貌 14
The Iron Cross / 鐵十字 15
Charts on the Wall / 墻上的圖 15
The First Thing You Know / 你知道的第 一件事 18
The Meeting / 會(huì)議 18
The Analysis Phase / 分析階段 19
The Design Phase / 設(shè)計(jì)階段 20
The Implementation Phase / 實(shí)施階段 21
The Death March Phase / 死亡行軍階段 22
Hyperbole / 夸張嗎 23
A Better Way / 更好的方式 23
Iteration Zero / 迭代0 24
Agile Produces Data / 敏捷產(chǎn)出數(shù)據(jù) 25
Hope versus Management / 幻想與管理 27
Managing the Iron Cross / 管理鐵十字 27
Business Value Order / 業(yè)務(wù)價(jià)值排序 31
Here Endeth the Overview / 全貌至此結(jié)束 31
Circle of Life / 生命之環(huán) 31
Conclusion / 結(jié)論 35
Chapter 2 The Reasons for Agile / 敏捷的理由 37
Professionalism / 專業(yè)性 38
Software Is Everywhere / 到處是軟件 39
We Rule the World / 程序員統(tǒng)治世界 41
The Disaster / 災(zāi)難 42
Reasonable Expectations / 合理的期望 43
We Will Not Ship Shyt! / 我們不會(huì)交付一堆垃圾! 43
Continuous Technical Readiness / 從技術(shù)上隨時(shí)做好交付準(zhǔn)備 45
Stable Productivity / 穩(wěn)定的生產(chǎn)率 46
Inexpensive Adaptability / 劃算的適應(yīng)力 49
Continuous Improvement / 持續(xù)改進(jìn) 50
Fearless Competence / 無畏之力 50
QA Should Find Nothing / QA應(yīng)該什么也找不到 52
Test Automation / 測(cè)試自動(dòng)化 52
We Cover for Each Other / 我們互相掩護(hù) 54
Honest Estimates / 誠(chéng)實(shí)的估算 54
You Need to Say“No” / 你需要說“不” 55
Continuous Aggressive Learning / 持續(xù)主動(dòng)地學(xué)習(xí) 55
Mentoring / 指導(dǎo) 56
The Bill of Rights / 權(quán)利條款 56
Customer Bill of Rights / 客戶權(quán)利條款 56
Developer Bill of Rights / 開發(fā)人員權(quán)利條款 57
Customers / 客戶權(quán)利詳討 57
Developers / 開發(fā)人員權(quán)利詳討 59
Conclusion / 結(jié)論 61
Chapter 3 Business Practices / 業(yè)務(wù)實(shí)踐 63
Planning / 計(jì)劃游戲 64
Trivariate Analysis / 三元分析 65
Stories and Points / 故事和點(diǎn)數(shù) 66
ATM Stories / ATM的故事 67
Stories / 故事 74
Story Estimation / 故事估算 76
Managing the Iteration / 對(duì)迭代進(jìn)行管理 78
The Demo / 演示 80
Velocity / 速率 81
Small Releases / 小步發(fā)布 82
A Brief History of Source Code Control / 源代碼控制簡(jiǎn)史 83
Tapes / 磁帶 85
Disks and SCCS / 磁盤和源代碼控制系統(tǒng) 85
Subversion 86
Git and Tests / Git與測(cè)試 87
Acceptance Tests / 驗(yàn)收測(cè)試 88
Tools and Methodologies / 工具和方法論 89
Behavior-Driven Development / 行為驅(qū)動(dòng)開發(fā) 90
The Practice / 實(shí)踐 90
Whole Team / 完整團(tuán)隊(duì) 93
Co-Location / 同一地點(diǎn) 94
Conclusion / 結(jié)論 96
Chapter 4 Team Practices / 團(tuán)隊(duì)實(shí)踐 97
Metaphor / 隱喻 98
Domain-Driven Design / 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 99
Sustainable Pace / 可持續(xù)節(jié)奏 100
Overtime / 加班 102
Marathon / 馬拉松 103
Dedication / 奉獻(xiàn)精神 103
Sleep / 睡眠 104
Collective Ownership / 代碼集體所有 104
The X Files / X檔案 106
Continuous Integration / 持續(xù)集成 107
Then Came Continuous Build / 然后有了持續(xù)構(gòu)建 108
The Continuous Build Discipline / 持續(xù)構(gòu)建的紀(jì)律 109
Standup Meetings / 站會(huì) 110
Pigs and Chickens / 豬和雞? 111
Shout-out / 公開表示認(rèn)可 111
Conclusion / 結(jié)論 111
Chapter 5 Technical Practices / 技術(shù)實(shí)踐 113
Test-Driven Development / 測(cè)試驅(qū)動(dòng)開發(fā) 114
Double-Entry Bookkeeping / 復(fù)式記賬 114
The Three Rules of TDD / TDD三規(guī)則 116
Debugging / 調(diào)試 117
Documentation / 文檔 117
Fun / 樂趣 118
Completeness / 完備性 119
Design / 設(shè)計(jì) 121
Courage / 勇氣 121
Refactoring / 重構(gòu) 123
Red / Green / Refactor / 紅-綠-重構(gòu) 124
Bigger Refactorings / 大型重構(gòu) 125
Simple Design / 簡(jiǎn)單設(shè)計(jì) 125
Design Weight / 設(shè)計(jì)的重量 127
Pair Programming / 結(jié)對(duì)編程 127
What Is Pairing / 什么是結(jié)對(duì) 128
Why Pair / 為什么結(jié)對(duì) 129
Pairing as Code Review / 結(jié)對(duì)當(dāng)作代碼評(píng)審 129
What about the Cost / 代價(jià)幾何 130
Just Two / 只能兩人嗎 130
Management / 管理 130
Conclusion / 結(jié)論 131
Chapter 6 Becoming Agile / 成就敏捷 133
Agile Values / 敏捷的價(jià)值觀 134
Courage / 勇氣 134
Communication / 溝通 134
Feedback / 反饋 135
Simplicity / 簡(jiǎn)單 135
The Menagerie / 怪物博物館 136
Transformation / 轉(zhuǎn)型 137
The Subterfuge / ;ㄕ 138
The Lion Cubs / 幼獅 138
Weeping / 哭泣 139
Moral / 寓意 139
Faking It / 假裝 139
Success in Smaller Organizations / 在更小的組織中成功 140
Individual Success and Migration / 個(gè)人成功和遷移 141
Creating Agile Organizations / 創(chuàng)建敏捷組織 141
Coaching / 教練輔導(dǎo) 142
Scrum Masters 143
Certification / 認(rèn)證 143
Real Certification / 真正的認(rèn)證 144
Agile in the Large / 大型組織中的敏捷 144
Agile Tools / 敏捷工具 148
Software Tools / 軟件工具 148
What Makes for an Effective Tool / 什么才是有效的工具 149
Physical Agile Tools / 物理的敏捷工具 151
The Pressure to Automate / 自動(dòng)化的壓力 152
ALMs for the Not-Poor / 有錢人用的ALM類工具 153
Coaching—An Alternative View / 教練——另一個(gè)視角 155
The Many Paths to Agile / 條條大路通敏捷 155
From Process Expert to Agile Expert / 從過程專家到敏捷專家 156
The Need for Agile Coaching / 對(duì)敏捷教練的需求 157
Putting the Coach into Agile Coach / 將教練技術(shù)帶給敏捷教練 158
Going Beyond the ICP-ACC / 超越ICP-ACC 158
Coaching Tools / 教練工具 159
Professional Coaching Skills Are Not Enough /
只有專業(yè)教練技巧是不夠的 159
Coaching in a Multiteam Environment /
在多團(tuán)隊(duì)環(huán)境中進(jìn)行敏捷教練的工作 160
Agile in the Large / 大型組織中的敏捷 161
Using Agile and Coaching to Become Agile /
使用敏捷和教練技術(shù)來變得敏捷 161
Growing Your Agile Adoption / 敏捷導(dǎo)入的成長(zhǎng) 162
Going Big by Focusing on the Small / 細(xì)處著手成大事 164
The Future of Agile Coaching / 敏捷教練的未來 165
Conclusion (Bob Again) / 結(jié)論(鮑勃大叔回來了) 165
Chapter 7 Craftsmanship / 匠藝 167
The Agile Hangover / 敏捷的宿醉 169
Expectation Mismatch / 不孚所望 170
Moving Apart / 漸行漸遠(yuǎn) 172
Software Craftsmanship / 軟件匠藝 173
Ideology versus Methodology / 思想體系與方法論 174
Does Software Craftsmanship Have Practices / 軟件匠藝包含實(shí)踐嗎 175
Focus on the Value, Not the Practice / 聚焦于價(jià)值而非實(shí)踐 176
Discussing Practices / 對(duì)實(shí)踐的討論 177
Craftsmanship Impact on Individuals / 匠藝對(duì)個(gè)人的影響 178
Craftsmanship Impact on Our Industry / 匠藝對(duì)行業(yè)的影響 179
Craftsmanship Impact on Companies / 匠藝對(duì)公司的影響 180
Craftsmanship and Agile / 匠藝與敏捷 181
Conclusion / 結(jié)論 182
Chapter 8 Conclusion / 結(jié)論 183
Afterword / 跋 185