Monday, October 31, 2005

Streamline BUILD and TESTS for Short Iterations

This article (from "Be(come)ing Agile") makes the point that you need a very streamlined build, deployment and testing process to effectively move toward an Agile process.

This is something I can really attest to. Our most recent build and deployment has not gone well. Our iteration was miles too long. It was the first deployment of our in house system, with a face for the users. Until now it has been web services, linking external systems together, and all only for testing and demonstrations at this stage. We knew the iteration was dragging out too long. There was an end in site, but we kept extending for just one more feature... we knew this was happening, as it stretched out. We are in a unique situation in that we have no active users as the business is focussing on other "startup related" issues - such as capital investments, and not giving our development the attention it needed to be successful.

I barrelled on with development - we had to do something - we still monitored requirements diligently, but developed far too much, especially some new Windows Servies and many database schema changes and the deployment process has taken forever.

The reason I am not entirely panicing and this stage is that, we knew this was happening and broke the rules consciously. With no immediate business impact of our development efforst just yet, the scenario is unique - something I have never experienced before and am unlikey to experience again, and now provides me with a great example of how not to build and deploy software.

Even so, there was a lot of "research" type development going on with this iteration and many tools and processes were still experimental. I am happy we've learned some valuable lessons here and now have the environments and framework that will deliver what we need - platforms for building, deploying and testing software in short iterations and obtaining fast relevant feedback from our users.

Getting this cycle right, easy to use and effective is a key first step, in the early part of my "Be(come)ing Agile".

In hind sight, we could've easily shorten the iterations by treating ourselves as customers, and making life better for us, by deplying working frameworks earlier, even with no end user value.