Of Victory and Pair Programming

It’s been 3 weeks, 450 man-hours and 6,880 lines of code, and it’s done.

Working as a developer for a call center, I often see some interesting and rather challenging projects. The latest is no different. One of our largest clients (a major bank) asked us to develop an application to assist in processing credit card applications.

While the original request seemed simple, the final specification though was far less simple. A highly dynamic, intelligent, and multi-language application was needed. It’s been close to three months since development started, and 3 weeks since the current major update was started.

Weighing in at 22,880 lines – this is a rather large application, highly dynamic, fault tolerant, and has complete multi-lingual support.  Built in VB.NET and based on the .NET Framework 2.0, this is the largest .NET application I’ve seen though to production.

Not only was this one of the larger .NET applications I’ve worked on, this is also the first project I’ve worked on using a Pair Programming methodology. I joined the project about 1/4th into the initial development, and since then I’ve been working extensively with Laura to complete the project.

After reading about the methods used by High Moon Studios, Laura and I decided to attempt pair programming. In March when this project was first mentioned, we decided this would be the ideal project to go forward with this experiment.

To ease development, I acquired an HP desktop (with a few upgrades) and Laura provided a pair of keyboards and mice for use as a development workstation. With two developers at a single computer, the boost in productivity is remarkable. While I always believed that pair programming could not add significantly to productivity, the quality and speed of development of this project proved me wrong.

With nearly 23,000 lines of fully optimized code, and early testing showing remarkably few bugs, the short development timeframe makes this a remarkable project. When this project started I wouldn’t have dared to dream we could achieve so much, so quickly.

Looking back at the progress made, I’m now a believer that pair programming is the way to go. While I still have many reservations about the concepts of Extreme Programming, at least this aspect is a good idea.