Monday 11 June 2007

Training in the art of extreme programming

One of the challenges we face when new developers start with us is introducing them to the wonders of Extreme Programming (XP).

For the un-initiated, XP is a set of development principles and methodologies first formalised by Kent Beck in his book Extreme Programming Explained.

This approach to development has dramatically reduced our defect count so when we release new features into our system they just work. This has served to increase confidence in our service not only with our customers but also internally. Our sales and customer support teams know that they are unlikely to be fire-fighting on the front line while the technical teams are fixing the latest release. I'm not saying nothing ever goes wrong, but it is most definitely the exception.

All this has been achieved while maintaining the agility of the development team. They can respond quickly to requirements or enhancements within weeks rather than months. Given the complexity of our system now, multiple message formats, routing features, multiple languages, multi-currency billing, real-time monitoring, etc, etc this is great news for the business.

We can add new services and features without breaking the existing system.

However, this isn't possible without a very different development approach. Pair Programming is probably the most obviously different element. This is whereby development is completed with two people side-by-side on the same computer. But Test Driven Development, the The Planning Game and the other practicies can all be quite daunting for someone new to the approach.

We have a couple of new developers starting with us in July so this is particularly pertinent. Previously I have thrust a copy of Extreme Programming Explained into the hands of the new guys and then immersed them in the process straight away. Nicholas, one of the senior members of the development team, has found an alternative in the book Extreme Programming Adventures in C#. He's highly recommended it as a book that explains how as well as why in the context if C# development rather than something more abstract.

So I'm off to buy some copies, will let you know how we get on.

No comments: