I've joined the Anti-IF Campaign

Thursday, 12 March 2009

The 12-day week

The last month or so at work has seen a change in emphasis for me, as I've shifted my focus to the Ubiquity XForms project that we're working on in partnership with IBM. Ubiquity XForms is an open-source, cross-browser, client-side javascript library that implements the W3C's XForms 1.1 recommendation and is now pretty close to reaching full compliance in Internet Explorer and Firefox.

In an effort to break the back of the remaining features, we agreed as a team to throw ourselves whole-heartedly into a timeboxed coding marathon. This involved ditching the typical iteration plan for a couple of weeks and instead throwing all of the outstanding story cards onto the whiteboard. It was then a case of ploughing through the stack of cards as quickly as possible. Although this approach breaks almost every principle of XP, the consensus was that it was worth the extra effort at this point in time. So, coming towards the end of an arduous 12-day week, I've got a few observations about the experience.

At the start of the week I drew up a new BVC on the whiteboard by my desk. I had in mind the run-rate charts that television broadcasters put on screen during coverage of limited-overs cricket matches. It is similar in many ways to Scrum's burn down chart, except that the progress is plotted as a required rate of stories per day rather than a sum of all the outstanding work. I have no idea whether this kind of chart is one that has been used by other devlopment teams in the past, but I thought it was pretty useful in our situation. Update: Here it is.

Predictably, there was a big increase in stupid, sleep-deprived coding errors, especially in the evenings. The cost of these was kept reasonably low because of TDD. Code a bit, test a bit, code a bit, test a bit, code a bit, what the...? Keeping the cycle tight meant that it was never a big deal to undo some changes or svn revert before having another go at something. The thought of doing it without that safety net of unit tests is genuinely frightening.

Something that I hadn't expected was the sense of unity and common purpose that evolved within the team. Most of the time, each of us is working on a separate project, pretty much isolated from everything else that is going on. Obviously we talk about each others' work and so on, but there is rarely any collaboration between us. This has never seemed remarkable to me before, it was just the norm in our office. But the situation now is a noticeable improvement and I hope that we are able to maintain it.

Ultimately, I think that the coding marathon has been part-success, part-failure. We didn't finish everything that we set out to, but we achieved a fair amount and learned some new things on the way. I'll be very interested to hear everyone else's thoughts during the next retrospective.

0 comments:

Post a Comment