Tuesday, July 25, 2006

Scrum - Lightweight methodolgy meets formality

The other day I heard someone mention the lightweight development process Scrum. I had heard of it in passing before, but didn't know anything meaningful about it. With such a catchy name, I thought I should check it out.

It turns out, it's a really an interesting approach to software development. In many ways it's just like Extreme Programming, minus some of the controversial parts (pair programming, for example). In fact it seems less interested in how you write your code (test first or not) and more interested in creating an environment where you can actually spend your time coding.

What I found most remarkable is that Scrum took shape through formal process development. In other words, this isn't just a process that feels right to developers but actually has the recommendation of people who study processes behind it.

As the Scrum propaganda explains, there are two kinds of processes. Those that are repeatable and well defined and those that aren't. Most software development processes assume that the former approach best describes software development.

Basically, if us geeks would just pull it together and focus, we would have enough definition and repeatabilty in our tasks to make traditonal methods work.

But, of course, we've learned as an industry that this simply isn't true. Development, as much as we wish it were, simply isn't a well defined science.

Take a simple example like "setup tomcat server." Is this a 5 minute job, because all you have to do is download a zip file and follow the instructions? Or is it a 2 week job because you are going to get ClassCastExceptions and have no idea why. Both can be true.

Scrum looks at this reality in development and faces up to it. Its response was to embrace this chaos and to design a process that works with this reality. And because there already is a science for dealing with these types of processes Scrum doesn't need to be designed in a vaccum.

I found this whole story and approach fascinating. As my team grows, and we need a more formal approach to development, Scrum seems like an obvious candidate for adoption.

It's either that, or I can write up our current process, give it a slick name, write a book about it, and earn fame and fortune.


No comments:

Post a Comment