 |
In the Autumn of 2000 when work
first began on what was to become the Agile
Modeling (AM) methodology we focused on defining
a collection of
values,
principles, and
practices
for modeling and documentation on software
development projects. The principles and
practices were fairly granular, describing what
you do in during the acts of modeling and
documentation. Although valuable, many
people found these principles and practices to
be too difficult to understand, because of their
granularity but also because of their vagueness.
Then in 2003 the
Agile Model Driven Development (AMDD)
lifecycle began to coalesce to describe when
modeling occurs on projects (or programmes as
the case may be), such as
architectural envisioning
and
requirements envisioning at
the beginning of a project or
model storming on a
just-in-time (JIT) basis throughout the project.
This in turn revealed higher level AMDD "best
practices", overviewed in the pattern
language map of
Figure 1. |
|
Figure 1. The best
practices of Agile Modeling.

The best practices of AMDD are:
-
Active Stakeholder
Participation.
Stakeholders should provide
information in a timely
manner, make decisions in a
timely manner, and be as
actively involved in the
development process through
the use of
inclusive tools and
techniques.
-
Architecture Envisioning.
At the beginning of an agile
project you will need to do
some initial, high-level
architectural modeling to
identify a viable technical
strategy for your solution.
-
Document Continuously.
Write deliverable
documentation throughout the
lifecycle in parallel to the
creation of the rest of the
solution.
-
Document Late.
Write deliverable documentation as late
as possible, avoiding
speculative ideas that are
likely to change in favor of
stable information.
-
Executable
Specifications. Specify
requirements in the form of
executable "customer
tests", and your design
as executable developer
tests, instead of
non-executable "static"
documentation.
-
Iteration Modeling.
At the beginning of each
iteration you will do a bit
of modeling as part of your
iteration planning
activities.
-
Just Barely Good Enough
(JBGE) artifacts.
A model or document needs to
be sufficient for the
situation at hand and no
more.
-
Look Ahead
Modeling.
Sometimes requirements that
are nearing the top of your
priority stack
are
fairly complex, motivating
you to invest some effort to
explore them before they're
popped off the top of the
work item stack so as to
reduce overall risk.
-
Model Storming.
Throughout an iteration you
will model storm on a
just-in-time (JIT) basis for
a few minutes to explore the
details behind a requirement
or to think through a design
issue.
-
Multiple Models. Each
type of model has it's
strengths and weaknesses.
An effective developer will
need a range of models in
their intellectual toolkit
enabling them to apply the
right model in the most
appropriate manner for the
situation at hand.
-
Prioritized Requirements.
Agile teams implement
requirements in priority
order, as defined by their
stakeholders, so as to
provide the greatest return
on investment (ROI)
possible.
-
Requirements Envisioning.
At the beginning of an agile
project you will need to
invest some time to identify
the scope of the project and
to create the initial
prioritized stack of
requirements.
-
Single Source Information.
Strive to capture
information in one place and
one place only.
-
Test-Driven Design (TDD).
Write a single test, either
at the requirements or
design level, and then just
enough code to fulfill that
test. TDD is a JIT
approach to detailed
requirements specification
and a confirmatory approach
to testing.
 |
The Object Primer 3rd Edition: Agile Model Driven
Development with UML 2 is an
important reference book for agile modelers,
describing how to develop 35
types of agile
models including all 13
UML 2 diagrams.
Furthermore, this book describes the techniques
of the
Full Lifecycle Object Oriented Testing
(FLOOT) methodology to give you the fundamental
testing skills which you require to succeed at
agile software development. The book also
shows how to move from your agile models to
source code (Java examples are provided) as well
as how to succeed at implementation techniques
such as
refactoring and
test-driven development
(TDD). The Object Primer also includes a
chapter overviewing the critical database
development techniques (database refactoring,
object/relational mapping,
legacy analysis, and
database access coding) from my award-winning
Agile Database Techniques
book. |
 |
Agile Modeling: Effective Practices for Extreme
Programming and the Unified Process is the seminal
book describing how agile software developers approach
modeling and
documentation. It describes principles and
practices which you can tailor into your existing
software process, such as
XP, the
Rational Unified Process (RUP), or the
Agile Unified Process (AUP), to streamline your
modeling and documentation efforts. Modeling and
documentation are important aspects of any software
project, including agile projects, and this book
describes in detail how to
elicit requirements,
architect, and then
design your system in an agile manner. |
 |
The Elements of UML 2.0 Style describes a collection
of standards, conventions, and
guidelines
for creating effective
UML diagrams. They are based on sound, proven
software engineering principles that lead to diagrams
that are easier to understand and work with. These
conventions exist as a collection of simple, concise
guidelines that if applied consistently, represent an
important first step in increasing your productivity as
a modeler. This book is oriented towards
intermediate to advanced UML modelers, although there
are numerous examples throughout the book it would not
be a good way to learn the UML (instead, consider
The Object Primer). The book is a brief 188
pages long and is conveniently pocket-sized so it's easy
to carry around. |
|
|
We actively work with clients around the world to
improve their information technology (IT) practices,
typically in the role of mentor/coach, team lead, or trainer. A full
description of what we do, and how to contact us, can be
found at Scott W.
Ambler + Associates.


|