罗伯特·C. 马丁(Robert C. Martin)世界级软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report杂志前主编。他从20世纪70年代起就是一名程序员,被后辈程序员尊称为“鲍勃大叔”(Uncle Bob)。 他是Clean Coders网站的创始人,这个网站为软件开发者提供在线视频培训。他也是“鲍勃大叔咨询公司”(Uncle Bob Consulting LLC)的创始人,这家公司为世界各地的大企业提供软件咨询、培训和技能发展服务。他的著作有《代码整洁之道》《代码整洁之道:程序员的职业素养》《敏捷整洁之道:回归本源》《架构整洁之道》《敏捷软件开发:原则、模式与实践》等。
目錄:
目录
Chapter 1Introduction to Agile 介绍敏捷1
History of Agile 敏捷的历史3
Snowbird 雪鸟会议10
After Snowbird 雪鸟会议之后13
Agile Overview 敏捷全貌14
The Iron Cross 铁十字15
Charts on the Wall 墙上的图15
The First Thing You Know 你知道的第 一件事18
The Meeting 会议18
The Analysis Phase 分析阶段19
The Design Phase 设计阶段20
The Implementation Phase 实施阶段21
The Death March Phase 死亡行军阶段22
Hyperbole 夸张吗23
A Better Way 更好的方式23
Iteration Zero 迭代024
Agile Produces Data 敏捷产出数据25
Hope versus Management 幻想与管理27
Managing the Iron Cross 管理铁十字27
Business Value Order 业务价值排序31
Here Endeth the Overview 全貌至此结束31
Circle of Life 生命之环31
Conclusion 结论35
Chapter 2The Reasons for Agile 敏捷的理由37
Professionalism 专业性38
Software Is Everywhere 到处是软件39
We Rule the World 程序员统治世界41
The Disaster 灾难42
Reasonable Expectations 合理的期望43
We Will Not Ship Shyt! 我们不会交付一堆垃圾!43
Continuous Technical Readiness 从技术上随时做好交付准备45
Stable Productivity 稳定的生产率46
Inexpensive Adaptability 划算的适应力49
Continuous Improvement 持续改进50
Fearless Competence 无畏之力50
QA Should Find Nothing QA应该什么也找不到52
Test Automation 测试自动化52
We Cover for Each Other 我们互相掩护54
Honest Estimates 诚实的估算54
You Need to Say“No” 你需要说“不”55
Continuous Aggressive Learning 持续主动地学习55
Mentoring 指导56
The Bill of Rights 权利条款56
Customer Bill of Rights 客户权利条款56
Developer Bill of Rights 开发人员权利条款57
Customers 客户权利详讨57
Developers 开发人员权利详讨59
Conclusion 结论61
Chapter 3Business Practices 业务实践63
Planning 计划游戏64
Trivariate Analysis 三元分析65
Stories and Points 故事和点数66
ATM Stories ATM的故事67
Stories 故事74
Story Estimation 故事估算76
Managing the Iteration 对迭代进行管理78
The Demo 演示80
Velocity 速率81
Small Releases 小步发布82
A Brief History of Source Code Control 源代码控制简史83
Tapes 磁带85
Disks and SCCS 磁盘和源代码控制系统85
Subversion86
Git and Tests Git与测试87
Acceptance Tests 验收测试88
Tools and Methodologies 工具和方法论89
Behavior-Driven Development 行为驱动开发90
The Practice 实践90
Whole Team 完整团队93
Co-Location 同一地点94
Conclusion 结论96
Chapter 4Team Practices 团队实践97
Metaphor 隐喻98
Domain-Driven Design 领域驱动设计99
Sustainable Pace 可持续节奏100
Overtime 加班102
Marathon 马拉松103
Dedication 奉献精神103
Sleep 睡眠104
Collective Ownership 代码集体所有104
The X Files X档案106
Continuous Integration 持续集成107
Then Came Continuous Build 然后有了持续构建108
The Continuous Build Discipline 持续构建的纪律109
Standup Meetings 站会110
Pigs and Chickens 猪和鸡?111
Shout-out 公开表示认可111
Conclusion 结论111
Chapter 5Technical Practices 技术实践113
Test-Driven Development 测试驱动开发114
Double-Entry Bookkeeping 复式记账114
The Three Rules of TDD TDD三规则116
Debugging 调试117
Documentation 文档117
Fun 乐趣118
Completeness 完备性119
Design 设计121
Courage 勇气121
Refactoring 重构123
Red Green Refactor 红-绿-重构124
Bigger Refactorings 大型重构125
Simple Design 简单设计125
Design Weight 设计的重量127
Pair Programming 结对编程127
What Is Pairing 什么是结对128
Why Pair 为什么结对129
Pairing as Code Review 结对当作代码评审129
What about the Cost 代价几何130
Just Two 只能两人吗130
Management 管理130
Conclusion 结论131
Chapter 6Becoming Agile 成就敏捷133
Agile Values 敏捷的价值观134
Courage 勇气134
Communication 沟通134
Feedback 反馈135
Simplicity 简单135
The Menagerie 怪物博物馆136
Transformation 转型137
The Subterfuge 耍花招138
The Lion Cubs 幼狮138
Weeping 哭泣139
Moral 寓意139
Faking It 假装139
Success in Smaller Organizations 在更小的组织中成功140
Individual Success and Migration 个人成功和迁移141
Creating Agile Organizations 创建敏捷组织141
Coaching 教练辅导142
Scrum Masters 143
Certification 认证143
Real Certification 真正的认证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 自动化的压力152
ALMs for the Not-Poor 有钱人用的ALM类工具153
Coaching—An Alternative View 教练——另一个视角155
The Many Paths to Agile 条条大路通敏捷155
From Process Expert to Agile Expert 从过程专家到敏捷专家156
The Need for Agile Coaching 对敏捷教练的需求157
Putting the Coach into Agile Coach 将教练技术带给敏捷教练158
Going Beyond the ICP-ACC 超越ICP-ACC158
Coaching Tools 教练工具159
Professional Coaching Skills Are Not Enough
只有专业教练技巧是不够的159
Coaching in a Multiteam Environment
在多团队环境中进行敏捷教练的工作160
Agile in the Large 大型组织中的敏捷161
Using Agile and Coaching to Become Agile
使用敏捷和教练技术来变得敏捷161
Growing Your Agile Adoption 敏捷导入的成长162
Going Big by Focusing on the Small 细处着手成大事164
The Future of Agile Coaching 敏捷教练的未来165
Conclusion Bob Again 结论(鲍勃大叔回来了)165
Chapter 7Craftsmanship 匠艺167
The Agile Hangover 敏捷的宿醉169
Expectation Mismatch 不孚所望170
Moving Apart 渐行渐远172
Software Craftsmanship 软件匠艺173
Ideology versus Methodology 思想体系与方法论174
Does Software Craftsmanship Have Practices 软件匠艺包含实践吗175
Focus on the Value, Not the Practice 聚焦于价值而非实践176
Discussing Practices 对实践的讨论177
Craftsmanship Impact on Individuals 匠艺对个人的影响178
Craftsmanship Impact on Our Industry 匠艺对行业的影响179
Craftsmanship Impact on Companies 匠艺对公司的影响180
Craftsmanship and Agile 匠艺与敏捷181
Conclusion 结论182
Chapter 8Conclusion 结论183
Afterword 跋185