30 July, 2008

A tale of three projects

Let me tell you about three projects that I've worked on recently.

Project A was a waterfall project for a Fortune 500 equipment manufacturer. We had a department of around 150 developers and QA people. We ran a full year behind schedule at one point, and had to spend three months just fixing bugs to stop churning. Late in the project, the team wound up working lots of overtime, which burned everyone out. Eventually, the whole product line was canceled, which torpedoed a billion-dollar initiative for the company.

Project B was an XP project developing an n-tier workflow and billing system with a custom desktop client. We had a team of 15 developers and two or three support people, working in three agile project rooms. The system was of roughly the same size and complexity as project A. In a typical 3-4 month release, we accomplished more than project A did in the four month release that ran to 16 months.

Project C was an xP@Scrum project doing SaaS with a modern rapid development framework and a RIA front end. It was a "green field" project, staffed with a team of five experienced agilists, including several veterans of project B. We avoided some of the agile adoption pitfalls that project B ran into, stayed on top of our technical debt, had effective tests (at full coverage) from the start, and generally got off to a good start and stayed there. We estimated our work by using the same number of "story points" that it would have taken us on project B... but at one point per pair day, not per pair week.

Doing some quick back-of-the-envelope math, project B was at least 40 times as productive as project A, and possibly more because B actually delivered reliably, and A didn't. Project C was five times as productive as project B, and therefore 200 times or more as productive as project A.

Which project would you rather fund?