Why would anyone want to become agile?
I’ve seen it time and again “how do you become agile?”-style of headlines on papers, workshops, blogs etc that are selling “agile”. What’s up with that? Surely being agile is not a goal but a mean to accomplish something else like working more efficiently, making more money, having more fun at work or whatever is what you are actually after.
As an example I see some debate about whether one is really doing scrum or not. One way to find out is to do the Nokia test: http://agileconsortium.blogspot.com/2007/12/nokia-test.htm which I by the way think is nice and concrete. As the author of the blog-post points out you really can’t say you tried scrum and it didn’t work if your teams don’t pass the test.
Fair enough, but I’m not really interested to prove to someone that they were or were not really doing scrum, in fact, I don’t care about scrum though i think it is a very neat and useful package. I want to help my clients be more successful in developing software. I find that agile methods, including scrum, work really well for this which is not that strange since it is really all about observing and adjusting continuously towards a goal. This is a tactic that always works for process control, though it is not the most efficient way to do things if the problem is well defined (an attribute that developing software typically does not display).
I am of the opinion that there is way too much focus on the means and too little at the ends. What do we want to accomplish? Why are we looking at agile methods in the first place? I would say that the most important thing regardless of process is to have a well defined goal that is clearly communicated to each and every person involved in the development work. If you have that, the rest becomes really natural: “are we closer to the goal today than we were yesterday?”, “does this contribute to reaching the goal?”. When I say goal I don’t mean things like “all our code should have a cyclomatic complexity below 5” which while having value and being easy to measure do not really help the end-user experience other than indirectly. I’m talking about the reason money is spent on the particular work we are doing.
I’ll leave you with yet another of those tedious martial arts metaphors made by guys like me that have no actual personal experience in the subject:
They say that if you want to break something, like a piece of wood with your fist, a common mistake is that you try to hit the piece of wood really hard. That will likely result in you hurting your hand rather than accomplishing what you want. In order to break the wood you must aim beyond the piece of wood and hit through the wood. Whether that is actually the case I’ll leave up to someone who really knows martial arts… but true or not. It illustrates my point, in order to succeed in being agile you better aim beyond being agile and go after what it is you really want!