28 February 2011

Then automate the hell out of it...

Software development automation is a great, but underused technique. I call it a technique because it is not a technology. It is one of those things like unit testing, that when you start using it, it is hard to stop.

An important thing to remember with automation is, that it is easy to start using, but it does require maintenance. This means that for it to really succeed it needs a champion and a hero!When a project starts out, all focus is on the functionality we need to develop and on the end goal of the project. The way we get there, besides hammering out code in our favourite IDE, is not foremost on the teams mine, hence the champion.

All developers on a project are busy working on their tasks, which is usually many and underestimated (let's be honest!) The individual developer will probably not have time or indeed desire to take part in the ongoing maintenance, hence the hero.

While the champion will burn with desire to automate the hell out of it, restraint is advisable. This is especially the case, if the organisation or the team is new to automation. Automation can seem scary, as what you do is essentially to give up control. And giving up control to a process you don't understand, developed by a person that might not be around forever can seem like the recipe for disaster to any developer who has ever been on the sharp end of a manager's rage against why you can't deploy the damn code.

Start small. Start with the basics. Start with something where the future of the project is not in question. Start with just compiling the code. Win over the team. And then automate the hell out of it...