Evolvability
Published June 24, 2006 by John
A blog post by Dan North has some great bits on agile software processes, using the analogy of evolution.
the various flavours of agile development, such as XP, Crystal, Scrum, Lean and DSDM, are all trying to solve the same problem, … they are trying to make software delivery evolvable. This ensures that delivery isn’t wrong-footed by a change in the project’s ecosystem or environment.
More than that, though, he puts forth the agile/evolvable benefits in concise and straightforward terms, as well as pointing out that it’s a process that is most often going to be slow and organic.
You can’t just walk in and announce that “this is how we do things now”. You need to take the time to understand and appreciate the existing ecosystem, and present the change process as a simple and natural way to improve delivery. At a getting-things-done level this is usually pretty straightforward: tested code tends to break less than untested code, and paired code tends to be better designed than solo code, so the incremental changes are intuitively a Good Thing.
And as Jason Yip points out, there are some great quotes from Linus Torvalds in the comments section.
This is the kind of post that I think does agile thinking a service, especially with some of the backlash to agile that I’ve been noticing. Most of that seems to be too much chopping away at the trees without seeing the forest, and the forest is big enough now that it’s not going to die. Whatever the word “agile” becomes or comes to connote, the practices and mindset that it let loose on the software world are the seeds that are making lots of new skills grow. The field of software development is so young, based on how much of what’s been learned actually gets applied, that we have lots of growing yet to do. I don’t anticipate being bored with this work any time soon.
Filed under Process
Posts