FOREWORD
I’m the guy behind the agile modeling (AM) method (see AgileModeling.com), which
was the first serious look at how modelling and documentation activities fit in on agile
teams. I led a group of people, several hundred from around the world, to develop the
initial version of AM in the 2001/2002 time frame. It’s evolved since then of course,
capturing collaborative lightweight strategies for analysis, architecture, design and even
documentation activities for agile teams. Needless to say I’m excited that this book has
been written.
What should you hope to gain from reading this book? Here are my suggestions for what
you want to learn:
1. Discover the agile mindset: whenever you think, ‘that won’t work for me
because I’m in a different situation’, the best thing to do is to assume that
you’re completely and utterly wrong about that (you very likely will be) and
therefore need to work things through. Being agile, having the mindset to
collaboratively work in an agile manner, can take a long time to truly learn.
2. Keep analysis light yet sufficient: when it comes to ‘doing agile’ the biggest
change is often the focus on keeping your work and the artefacts that you
create as light as possible. In agile modelling, we promote strategies such
as working with the audience of an artefact to learn what they really need,
preferring direct communication with others as opposed to documentation
hand-offs, and capturing requirements in the form of executable tests.
3. Focus on working collaboratively with others: modelling is something you
should do with others, ideally using inclusive tools such as whiteboards and
sticky notes. Many heads are better than one.
4. Embrace an evolutionary approach to analysis: as I said earlier, analysis is
so important that we do it every single day on an agile team. This is because
of the agile philosophy of embracing change – we accept the fact that our
stakeholders' requirements will evolve over time, necessitating an ongoing
and evolutionary approach to analysis (and architecture, and design and all
other aspects of solution delivery).
5. Seek active stakeholder participation: one of the more radical ideas in agile
modelling, one that we adopted from usage-centred design, is that the people
who are best suited to perform requirements-oriented modelling are your
stakeholders. If we can find ways to get our stakeholders actively involved
in our modelling efforts, something that inclusive tools (whiteboards, paper)
and inclusive techniques (such as the simple model types described in this
book) enable, then we are much more likely to find out what our stakeholders
actually need.
6. Continuously improve: part of the agile mindset is to regularly reflect on what
is working well, and what isn’t working so well, so that we can potentially
learn from and address the challenges we face. Similarly, the Lean mindset
tells us to experiment with potential improvements, study their effectiveness,
and then adopt new ways of working accordingly. We can always get better.
7. Constantly expand your intellectual toolkit: there are some great modelling
techniques described in this book, including many common ones such as
user stories, epics and personas. These techniques are of course the tip
of the iceberg – there are hundreds of strategies out there that you should
xv