Foreword xi
Preface xiii
Part One Introduction to Agile Modeling 1
Chapter 1 Introduction 3
Enter Agile Software Development 6
Agile Modeling 8
The SWA Online Case Study 17
A Brief Overview of this Book 18
Chapter 2 Agile Modeling Values 19
Communication 20
Simplicity 21
Feedback 22
Courage 23
Humility 25
Beyond Motherhood and Apple Pie 26
Chapter 3 Core Principles 27
Software Is Your Primary Goal 28
Enabling the Next Effort Is Your Secondary Goal 28
Travel Light 29
Assume Simplicity 29
Embrace Change 30
Incremental Change 31
Model with a Purpose 31
Multiple Models 32
Quality Work 34
Rapid Feedback 35
Maximize Stakeholder Investment 37
Why Core Principles? 37
Chapter 4 Supplementary Principles 38
Content Is More Important Than Representation 38
Everyone Can Learn from Everyone Else 41
Know Your Models 41
Local Adaptation 42
Open and Honest Communication 42
Work with People’s Instincts 42
Benefiting from These Principles 43
Chapter 5 Core Practices 44
Practices for Iterative and Incremental Modeling 45
Practices for Effective Teamwork 52
Practices That Enable Simplicity 56
Practices for Validating Your Work 58
Chapter 6 Supplementary Practices 60
Practices to Improve Your Productivity 61
Practices for Agile Documentation 64
Practices Concerning Your Motivation 68
Really Good Ideas 71
How to Schedule AM Practices on Your Project 72
Chapter 7 Order from Chaos: How the AM Practices Fit Together 73
The Core Practices 73
The Supplementary Practices 76
How the Categories Relate to One Another 77
Chaos and Order: Chaordic 79
Looking Ahead 80
Part Two Agile Modeling in Practice 81
Chapter 8 Communication 83
How Do We Communicate? 84
Factors That Affect Communication 85
Communication and Agile Modeling 86
Effective Communication 87
Chapter 9 Nurturing an Agile Culture 89
Overcome the Misconceptions That Surround Modeling 89
Think Small 95
Loosen Up a Bit 96
Rigidly Support Rights and Responsibilities 97
Rethink Presentations to Project Stakeholders 98
Chapter 10 Using the Simplest Tools Possible? 101
Agile Modeling with Simple Tools? 102
The Evolution of a Model 107
Agile Modeling with CASE Tools 111
Use the Media 115
The Effect of Tools on Models 116
Using the Simplest Tools In Practice 117
Chapter 11 Agile Work Areas 118
Agile Modeling Room 118
Effective Work Areas 122
Making This Work in the Real World 122
Chapter 12 Agile Modeling Teams 124
Recruit a Few Good Developers 124
Recognize That There Is No “I” in Agile 128
Require that Everyone Actively Participates 130
Model in Teams 130
Making This Work in the Real World 132
Chapter 13 Agile Modeling Sessions 134
Modeling Session Duration 134
Types of Modeling Sessions 136
Participants in Modeling Sessions 138
The Formality of Modeling Sessions 140
How to Make This Work in the Real World 142
Chapter 14 Agile Documentation 143
Why Do People Document? 144
When Does a Model Become Permanent? 147
Chapter 15 The UML and Beyond 168
The UML Is Not Sufficient 169
The UML Is Too Complex 171
The UML Is Not a Methodology or Process 171
Forget about Executable UML (for Now) 172
Making the UMLWork in Practice 173
Part Three Agile Modeling and eXtreme Programming (XP) 175
Chapter 16 Setting the Record Straight 177
Modeling Is a Part of XP 178
Documentation Happens 179
XP and the UML? 181
And the Verdict Is? 183
Chapter 17 Agile Modeling and eXtreme Programming 184
The Potential Fit between AM and XP 185
Refactoring and AM 185
Test-First Development and AM 188
Which AM Practices Should You Adopt? 189
Chapter 18 Agile Modeling Throughout the XP Lifecycle 190
Exploration Phase 191
Planning Phase 192
Iterations to Release Phase 194
Productionizing 196
Maintenance 197
How Do You Make This Work? 198
Chapter 19 Modeling During the XP Exploration Phase 199
Initial Requirements Up Front (IRUF) 199
Metaphors, Architectures, and Spikes 203
Setting the Foundation for Your Project 206
Chapter 20 Modeling During an XP Iteration: Searching for Items 207
The Task 208
Modeling the Physical Database Schema 209
Observations 212
Chapter 21 Modeling During an XP Iteration: Totaling an Order 214
The Task 214
Requirements Modeling to the Rescue 215
Help from an Outside Expert 217
A Quick Design Session 218
Formalizing a Contract Model 220
What about Changes in the Future? 220
Observations 222
How to Make This Work in the Real World 222
Part Four Agile Modeling and the Unified Process 223
Chapter 22 Agile Modeling and the Unified Process 225
How Modeling Works in the Unified Process 226
How Good Is the Fit? 227
Choose To Be Agile 231
Chapter 23 Agile Modeling throughout the Unified Process Lifecycle 232
The Modeling Disciplines 232
Non-Modeling Disciplines 242
How Do You Make This Work? 245
Chapter 24 Agile Business Modeling 246
A Business/Essential Use Case Model 247
A Simple Business Object Model 248
An Agile Supplementary Business Specification 249
A Business Vision 252
How to Make This Work in Practice 253
Chapter 25 Agile Requirements 254
The Context Model 255
Use Case Model 258
Use Case Story Board 262
Supplementary Specification 265
How to Make This Work in Practice 267
Chapter 26 Agile Analysis and Design 269
Rethinking Analysis and Design Models in the UP 270
Architectural Modeling 272
Creating Use Case Realizations 277
Time to Update Our Use Case? 281
Time to Use a CASE Tool? 284
Design Class Modeling 284
Data Modeling 287
Embracing Change 290
How Does This Work in Practice? 291
Chapter 27 Agile Infrastructure Management 292
Infrastructure Models 293
Infrastructure Modeling 294
Setting Modeling Standards and Guidelines 297
Core Infrastructure Teams 299
Scaling AM with Core Architecture Teams 301
How to Make This Work in the Real World 302
Chapter 28 Adopting AM on an UP Project 304
How Does This Work? 308
Part Five Looking Ahead 309
Chapter 29 Adopting Agile Modeling or Overcoming Adversity 311
Evaluate the Fit 312
Keep It Simple 315
Overcome Organizational and Cultural Challenges 316
Consider Alternatives to Full Adoption of AM 324
How to Make This Work in Practice 324
Chapter 30 Conclusion: Choose to Succeed 325
Common Misconceptions Regarding Agile Modeling 325
When Is(n’t) it Agile Modeling? 326
Agile Modeling Resources 328
A Few Parting Thoughts . . . 329
Appendix A Modeling Techniques 330
Glossary of Definitions and Abbreviations 358
References and Suggested Reading 369
Index 375