September 26, 2014
What is value? (part 2)
As always, we will start with the Agile Manifesto. The manifesto specifically gives us a set of values in which we use as the building blocks for our development.
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
We can see the Manifesto is ALL about value.
The first thing to note is that value is derived by ‘doing’ the development of software and by helping others to do it. It is not theoretical.
Here we derive our first principle of value:
1. Value is derived by doing and helping others to do
Next we have 8 units of value. They are also prioritised. We can see the following 2 groups of value:
a) Individuals and interactions
b) Working software
c) Customer collaboration
d) Responding to change
And we have a secondary set of values
a) Process and tools
b) Comprehensive documentation
c) Contract negotiation
d) Following a plan
We can now put together a further set of principles for value:
2. Value is derived from individuals and the interactions between them
3. Value is measured in working software
4. Value is generated via customer collaboration
5. Value is maintained by responding to change
We can also look to the principles behind the manifesto as this too is filled with value statements.
Principles behind the manifesto
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals.
- Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development.
- The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximising the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organising teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
Removing duplicates, from this we can derive this:
6. We value satisfying the customer
7. We value motivated people
8. We value having all the tools we need to get the job done
9. We value trust
10. We value support
11. We value sustainable development and maintaining a constant pace
12. We value technical excellence and good design
13. We value simplicity
14. We value self-organising teams
15. We value having the space to be able to improve
I am sure there are more we can derive from this list. This is a good start for now.
In the next post, I’ll have a look at Extreme Programming to see what values we can derive from that practice.