Paired Programming is worth the Expense

2

Posted by Lawrence Sinclair on 05 Feb 2013 at 00:39

Content_paired_programming_east_agile_-_abstract

Research has long found that paired programming makes sense. But I still regularly come across people who feel it costs twice as much for the same results.

Actual scientific experimentation has found thatfrom a financial perspective, paired programming costs about 20% more to develop a given product, but it produces that product almost twice as fast and with fewer defects. Laurie Williams and Robert Kessler put it another way in "All I Really Need to Know about Paired Programming I learned in Kindergarden"[1]:

An experiment by John Nosek at Temple University studied 15 full-time, experienced programmers working for 45 minutes on a challenging problem, important to their organization, in their own environment, and with their own equipment. Five worked individually, 10 worked...

Ping Pong vs. Foosball

1

Posted by Lawrence Sinclair on 28 Jun 2011 at 11:06

In the Agile Software development world, Ping Pong is somewhat of a meme. There is even an paired programming Test Driven Develeopment (TDD) practice called "Ping Pong". In this practice, two programmers work together on the same software feature; one writes automated tests that pass when the feature has been implemented properly, the other writes the actual code that implements the feature.
The two compete to some degree to outwit each other, turning a complicated problem into an engaging intellectual game. Whether the game or the development practice came first, one often sees paired programming teams near Ping Pong tables. Pivotal Labs, a Ruby on Rails practice in San Francisco, was one of the first development firms that I noticed doing this, although it was fairly common practice...

Why Paired Programming?

0

Posted by Lawrence Sinclair on 20 Jul 2010 at 20:18

It is very important for us to not compromise on paired programming.

eXtreme Programming, orXP, (especially at East Agile) is an engineering process designed to create a consistent, reliable, scalable and low risk software development environment that reduces risks especially in already unstructured, uncertain and risky business ventures.Not doing full paired programming can introduce the potential to complete a project faster, but also introduces a very significant risk of catastrophic failure.We never choose to make the speed in exchange for substantially increased risk.

That is not to stay that we must pair program 100% of the time. There will be timeswhen it makes sense for a team to splittheir focus or for individuals to work alone.Examplesof this include (1) reading and...

Uniquely East Agile

0

Posted by Lawrence Sinclair on 11 Jan 2010 at 04:58

One thing that seems to be very unique about us is that we really do paired programming. This practice is not for everyone by far. A lot of people don't get it and won't get it. But for those that get it, we are one of the few deep practitioners. Pivotal Labs, of course, is another one. Just from talking to people from other leading development shops it seems like 90% or more of Ruby on Rails agile companies do not practice it to the extent that we do. Paired = higher quality & lower risk of project interruption.

Learn more about Paired Programming on Wikipedia, including information about research on its effectiveness.

Not the best screen hygiene, but a sign of good develpment

0

Posted by Lawrence Sinclair on 24 Dec 2009 at 06:11

If your screens don't look like this then (a) you have better screen hygiene than these developers, but perhaps (b) you're not doing eXtreme Programming right, and in particular, you're not doing paired programming. Having fingerprints all over the screens is an artifact of active collaborative development.

Learn more about Paired Programming on Wikipedia, including references to research on its effectiveness.

Frequently Asked Questions 15

0

Posted by Lawrence Sinclair on 20 Nov 2009 at 23:13

Development process

Please provide details of your process and the way you like to run projects. Do you use an Agile or iterative system - will we see regular releases throughout development?. Do you like to communicate via email, phone, IM? Do you have an issue tracker that you use with clients? Do you have weekly status meetings with clients? Do you send status reports every few days? Do you provide one point of contact? How do you handle change requests?


Whenever we have the option, we develop usingeXtreme Programming methodologies.Pivotal Tracker(http://Pivotaltracker.com)manages our tasks, progress, client interaction, and bugs, chores, and issues.


We askclients to provide at least 4 hours per week of time from a business or product managerwho understands the product, how it...