    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: The Agile Manifesto Explained (and a First
Amendment)</title>
        <link>https://members.accu.org/index.php/articles/841</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>




<div class="xar-mod-head"><span class="xar-mod-title">Project Management + CVu Journal Vol 17, #5 - Oct 2005</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c13/">Topics</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c66/">Management</a>
<br />

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c77/">CVu</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c94/">175</a>
<br />

                                            <a href="https://members.accu.org/index.php/articles/c66-94/">Any of these categories</a>

                    -                        <a href="https://members.accu.org/index.php/articles/c66+94/">All of these categories</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;The Agile Manifesto Explained (and a First
Amendment)</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 02 October 2005 06:00:00 +01:00 or Sun, 02 October 2005 06:00:00 +01:00</p>
<p><strong>Summary:</strong>&nbsp;<p>In my last article I set the scene for what I hope will be a series of provocative and informative articles. In the article I described the plight of Pete and his vain efforts to change development processes at his place of work.</p></p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e26" id="d0e26"></a>Last Time</h2>
</div>
<p>In my last article I set the scene for what I hope will be a
series of provocative and informative articles. In the article I
described the plight of Pete and his vain efforts to change
development processes at his place of work. Peter represented the
type of people that will be interested in Agile Software
development - professionals who care, perhaps passionately, about
software development. As Pete Goodliffe points out: &quot;<span class=
"quote">There is more to being a professional than a trade or a
methodology. It is more a state of mind.</span>&quot;</p>
<p>So that's my audience, what of the manifesto. In this article I
will be looking deeply into what I think the Agile Manifesto
says.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e35" id="d0e35"></a>The
Manifesto</h2>
</div>
<div class="blockquote">
<blockquote class="blockquote">
<p>We are uncovering better ways of developing software by doing it
and helping others do it. Through this work we have come to
value:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p><span class="bold"><b>Individuals and interactions</b></span>
over processes and tools</p>
</li>
<li>
<p><span class="bold"><b>Working software</b></span> over
comprehensive documentation</p>
</li>
<li>
<p><span class="bold"><b>Customer collaboration</b></span> over
contract negotiation</p>
</li>
<li>
<p><span class="bold"><b>Responding to change</b></span> over
following a plan</p>
</li>
</ul>
</div>
<p>That is, while there is value in the items on the right, we
value the items on the left more.</p>
</blockquote>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e64" id="d0e64"></a>The Manifesto
Analysed</h2>
</div>
<p>At first impression there is not much to it. 358 characters, 73
words, and 6 paragraphs. Oh and there are 4 bullet points, some
indentation, and 10 of the words are in bold. Lets take the first
sentence:</p>
<div class="blockquote">
<blockquote class="blockquote">
<p>We are uncovering better ways of developing software by doing it
and helping others do it.</p>
</blockquote>
</div>
<p>Now lets take the first two words: &quot;<span class="quote">We
are.</span>&quot; It does not say &quot;<span class="quote">We have</span>&quot;.
This says clearly that the work is not complete it is an on going
evolving process. Indeed I later I will, bravely, be suggesting a
first amendment.</p>
<p>And what about the third word, &quot;<span class=
"quote">uncovering</span>&quot; rather than &quot;<span class=
"quote">developing</span>&quot; or &quot;<span class=
"quote">inventing</span>&quot;. This is because there are a lot good
agile software development practices that are currently in use -
you may well already being using many of them without realisng how
agile you are. This is a very comforting thought. Agile software
development is not magic, it is not necessarily a new way, it might
just be making better use of practices that we already have and
that we know work. Morevoer becoming and being agile is open to
all, not just the elite and gifted. Neither is contributing to the
uncovering of better ways - we can all contribute. Uncovering the
new ways is &quot;by doing it and helping others&quot; the helping of others
takes many forms: magazines, consultancy, conferences, courses,
books, web sites, mail groups&hellip;you can, if you care,
contribute to many of these and thus contribute to the uncovering,
growth and improvement of software development.</p>
<p>So a simple, short first sentence sets the scene for never
ending improvement and shows we can all be involved. Next there is
a preamble leading us into the heart of the manifesto.</p>
<div class="blockquote">
<blockquote class="blockquote">
<p>Through this work we have come to value:</p>
</blockquote>
</div>
<p>I will draw your attention to the last word value. It is very
undersated but, 108 words in, it is crucial as the whole manifesto
is a statement of values and it is a word I will return to
later.</p>
<p>Next we have the significant formatting - four indented bullets
with some of the words in bold. These bullets are four statements
of value. Each statement mentions two related things of value with
the word over used to indicate that the first value, the one in
bold, is of more value.</p>
<p>The bulleting draws the eye to this heart of the manifesto. But
just incase you missed the point the final sentence re-states the
relationship between each pair of values:</p>
<div class="blockquote">
<blockquote class="blockquote">
<p>That is, while there is value in the items on the right, we
value the items on the left more.</p>
</blockquote>
</div>
<p>This is very interesting. Why put these items in pairs and why
emphasise in three ways that one part of the pair is more important
than the other?</p>
<p>Firstly, without the repeated emphasise it might be easy to
conclude that the manifesto says that the things on the right
aren't important at all. That simply is not true. Secondly, the
pairs are not chosen at random there is a relationship between each
side of the pair. My intepreation is that each pair provides a
morale or a warning - a warning to make sure you get your
priorities right.</p>
<p>For reasons I can't explain I am going to call each pair a
bi-attitude. In the next sections I explain what I think the
warnings are.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e111" id="d0e111"></a>Warnings</h2>
</div>
<div class="sect2" lang="en">
<div class="titlepage">
<h3><a name="d0e114" id="d0e114"></a>Individuals and
interactions over process and tool</h3>
</div>
<p>Why are individuals and interactions important?</p>
<p>An organisation, team, or group are made up of individuals. In
order for the team, group or organisation to 'work together' and
meet common goals they have to interact. The nature of how they
interact, and the efficiency of the interaction, can severely
affect the performance of that team. Thus, it is worth spending
effort making the interaction effective. Now, some would argue that
processes and tools can improve the quality of interactions. I have
sympathy with such an argument for I think so too.</p>
<p>So why are process and tools less important than individuals and
interactions?</p>
<p>In a nutshell &quot;Tools support the process and the process
supports the interactions of the individuals&quot;. That's why they are
there.</p>
<p>In a team of one, or a collocated few, you can get away with out
much in the way of a process, and the minimum of tools to build the
system. As the number of people involved, the complexity or size of
the information, the number of locations where the individuals are,
the number of time zones,&hellip; grows, defined processes and
tools can help to stay on top of the situation.</p>
<p>A danger is that a tool might grow to control the process and/or
the process may grow to control the interactions of the
individuals. Is that a bad thing? Well it can be if it reduces the
value that is provided to the business by the interactions of the
individuals. But there are often cases where a tool controls a
process and adds significant value. For example, if your
configuration management is complex a well chosen tool that drives
the process can prevent a myriad of problems. As a second example,
Extreme Programming [<a href="#Beck">Beck</a>] encourages heavy use
of tools and process: &quot;You will perform daily builds; You will run
all automated tests suites; You will&hellip;&quot;</p>
<p>So, defined process and expedient use of tools is not a bad
thing. So I'll ask a different question. Why are individuals and
interactions more important than process and tools? Sorry that is
the same question. How about, how can a process or a tool reduce
the value? Or better, how can a process or tool make it harder to
add value?</p>
<p>At the heart of the problem is the fact that consultants and
software vendors (including those of an Agile persuasion) make
their money by selling processes and tools. It is, perhaps, too
easy to take a process and/or set of tools without consideration of
the benefits that they can supply and without later seeing whether
any benefits have been supplied. To me this is the real purpose of
this beatitude - think hard before committing to what can be
expensive tools and processes. Very often an efficient team can
improve the process at less cost.</p>
<p>The moral: Tools support the process and the process supports
the interactions of the individuals - and don't you forget it!</p>
</div>
<div class="sect2" lang="en">
<div class="titlepage">
<h3><a name="d0e138" id="d0e138"></a>Working Software
over Comprehensive Documentation</h3>
</div>
<p>Well obviously - duh! That was my reaction when I read this and
I would not be surprised if it was yours - so why include this
bi-attitude in the manifesto?</p>
<p>This time I'll start from the back end. Why have a go at
comprehensive documentation?</p>
<p>So many processes get carried away creating comprehensive
documentation and end up creating too much documentation. The
creation of that documentation adds cost to the work and introduces
latencies to feedback making it harder to respond to change and
harder to collaborate with the customer. The documentation often
duplicates information again adding to costs and latency of
maintaining the information in two places. The excess of
documentation, if not maintained is soon out of date diminishing
its value. And oh even worse, out of date documentation can
obviously cause problems making its value negative. In short much
of the documentation either:</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>Adds only a little value</p>
</li>
<li>
<p>Adds value that is only short term value but is kept and
maintained even when its value has diminished.</p>
</li>
<li>
<p>Adds value is but is duplicated in other locations</p>
</li>
<li>
<p>Adds value but is not kept up to date</p>
</li>
</ol>
</div>
<p>So there are a few reasons why documentation may not be needed.
But what documentation is needed? I'll put that another way. What
deliverables provide long term value?</p>
<p>Requirements define what is needed from the software. Software
is working if it fulfils the requirements. Tests are used to prove
the requirements are fulfilled. In my mind that is what really
matters in software development: requirements, software and
tests.</p>
<p>So what is all this comprehensive documentation malarkey that
the Manifesto refers to? It is High level designs, technical
designs, user interface design, standards, use case models, class
diagrams, architecture&hellip;.</p>
<p>Between us we could probably name a hundred different types of
documentation. Why do we need any of it? In my mind there are two
key purposes: understanding and communication.</p>
<p>When you are faced with a new system you want to be able
understand how you are going to solve the problem. You will be
analysing and designing a system. This is the forward engineering
part of your work.</p>
<p>If you are not working alone you will want to communicate this
incite to others. The number and nature of individuals you have to
interact in order to make this communication will influence the
nature and amount of documentation created - but remember to
consider how much will need to be maintained.</p>
<p>In order to understand how you are going to solve the problem
you will need to understand what is already there. And you will
want to communicate this understanding to anyone who, in the
future, wants to evolve the system. This is the reverse engineering
part of the work. In summary it is an art of:</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>Understanding and communicating what is needed (forward
engineering)</p>
</li>
<li>
<p>Understanding and communicating what is there (reverse
engineering)</p>
</li>
</ol>
</div>
<p>To conclude, the manifesto is warning us against a costly
pitfall in which we strive to provide comprehensive documentation
that does not provide value.</p>
</div>
<div class="sect2" lang="en">
<div class="titlepage">
<h3><a name="d0e183" id="d0e183"></a>Customer
Collaboration Over Contract Negotiation</h3>
</div>
<p>To me this is the hardest bi-attitude to argue in favour of
convincingly but I'll try - starting with the supplier consumer
model that this alludes to.</p>
<p>The supplier consumer model for software development has a
simple but entrenched form. The consumer wants a system that does
abc. The supplier says that will cost you &pound;xyz (or $xyz or
&euro;xyz or&hellip;). If the consumer is happy with the cost the
supplier, well, supplies. Oh if only it were that simple!</p>
<p>In practice the definition of abc are not really known AND, even
if the definition of abc where known, the cost &pound;xyz is not,
AND even if the requirements are understand there is a reasonable
chance that they will have to change, AND even if the costs are
understood there is a reasonable chance that the costs will change
AND&hellip; It would be easy to rant on. I'll emphasise these
perils by putting (some of) them in a list:</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>The requirements (abc) are not understood initially - a risk to
the consumer</p>
</li>
<li>
<p>The requirements (abc) are liable to change - a risk to the
consumer</p>
</li>
<li>
<p>The costs (xyz) are not fully understood - a risk to the
supplier</p>
</li>
<li>
<p>The costs (xyz) may change - a risk to the supplier</p>
</li>
<li>
<p>We can't know if abc is what is needed until it is delivered an
used - a risk to the consumer</p>
</li>
<li>
<p>People delay because they are reluctant to sign of the
definition of requirements - (a cost to both parties)</p>
</li>
<li>
<p>It costs money to define (or redefine) the contract such that
what is to be delivered is understood - a risk to both parties</p>
</li>
</ol>
</div>
<p>This last point is interesting. Even though it is difficult to
be precise in your definition of requirements, the consumer will
not be happy parting with (or committing to part with) money unless
they know what they are going to get. Equally the supplier will not
be happy committing to deliver until they know what they are
supposed to produce. So in order to be sure of what they are going
to get/produce they define a contract. And then hope it is
fulfilled.</p>
<p>So what is the alternative?</p>
<p>The problem, in my opinion, is that the requirements are part of
the contract.</p>
<p>The solution is Feedback. This simple notion is so important I
will say it again - and louder. Feedback!</p>
<p>Instead of defining requirements fully up front and
incorporating them into a contract, the contract does not specify
the requirements at all (or at least not very much). Instead it
specifies the approach. An approach that gives both parties
opportunities to adapt to the perils listed above (and others not
listed) while protecting the interests of both parties. The work is
then split into iterations. During each iteration, the consumer and
supplier work together to find out how best to give value to the
consumer for the money that will be spent during the next
iteration. It is a very simple proposition but it seems to work
very well.</p>
<p>Short iterations allow BOTH parties to get FEEDBACK and examine
whether the requirements have been understood. If the requirements
change, the change can be incorporated into the next iteration.</p>
<p>Since the contract defines the approach it doesn't have to
change. But it can have a clause in which the consumer can
terminate if value is not being provided or if they have enough
value so far. This may not appeal to some suppliers but early drop
out clauses could be introduced. Forgive me, I am acutely aware
that I am not a lawyer and my contract speak is unlikely to be
correct, but I hope you get a feel for how it could work.</p>
<p>In summary, the contract defines the approach, the requirements
are defined by collaboration between the consumer and supplier,
feedback is used to help both parties provide maximum value to the
consumer.</p>
<p>And you never know everyone could be happy.</p>
</div>
<div class="sect2" lang="en">
<div class="titlepage">
<h3><a name="d0e232" id="d0e232"></a>Responding to
Change over Following a Plan</h3>
</div>
<p>A project manager, when presented with this bi-attitude might
say. &quot;If you don't follow the plan how will you deliver?&quot; or &quot;If
you don't follow the plan your project will deteriorate to
anarchy!&quot;</p>
<p>But there is a simple counter to this: &quot;If you follow the plan
how do make sure you are delivering what is needed?&quot; Or put another
way: &quot;If you don't respond to change, how are you going to deliver
what is needed? - You may deliver something but that something may
not be needed anymore.&quot;</p>
<p>Change is a major obstacle to delivering what is needed - a
major obstacle to providing value to the business. Many things can
change during the life of a project:</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>Requirements</p>
</li>
<li>
<p>Costs</p>
</li>
<li>
<p>Budget</p>
</li>
<li>
<p>Staff</p>
</li>
<li>
<p>Management</p>
</li>
<li>
<p>Stock market</p>
</li>
<li>
<p>Laws</p>
</li>
<li>
<p>Resources</p>
</li>
<li>
<p>Priorities</p>
</li>
<li>
<p>Understanding of the problem.</p>
</li>
<li>
<p>Sickness</p>
</li>
</ol>
</div>
<p>I could easily list loads and loads more, anyone one of which
could render the plan invalid.</p>
<p>Let me get one thing straight. Planning is not a bad thing.
Planning is a good thing. It is such a good thing that you should
do it all the time. The problem is sticking to the plan rather than
adapting the plan, re-planning, in the face of change.</p>
<p>The morale:</p>
<p>If you are going to plan, plan often. That way it will be easy
to make sure you are providing value to the business. If you are
going to be planning often you need an approach to planning that is
a low overhead to the project.</p>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e283" id="d0e283"></a>A First
Amendment</h2>
</div>
<p>I have now given my view on what matters in relation to the four
bi-attitudes, what they mean and what I think the message is.
Having done all that, there is so much more that could be said. For
example, I have given no indication on how to provide a system in
which you communicate your understanding of the system without
creating unnecessary documentation. To do would take a book -
fortunately such books exist, for example Fowler [<a href=
"#Fowler">Fowler</a>]</p>
<p>These bi-attitudes do not live in isolation - rather they are
closely related and interlinked.</p>
<p>Working Software is for me the most important. But the value of
the working software diminishes if it doesn't quite do what the
business would like, thus we must respond to change. To respond to
change we must collaborate with the customer. And in doing all of
this we have individuals interacting while being supported by
processes and tools. Once again I am going to rephrase what I have
said. Working Software is for me the most important in the list.
For I have a value that both links them and sits above them. Under
Individuals and Interactions I talked about &quot;the value that is
provided to the business by the interactions of the
individuals&quot;</p>
<p>Under working software I discussed the documentation and
deliverables that really add value to the consumer.</p>
<p>In customer collaboration I promoted the idea of &quot;the consumer
and supplier working together to find out how best to give value to
the consumer for the money that will be spent&quot;.</p>
<p>In responding to change I mentioned &quot;obstacles to providing
value to the business&quot;.</p>
<p>There is a common theme. For me the most important is providing
(maximum) value to the consumer.</p>
<p>If I want to add this to the manifesto as an amendment I will
have to say what I value it more than.</p>
<p>I value it more than &quot;on time on budget&quot;.</p>
<p>Many organisations and process place emphasis on &quot;On time on
budget&quot;. But on time on budget is easy to fulfil. Give yourself
lots of time and lots of budget, whittle away both writing articles
and playing Quidditch and then provide a quality product that might
be what the business wants. But equally it might not be what the
business wants and it may well not provide maximum value for the
money spent. The problem is that the definition on time or on
budget can and should be allowed to change.</p>
<p>So I would like to propose a first amendment to the manifest. A
fifth bi-attitude:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>Providing value to the business over on time on budget</p>
</li>
</ul>
</div>
<p>So what is your favourite?</p>
</div>
<div class="bibliography">
<div class="titlepage">
<h2><a name="d0e317" id="d0e317"></a>References</h2>
</div>
<div class="bibliomixed"><a name="Beck" id="Beck"></a>
<p class="bibliomixed">[Beck] Beck, Kent with Cynthia Andres,
<span class="citetitle"><i class="citetitle">Extreme Programming
Explained: Embrace Change</i></span>. Addison Wesley. 2004. ISBN:
0-321-27865-8</p>
</div>
<div class="bibliomixed"><a name="Fowler" id="Fowler"></a>
<p class="bibliomixed">[Fowler] Fowler, Martin, <span class=
"citetitle"><i class="citetitle">Refactoring: Improving the Design
of Existing Code</i></span>. Addison Wesley. 1999. ISBN:
0-201-48567-2</p>
</div>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;agile development</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
