内容简介
· · · · · ·
本书是软件开发界的传奇人物罗伯特·C. 马丁(“鲍勃大叔”)对敏捷发展历程的回顾,对敏捷最初用意的重述,对敏捷价值观和原则的传达。本书首先概述敏捷的历史、敏捷的全貌;然后说明敏捷出现的缘由;接着讲解敏捷的业务实践、团队实践和技术实践,介绍成就敏捷的因素,还谈到敏捷转型中常见的问题与困难;最后提出软件匠艺理念。 本书适合开发人员、测试人员、管理人员、项目经理、业务人员等软件行业从业者阅读。
· · · · · ·
作者简介
· · · · · ·
罗伯特·C. 马丁(Robert C. Martin)*软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report杂志前主编。他从20世纪70年代起就是一名程序员,被后辈程序员尊称为“鲍勃大叔”(Uncle Bob)。 他是Clean Coders网站的创始人,这个网站为软件开发者提供在线视频培训。他也是“鲍勃大叔咨询公司”(Uncle Bob Consulting LLC)的创始人,这家公司为世界各地的大企业提供软件咨询、培训和技能发展服务。他的著作有《代码整洁之道》《代码整洁之道:程序员的职业素养》《敏捷整洁之道:回归本源》《架构整洁之道》《敏捷软件开发:原则、模式与实践》等。 译者简介 申健 优普丰全球合伙人,首席敏捷教练,国际Scrum联盟CST认证培训师,全球首位CTC认证敏捷教练及评审委员会成员,极限编程爱好者。在跨国企业从事10多年研发和管理工作,涉及电信、金融、互联网等领域。2007年开始实战敏捷开发,对结合教练技术等软技能来帮助组织提升领导力和导入工程实践,从而提升产品开发的效果与质量很感兴趣。常年担任全国敏捷社区组织者、评委和嘉宾。培训和咨询辅导过的客户达数百家。 何强 有10多年大型外企一线研发与管理经验。进阶CSM认证者和PMP,2011年开始带领团队进行敏捷软件开发,并推动组织级敏捷转型。在公司内部进行敏捷文化推广、敏捷开发流程的制定以及工程实践工具链落地等工作。后逐步担任企业敏捷教练,推动跨国多团队规模化敏捷实施与优化。有多年培训以及对Scrum关键角色辅导与团队转型辅导经验。擅长对不同团队敏捷实施方案的定制与实施、组织内敏捷文化推广、团队从0到1的敏捷转型辅导、敏捷开发工具链的组织与调优等。 罗涛 Scrum@Scale认证实践者,曾任用友集团开发管理部总经理,特聘讲师,集团内多条产品线的敏捷教练/教头,培训师,咨询师,应用架构设计专家。同时作为创新的推进者和实践者,拥有5项国家发明专利,并在集团内部负责培训、评审和推进专利,以及相关的创新工作。除了主流的催化技术,还擅长使用游戏学习、情景戏剧学习等方式进行引导。 审校者简介 熊节 中国IT业界意见领袖、敏捷先行者。从2001年开始将敏捷思想引入中国,引领了中国敏捷浪潮。曾指导多家知名企业导入敏捷方法,对这些企业产生了深远的影响。曾在各类专业媒体发表数十篇文章,并主持翻译了《重构:改善既有代码的设计》《软件工匠》《实现模式》《卓有成效的程序员》等敏捷领域的重要著作,其中《重构:改善既有代码的设计》被誉为“软件业三大必读经典”之一。他的新作《敏捷中国史话》是第一部系统记录敏捷在中国发展历程的著作。 韩磊 互联网产品与社区运营专家,技术书籍著译者。曾任CSDN副总经理、《程序员》总编辑、广东二十一世纪传媒股份有限公司新媒体事业部总经理等职。现任AR初创企业亮风台广州公司总经理。译有《代码整洁之道》《梦断代码》《C#编程风格》等书。此外还与刘韧合著《网络媒体教程》,与戴飞合译《Beginning C# Objects中文版:概念到代码》。
目录
· · · · · ·
目 录
第 1章 介绍敏捷 1
1.1 敏捷的历史 3
1.2 雪鸟会议 10
1.3 敏捷全貌 14
1.3.1 铁十字 15
1.3.2 墙上的图 15
1.3.3 你知道的第 一件事 18
1.3.4 会议 18
1.3.5 分析阶段 19
1.3.6 设计阶段 20
1.3.7 实施阶段 21
1.3.8 死亡行军阶段 22
1.3.9 夸张吗 23
1.3.10 更好的方式 23
1.3.11 迭代0 24
1.3.12 敏捷产出数据 25
1.3.13 幻想与管理 27
1.3.14 管理铁十字 27
1.3.15 业务价值排序 31
1.3.16 全貌至此结束 31
1.4 生命之环 31
1.5 结论 35
第 2章 敏捷的理由 37
2.1 专业性 38
2.1.1 到处是软件 39
2.1.2 程序员统治世界 41
2.1.3 灾难 42
2.2 合理的期望 43
2.2.1 我们不会交付一堆垃圾! 43
2.2.2 从技术上随时做好交付准备 45
2.2.3 稳定的生产率 46
2.2.4 划算的适应性 49
2.2.5 持续改进 50
2.2.6 无畏之力 50
2.2.7 QA应该什么也找不到 52
2.2.8 测试自动化 52
2.2.9 我们互相掩护 54
2.2.10 诚实的估算 54
2.2.11 你需要说“不” 55
2.2.12 持续主动地学习 55
2.2.13 指导 56
2.3 权利条款 56
2.3.1 客户权利条款 56
2.3.2 开发人员权利条款 57
2.3.3 客户权利详讨 57
2.3.4 开发人员权利详讨 59
2.4 结论 61
第3章 业务实践 63
3.1 计划游戏 64
3.1.1 三元分析 65
3.1.2 故事和点数 66
3.1.3 ATM的故事 67
3.1.4 故事 74
3.1.5 故事估算 76
3.1.6 对迭代进行管理 78
3.1.7 演示 80
3.1.8 速率 81
3.2 小步发布 82
3.2.1 源代码控制简史 83
3.2.2 磁带 85
3.2.3 磁盘和源代码控制系统 85
3.2.4 Subversion 86
3.2.5 Git与测试 87
3.3 验收测试 88
3.3.1 工具和方法论 89
3.3.2 行为驱动开发 90
3.3.3 实践 90
3.4 完整团队 93
3.5 结论 96
第4章 团队实践 97
4.1 隐喻 98
4.2 可持续节奏 100
4.2.1 加班 102
4.2.2 马拉松 103
4.2.3 奉献精神 103
4.2.4 睡眠 104
4.3 代码集体所有 104
4.4 持续集成 107
4.4.1 然后有了持续构建 108
4.4.2 持续构建的纪律 109
4.5 站会 110
4.5.1 猪和鸡? 111
4.5.2 公开表示认可 111
4.6 结论 111
第5章 技术实践 113
5.1 测试驱动开发 114
5.1.1 复式记账 114
5.1.2 TDD三规则 116
5.1.3 调试 117
5.1.4 文档 117
5.1.5 乐趣 118
5.1.6 完备性 119
5.1.7 设计 121
5.1.8 勇气 121
5.2 重构 123
5.2.1 红-绿-重构 124
5.2.2 大型重构 125
5.3 简单设计 125
5.4 结对编程 127
5.4.1 什么是结对 128
5.4.2 为什么结对 129
5.4.3 结对当作代码评审 129
5.4.4 代价几何 130
5.4.5 只能两人吗 130
5.4.6 管理 130
5.5 结论 131
第6章 成就敏捷 133
6.1 敏捷的价值观 134
6.1.1 勇气 134
6.1.2 沟通 134
6.1.3 反馈 135
6.1.4 简单 135
6.2 怪物博物馆 136
6.3 转型 137
6.3.1 耍花招 138
6.3.2 幼狮 138
6.3.3 哭泣 139
6.3.4 寓意 139
6.3.5 假装 139
6.3.6 在更小的组织中成功 140
6.3.7 个人成功和迁移 141
6.3.8 创建敏捷组织 141
6.4 教练辅导 142
6.5 认证 143
6.6 大型组织中的敏捷 144
6.7 敏捷工具 148
6.7.1 软件工具 148
6.7.2 什么才是有效的工具 149
6.7.3 物理的敏捷工具 151
6.7.4 自动化的压力 152
6.7.5 有钱人用的ALM类工具 153
6.8 教练——另一个视角 155
6.8.1 条条大路通敏捷 155
6.8.2 从过程专家到敏捷专家 156
6.8.3 对敏捷教练的需求 157
6.8.4 将教练技术带给敏捷教练 158
6.8.5 超越ICP-ACC 158
6.8.6 教练工具 159
6.8.7 只有专业教练技巧是不够的 159
6.8.8 在多团队环境中进行敏捷教练的工作 160
6.8.9 大型组织中的敏捷 161
6.8.10 使用敏捷和教练技术 来变得敏捷 161
6.8.11 敏捷导入的成长 162
6.8.12 细处着手成大事 164
6.8.13 敏捷教练的未来 165
6.9 结论(鲍勃大叔回来了) 165
第7章 匠艺 167
7.1 敏捷的宿醉 169
7.2 不孚所望 170
7.3 渐行渐远 172
7.4 软件匠艺 173
7.5 思想体系与方法论 174
7.6 软件匠艺包含实践吗 175
7.7 聚焦于价值而非实践 176
7.8 对实践的讨论 177
7.9 匠艺对个人的影响 178
7.10 匠艺对行业的影响 179
7.11 匠艺对公司的影响 180
7.12 匠艺与敏捷 181
7.13 结论 182
第8章 结论 183
跋 185
索引 191
· · · · · ·