本书是国际知名软件开发专家Alistair Cockburn通过采访项目开发组和总结自己二十多年的开发和管理经验,撰写的一本介绍软件开发新思想——Agile软件开发方法学的专著。
本书共6章,在第1章之前的引言部分,作者阐述了人要正确地认识事物和准确交流是非常困难的这一观点。第1章作者通过一个假想的诗歌创作的例子,指出软件开发中常见的问题,并试图揭示软件开发的特点。第2章探讨了在软件开发过程中占据决定性作用的人的因素。第3章论述了团队的交流与合作,说明哪些因素影响交流的效果,有哪些好的交流方式等等。第4章详细列出了方法论的要素、设计原则、词汇术语等内容。第5章作者从多个角度论证了一套方法应该是动态的、自适应的。第6章阐述了作者自己的水晶系列方法论。附录A给出了敏捷软件开发宣言,其主要内容是是四个核心价值和十二个指导原则。
本书提供了一个新的角度来看待软件开发活动,以及一个新的思路来设计开发方法。书中提供的材料大部分来自作者丰富的实践经验,对软件开发实践有很高的参考价值,本书适合软件开发人员、项目管理人员、软件工程研究人员,以及所有想要了解敏捷开发思想的各界人士参考。
INTRODUCTION UNKNOWABLE AND INCOMMUNICABLE 1
The Problem with Parsing Experience 3
The Impossibility of Communication 8
Three Levels of Listening 14
So, What Do I Do Tomorrow? 19
CHAPTER 1 A COOPERATIVE GAME OF INVENTION AND COMMUNICATION 21
Software and Poetry 23
Software and Games 25
A Second Look at the Cooperative Game 31
What Should This Mean to Me? 38
CHAPTER 2 INDIVIDUALS 41
Them's Funky People 43
Overcoming Failure Modes 48
Working Better in Some Ways than Others 55
Drawing on Success Modes 67
What Should I Do Tomorrow? 73
CHAPTER 3 COMMUNICATING, COOPERATING TEAMS 75
Convection Currents of Information 77
Jumping Communication Gaps 91
Teams as Communities 99
Teams as Ecosystems 109
What Should I Do Tomorrow? 111
viii ? CONTENTS
CHAPTER 4 METHODOLOGIES 113
An Ecosystem That Ships Software 115
Methodology Concepts 115
Methodology Design Principles 141
XP under Glass 165
Why Methodology at All? 170
What Should I Do Tomorrow? 172
CHAPTER 5 AGILE AND SELF-ADAPTING 173
Light but Sufficient 175
Agile 178
Becoming Self-Adapting 184
What Should I Do Tomorrow? 195
CHAPTER 6 THE CRYSTAL METHODOLOGIES 197
Shaping the Crystal Family 199
Crystal Clear 202
Crystal Orange 204
Crystal Orange Web 206
What Should I Do Tomorrow? 212
APPENDIX A THE AGILE SOFTWARE DEVELOPMENT MANIFESTO 213
The Agile Alliance 215
The Manifesto 216
Supporting the Values 219
APPENDIX B NAUR, EHN, MUSASHI 225
Peter Naur, Programming as Theory Building 227
Pelle Ehn, Wittgenstein's Language Games 241
Musashi 254
APPENDIX C BOOKS AND REFERENCES 261
INDEX 271
软件开发模式不断变化。开发组的“团队”,能力和个体开发者的影响比组织所认识到的更重要,增加过程压力和让团队成员加班的传统做法已经不再适用。敏捷方法论的倡导者质疑开发团队所使用的预想过程。他们不采用给个体开发者增加负担的方法,而是提出“我们应如何改变过程才能使团队更有生产力,同时也提高质量?”答案是从玩游戏中寻找规律。
这本书是为开发者和项目经理写的,《敏捷软件开发》(Agile Software Development)将软件开发和游戏进行对比。团队成员参与游戏,他们了解最终目标是赢取胜利——不断记录他们在这个过程中学到了什么,要记住他们不会再用同样的方法玩第二次。游戏者必须对不同方法论持开放的态度,把注意力集中于短期内开发出高质量软件的目标上。
本书是10年的工作和研究,以及访谈了许多软件项目组的结果,它提出了正确的建议,指导陷入困境的团队如何在最小的压力下走向成功。本书包括以下方面:
●敏捷方法论所蕴涵的主要原则
●什么样的方法论适用于不同的项目——附录也有助于读者为项目选择适宜的方法论
●描述方法论的新词汇表
●方法论实时调整技术
●管理不完善的沟通
●不断发明新的方法论
●敏捷软件开发宣言
今天的软件开发者必须认识到他们有许多方法论可供选择。在这本书的指导下,他们可以打破没有生产力的习惯,超越旧方法,找到通往成功的新途径。