| |
| |
Foreword | |
| |
| |
Preface | |
| |
| |
| |
Introduction to Agile Modeling | |
| |
| |
| |
Introduction | |
| |
| |
Enter Agile Software Development | |
| |
| |
Agile Modeling | |
| |
| |
The SWA Online Case Study | |
| |
| |
A Brief Overview of this Book | |
| |
| |
| |
Agile Modeling Values | |
| |
| |
Communication | |
| |
| |
Simplicity | |
| |
| |
Feedback | |
| |
| |
Courage | |
| |
| |
Humility | |
| |
| |
Beyond Motherhood and Apple Pie | |
| |
| |
| |
Core Principles | |
| |
| |
Software Is Your Primary Goal | |
| |
| |
Enabling the Next Effort Is Your Secondary Goal | |
| |
| |
Travel Light | |
| |
| |
Assume Simplicity | |
| |
| |
Embrace Change | |
| |
| |
Incremental Change | |
| |
| |
Model with a Purpose | |
| |
| |
Multiple Models | |
| |
| |
Quality Work | |
| |
| |
Rapid Feedback | |
| |
| |
Maximize Stakeholder Investment | |
| |
| |
Why Core Principles? | |
| |
| |
| |
Supplementary Principles | |
| |
| |
Content Is More Important Than Representation | |
| |
| |
Everyone Can Learn from Everyone Else | |
| |
| |
Know Your Models | |
| |
| |
Local Adaptation | |
| |
| |
Open and Honest Communication | |
| |
| |
Work with People's Instincts | |
| |
| |
Benefiting from These Principles | |
| |
| |
| |
Core Practices | |
| |
| |
Practices for Iterative and Incremental Modeling | |
| |
| |
Practices for Effective Teamwork | |
| |
| |
Practices That Enable Simplicity | |
| |
| |
Practices for Validating Your Work | |
| |
| |
| |
Supplementary Practices | |
| |
| |
Practices to Improve Your Productivity | |
| |
| |
Practices for Agile Documentation | |
| |
| |
Practices Concerning Your Motivation | |
| |
| |
Really Good Ideas | |
| |
| |
How to Schedule AM Practices on Your Project | |
| |
| |
| |
Order from Chaos: How the AM Practices Fit Together | |
| |
| |
The Core Practices | |
| |
| |
The Supplementary Practices | |
| |
| |
How the Categories Relate to One Another | |
| |
| |
Chaos and Order: Chaordic | |
| |
| |
Looking Ahead | |
| |
| |
| |
Agile Modeling in Practice | |
| |
| |
| |
Communication | |
| |
| |
How Do We Communicate? | |
| |
| |
Factors That Affect Communication | |
| |
| |
Communication and Agile Modeling | |
| |
| |
Effective Communication | |
| |
| |
| |
Nurturing an Agile Culture | |
| |
| |
Overcome the Misconceptions That Surround Modeling | |
| |
| |
Think Small | |
| |
| |
Loosen Up a Bit | |
| |
| |
Rigidly Support Rights and Responsibilities | |
| |
| |
Rethink Presentations to Project Stakeholders | |
| |
| |
| |
Using the Simplest Tools Possible? | |
| |
| |
Agile Modeling with Simple Tools? | |
| |
| |
The Evolution of a Model | |
| |
| |
Agile Modeling with CASE Tools | |
| |
| |
Use the Media | |
| |
| |
The Effect of Tools on Models | |
| |
| |
Using the Simplest Tools In Practice | |
| |
| |
| |
Agile Work Areas | |
| |
| |
Agile Modeling Room | |
| |
| |
Effective Work Areas | |
| |
| |
Making This Work in the Real World | |
| |
| |
| |
Agile Modeling Teams | |
| |
| |
Recruit a Few Good Developers | |
| |
| |
Recognize That There Is No "I" in Agile | |
| |
| |
Require that Everyone Actively Participates | |
| |
| |
Model in Teams | |
| |
| |
Making This Work in the Real World | |
| |
| |
| |
Agile Modeling Sessions | |
| |
| |
Modeling Session Duration | |
| |
| |
Types of Modeling Sessions | |
| |
| |
Participants in Modeling Sessions | |
| |
| |
The Formality of Modeling Sessions | |
| |
| |
How to Make This Work in the Real World | |
| |
| |
| |
Agile Documentation | |
| |
| |
Why Do People Document? | |
| |
| |
When Does a Model Become Permanent? | |
| |
| |
| |
The UML and Beyond | |
| |
| |
The UML Is Not Sufficient | |
| |
| |
The UML Is Too Complex | |
| |
| |
The UML Is Not a Methodology or Process | |
| |
| |
Forget about Executable UML (for Now) | |
| |
| |
Making the UML Work in Practice | |
| |
| |
| |
Agile Modeling and eXtreme Programming (XP) | |
| |
| |
| |
Setting the Record Straight | |
| |
| |
Modeling Is a Part of XP | |
| |
| |
Documentation Happens | |
| |
| |
XP and the UML? | |
| |
| |
And the Verdict Is? | |
| |
| |
| |
Agile Modeling and eXtreme Programming | |
| |
| |
The Potential Fit between AM and XP | |
| |
| |
Refactoring and AM | |
| |
| |
Test-First Development and AM | |
| |
| |
Which AM Practices Should You Adopt? | |
| |
| |
| |
Agile Modeling Throughout the XP Lifecycle | |
| |
| |
Exploration Phase | |
| |
| |
Planning Phase | |
| |
| |
Iterations to Release Phase | |
| |
| |
Productionizing | |
| |
| |
Maintenance | |
| |
| |
How Do You Make This Work? | |
| |
| |
| |
Modeling During the XP Exploration Phase | |
| |
| |
Initial Requirements Up Front (IRUF) | |
| |
| |
Metaphors, Architectures, and Spikes | |
| |
| |
Setting the Foundation for Your Project | |
| |
| |
| |
Modeling During an XP Iteration: Searching for Items | |
| |
| |
The Task | |
| |
| |
Modeling the Physical Database Schema | |
| |
| |
Observations | |
| |
| |
| |
Modeling During an XP Iteration: Totaling an Order | |
| |
| |
The Task | |
| |
| |
Requirements Modeling to the Rescue | |
| |
| |
Help from an Outside Expert | |
| |
| |
A Quick Design Session | |
| |
| |
Formalizing a Contract Model | |
| |
| |
What about Changes in the Future? | |
| |
| |
Observations | |
| |
| |
How to Make This Work in the Real World | |
| |
| |
| |
Agile Modeling and the Unified Process | |
| |
| |
| |
Agile Modeling and the Unified Process | |
| |
| |
How Modeling Works in the Unified Process | |
| |
| |
How Good Is the Fit? | |
| |
| |
Choose To Be Agile | |
| |
| |
| |
Agile Modeling throughout the Unified Process Lifecycle | |
| |
| |
The Modeling Disciplines | |
| |
| |
Non-Modeling Disciplines | |
| |
| |
How Do You Make This Work? | |
| |
| |
| |
Agile Business Modeling | |
| |
| |
A Business/Essential Use Case Model | |
| |
| |
A Simple Business Object Model | |
| |
| |
An Agile Supplementary Business Specification | |
| |
| |
A Business Vision | |
| |
| |
How to Make This Work in Practice | |
| |
| |
| |
Agile Requirements | |
| |
| |
The Context Model | |
| |
| |
Use Case Model | |
| |
| |
Use Case Story Board | |
| |
| |
Supplementary Specification | |
| |
| |
How to Make This Work in Practice | |
| |
| |
| |
Agile Analysis and Design | |
| |
| |
Rethinking Analysis and Design Models in the UP | |
| |
| |
Architectural Modeling | |
| |
| |
Creating Use Case Realizations | |
| |
| |
Time to Update Our Use Case? | |
| |
| |
Time to Use a CASE Tool? | |
| |
| |
Design Class Modeling | |
| |
| |
Data Modeling | |
| |
| |
Embracing Change | |
| |
| |
How Does This Work in Practice? | |
| |
| |
| |
Agile Infrastructure Management | |
| |
| |
Infrastructure Models | |
| |
| |
Infrastructure Modeling | |
| |
| |
Setting Modeling Standards and Guidelines | |
| |
| |
Core Infrastructure Teams | |
| |
| |
Scaling AM with Core Architecture Teams | |
| |
| |
How to Make This Work in the Real World | |
| |
| |
| |
Adopting AM on an UP Project | |
| |
| |
How Does This Work? | |
| |
| |
| |
Looking Ahead | |
| |
| |
| |
Adopting Agile Modeling or Overcoming Adversity | |
| |
| |
Evaluate the Fit | |
| |
| |
Keep It Simple | |
| |
| |
Overcome Organizational and Cultural Challenges | |
| |
| |
Consider Alternatives to Full Adoption of AM | |
| |
| |
How to Make This Work in Practice | |
| |
| |
| |
Conclusion: Choose to Succeed | |
| |
| |
Common Misconceptions Regarding Agile Modeling | |
| |
| |
When Is(n't) it Agile Modeling? | |
| |
| |
Agile Modeling Resources | |
| |
| |
A Few Parting Thoughts... | |
| |
| |
| |
Modeling Techniques | |
| |
| |
Glossary of Definitions and Abbreviations | |
| |
| |
References and Suggested Reading | |
| |
| |
Index | |