In the first edition of
Programming Explained Kent Beck described four
values of XP -- communication,
simplicity, feedback and courage -- which I adopted for
AM. At the time I felt that there was something
missing, and decided to add a fifth one, humility.
Then, in the second edition of
Programming Explained Kent added a fifth value,
respect. Respect and humility are two sides of the
same coin, in my opinion.
The five values of Agile Modeling (AM) are:
- Communication. Models promote communication between
your team and your project stakeholders as well as
between developers on your team.
It’s important that developers
understand that models are critical for simplifying both software and the
software process—it’s much easier to explore an idea, and improve upon it as
your understanding increases, by drawing a diagram or two instead of writing
tens or even hundreds of lines of code.
Kent Beck says
it best in
Programming Explained: “Optimism is an occupational hazard of
programming, feedback is the treatment.” By communicating your ideas through
diagrams, you quickly gain feedback, enabling you to act on that advice.
Courage is important because you need to make important decisions and
be able to change direction by either discarding or refactoring your work when
some of your decisions prove inadequate.
The best developers have the humility to recognize that they don't know
everything, that their fellow developers, their customers, and in fact all
project stakeholders also have their own areas of expertise and have value to
add to a project. An effective approach is to
assume that everyone involved with your project has
equal value and therefore should be treated with
respect. Huet Landry suggests the concept of
"Other Esteem", instead of "Self Esteem", where you
treat the opinions of others as if they have more
value than yours. With this approach your
first reaction to another's idea will be most