Sunday, 27 February 2011

Guided by tests - 5 years 0 failures

Went to Skills Matter last week for a talk by Steve Freeman and Andrew Jackman - Five Years of Change, No Outages.

Very interesting experience report on the experience of implementing a system for an investment bank.

It was the banks 3rd or 4th attempt to try and get a working system - Steve and the team delivered it in 9 months ( Project Manager, 2-3 BA's, 4-5 devs, 1 DBA ) and it has been working ( with changes ) for the last 5 years with a third generation team working on it.

It was implemented by doing XP by the book. Within 2 weeks they had a Walking Skeleton and continued to deliver every 2 weeks.

The team did not sit around debating quality - they just Got On With It.

The PM gave the team great support - no doubt due to the 3 or 4 previous failures. The team used pair programming ( the interview process for the team had a pairing exercise ) and the PM could see the sense of this due to a past experience where a contractor had been moved on and they found his code was unusable and needed a rewrite which cost the project a few months delay.
The team were co-located - again, there seemed to be no arguments from the PM who backed their approach.

FIT tests were used - the devs had experience of using them and knew where the problems were. Initially the BA's were not used to going to the level of detail required for these tests but soon became converts. They even used the FIT tests to explore the system and would bring people down from other teams to show off their tests.

No code was written until they had FIT tests with examples. This took time as the requirements were not clear so it also had the benefit of shaking out the real requirements.

The FIT tests were also used to explain the system to third parties that were using it.

Steve and Andrew showed actual examples of these tests and showed tests from 2005 and 2010 and you could see how sophisticated the tests were.

Steve emphasised that the primary purpose of the tests was communication.

Retrospectives were still being done every 2 weeks, there was 'relentless progress' as there was no stopping to deal with crashes or having to firefight and the regular releases were done on a Friday before the team went off to lunch ( a sign of the confidence in the system )

The devs were on front-line support 24x7 which was a great incentive to them to make sure the system was rock solid

The only drawback seemed to be that once the system was up and running and working then people thought that it must have been an easy problem to fix and forgot the previous failed attempts.

Excellent experience report and afterwards Steve stayed around to answer questions and sign my copy of his Growing Object-Oriented Software Guided by Tests book. It was good to find I wasn't the only person there with the book as there was someone else behind also with a copy.

Steve did remark that my copy seemed new so maybe it's time I read it again and turned a few corners of pages down...

No comments: