Sunday, June 26, 2005

What is Agile?

My essay in the first issue of Agile Australia:

What is Agile? The Agile Manifesto says:

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.
A shorter version might be:
Let's talk to each other
Let's just build it and show you
Let's trust each other
Let's respond to what is happening and what we learn.
Let's talk to each other, so we can come to understand one another and learn how to make this relationship successful. Let's ensure that our processes and tools support, not undermine, our ability to talk to each other. Let's create a workplace that encourages both scheduled and spontaneous communication.

Let's just build it and show you, to confirm that we're on the right track and making progress. Let's use working software to communicate instead of trying to describe complex structures with abstract words and pictures. Let's develop software in a way that let's us continuously show you what we've built.

Let's trust each other, so that we can communicate honestly without the need to protect ourselves. Let's work together, not against each other. Let's refuse to benefit at the cost of the other person. If we need a contract, let's ensure it reflects our desire for a relationship based on trust, not just on minimising loss.

Let's respond to what is happening and what we learn, so we can benefit from new opportunities and abandon suboptimal ideas. Let's acknowledge that the environment will change, as will our understanding of it, and embrace those changes. Let's build software in a way that let's us work on features in any order and accept change at any time.

That's the gist of Agile. But at the same time, it's just the beginning.

5 comments:

Anonymous said...

Hi Jason,
I noticed that your "Agile Australia" link is broken which is a bummer since I'm real interested keen on knowing more about it.
Cheers,
Michael

Kevin Rutherford said...

Very nice refactoring! Perhaps the last one could be: "Let's learn and adapt together"?

Jason Yip said...

Thanks Kevin.

I was trying to ensure that the language I was using was much simpler and less likely to be misinterpreted. I'm even worried about "adapt". I do like the shortness of your version though...

Kevin Rutherford said...

"Let's expect the unexpected" ;-)

HÃ¥kan Reis said...

I agree to an extent that it could be a more simplified language. But you loose a big thing when you do that change.

One of the things that are often misunderstood in the agile manifesto is that there should be no documentation. The wording "working software over comprehensive documentation" does not say that, but it tries to shift the emphasis.

However, I think that the wording is important and you are on to something good. So, actually before I read your entry, I did some refactoring myself, but I wanted to focus on usefulness of software in my version of refactoring the agile manifesto