iSnare.com - Free Content Articles Directory
Authors Contents [Advanced Search][Add OpenSearch][Job Search]
Distribute your articles to thousands of article sites for only $2 and below! Read more...

Index  Computers and Technology
 

The Pitfalls And Perils Of Pair Programming

 
[ Contact the Author] [ Send to a Friend] [ Article Publisher] [Make PDF] [ Print] [ Bookmark & Share]
 
Read our Terms of Service before reprinting this article. The submitter specified above has claimed the rights to this article.
V. Berba Velasco

Pair programming: People either love it or hate it.

The concept of pair programming first became popular thanks to “extreme programming” or XP—a set of practices that supposedly allows companies to develop software in a more efficient, more “agile” manner. Proponents of XP claim that it allows programmers to respond to changing or ambiguous software requirements without sacrificing quality. Skeptics disagree, arguing that these alleged benefits are either illusory or exaggerated.

XP proponents argue that two programming heads are better than one—that two software developers working together will tend to produce better, more reliable and more maintainable than a single programmer working alone. This practice is known as pair programming, and at first glance, it sounds like a great idea. Personally though, I think that it smacks of a “one size fits all” mentality. That is, it assumes that two programmers working in concert will indeed be more efficient and that they will produce better results. I think there is good reason to believe otherwise.

The much vaunted Williams study

XP fans typically point to an infamous study headed by Prof. Laurie Williams at the University of Utah. In this study, Williams concluded that pair programming takes 15% more time than solo development, but results in software that is 15% better. They argue that this modest increase in development time is a small price to pay, since better code quality means that less time and effort will be required later down the road – during testing and maintenance, for example.

I think that there are numerous problems with this study, though. How did the researchers gauge software quality, for example? The used the length of code as the quality metric; that is, the shorter the source code, the better they deemed it to be. The reported, “[The paired teams] consistently implemented the same functionality as the individuals in fewer lines of code. We believe this is an indication that the pairs had better designs.” I think this is a hasty leap of logic, to say the least!

Does shorter source code exhibit greater quality? Sometimes, perhaps. However, one could just as easily speculate that the longer code contains more bug fixes and safeguards. In addition, adding more code lines – to implement a design pattern, for example – can make the software more efficient or easier to maintain. I think that the presumed correlation between code length and lack of quality is poorly justified at best.

The study also exhibited a severe case of participant bias. The students in a class were asked if they preferred to work in groups or alone. 35 of the respondents said that they preferred collaborative working; of these students, 28 of them were selected to constitute the pair programming experimental group. The remaining seven were placed in the solo programming group, i.e. the experimental controls. This created a strong experimental bias; all of the pair programmers were willing volunteers, whereas some members of the control group were there reluctantly.

What’s more, 13 out of the 14 pairs were self-selecting; that is, students were allowed to pick their partners willingly. Once again, this biases the results, since participants are likely to select partners with whom they are particularly compatible.

(Interestingly enough, these biases could have been easily avoided by assigning pairs randomly. I don’t wish to cast aspersions; however, I can’t help but wonder if Prof. Williams and company might have unconsciously biased their experiment to demonstrate the superiority of pair programming.)

Short-circuiting the creative process

In short, the supposed evidence for increased productivity under pair programming is questionable at best. In addition, we should ask if there’s any reason to believe that pair programming can be counter-productive or otherwise harmful.

I believe that it can be. Pair programming can certainly help people catch or prevent bugs; as the hoary cliche goes, two pairs of eyes are better than one. When faced with a thorny problem though, one often needs to let the problem percolate in one’s brain for a while before arriving at a proper solution. Often, that’s how creative minds operate; they need to let their minds sift a problem first before attempting to fix it.

With pair programming though, this process is short-circuited. Instead of letting one’s mind digest the problem in due time, pair programming puts pressure on people to arrive at a solution more quickly. Sometimes, this may produce better results; however, it can also have the opposite effect. I suspect that for the most creative minds, this kind of pressure can stifle creativity rather than hinder it.

But wait! Isn’t there power in numbers? Aren’t there times when the best results are produced by having people brainstorm and confer? Certainly… but these “meetings of minds” don’t have to occur during the programming process. They can occur during planning sessions, during design reviews, or when sitting around a lunch table. We shouldn’t dispense with group troubleshooting and design; we simply shouldn’t force this to occur at the coding stage. That can do more damage than good.

What’s more, the most creative minds often need a measure of playtime – an opportunity to play around with the code, tentatively exploring various options and letting one’s mind roam free. This can be difficult to do when another programmer is looking over your shoulder. After all, what should we do – explain and discuss every tentative step? For a creative mind, this can be stifling indeed.

Conclusion

In short, I think that the evidence for pair programming’s effectiveness is questionable and overblown. I also think that there’s good reason to believe that pair programming can stifle the creative process, instead of helping it. Can pair programming be helpful? Certainly… However, when forced upon people, it becomes a “one size fits all” strategy—and unfortunately, a single size can’t possibly fit everybody, no matter what the salespeople say.

Important NoticeDISCLAIMER: All information, content, and data in this article are sole opinions and/or findings of the individual user or organization that registered and submitted this article at Isnare.com without any fee. The article is strictly for educational or entertainment purposes only and should not be used in any way, implemented or applied without consultation from a professional. We at Isnare.com do not, in anyway, contribute or include our own findings, facts and opinions in any articles presented in this site. Publishing this article does not constitute Isnare.com's support or sponsorship for this article. Isnare.com is an article publishing service. Please read our Terms of Service for more information.

biotech company (http://www.immunospot.com, http://www.elispot.co.jp, http://www.elispot-analyzers.de) that provides ELISPOT plate readers and serum-free media.
Article Tags: code [See Dictionary], pair [See Dictionary], programming [See Dictionary]
Got a question about this article? Ask the community!
Article published on September 07, 2007 at Isnare.com
 
Rate this article:

On The Importance Of Good User Interface Design
Submitted by: V. Berba Velasco

It seems obvious, but it’s often ignored A good user interface design can spell the difference between acceptance of a software product and its failure in the marketplace...

A Common Misconception About Object-Oriented Programming
Submitted by: V. Berba Velasco

I’ve seen it time and again A computer programmer proudly proclaims, “Yeah, my code is object-oriented...

Using ‘get’ And ‘set’ Might Be Something You’ll Regret
Submitted by: V. Berba Velasco

It’s an all-too-common pitfall Programmers who attempt to write object-oriented code decide to make all of their data variables private, while creating public get() and set() function pairs for each one...

When Is A Software Engineer Not A Software Engineer?
Submitted by: V. Berba Velasco

The title of “software engineer” has got to be among the most highly abused in the corporate high-tech world...

Design Your Dream Deck With A Computer
Submitted by: Jesse Akre

When going about adding a deck to your home, you want it to be perfect It must fit in with the scheme of your home, and you don’t want it to be too big or too small...

Youtube Video: How to Convert Articles to Youtube Video?
Submitted by: Said Karimli

Youtube video marketing has become one of the most popular online promotion methods for both companies and individuals...

Using IP Cameras in Prisons and Correctional Facilities
Submitted by: Wesley Fernley

In prison and correctional facilities, it's critical to have a proper video surveillance system This is why more and more prisons are opting for the IP Camera which works like a normal surveillance camera but with the added benefit of internet access...

How Anti-Virus Softwares Detect Threats on Your Computer?
Submitted by: Seomul Evans

Antivirus software authors are constantly looking directions to better the functioning of their scanning engines...

How to Find Out if Your Computer is Infected With Spyware?
Submitted by: Seomul Evans

Spyware is computer software that is installed sneakily on a personal computer to stop or take unfair ascendance over the user's interaction with the computer, without the user's informed consent" The risks of a Spyware infected computer vary in nature and severity...

Finding the Best Computer Protection Against Viruses
Submitted by: Seomul Evans

Wherever do you search the finest computer virus security When you're a regular on the Internet, you need the security from nothing lower than the finest computer virus protection, as the truth is that, there are a lot of terrors out there, and you need protection to assure your online safe...

How to Remove Trojans From Your Computer
Submitted by: Seomul Evans

OK...

Hightech Cameras Making Sport Training Easier
Submitted by: Jesse Akre

Lately, the advances in commonly used everyday items has increased dramatically We have cell phones that can double as MP3 players, as well as having internet capabilities, video consultations on our computers, digital cameras that can download right to the computer and then be sent in for printing, and so on...

Choosing a Guillotine Style Paper Cutter
Submitted by: Jeff McRitchie

An important piece of equipment to have in your copy room or work area is a guillotine paper cutter Guillotine paper cutters can help you quickly trim large stacks of paper...

MBM Destroyit 3803 Shredder Review
Submitted by: Jeff McRitchie

The Destroyit 3808 is a heavy duty shredder that the manufacturer posits as a centralized, heavy-use office shredder...

MBM Destroyit 4005 Shredder Review
Submitted by: Jeff McRitchie

Strengths: 1 The MBM Destroyit 4005 offers a super-wide 16 inch feed opening...

MBM Destroyit 4605 Shredder Review
Submitted by: Jeff McRitchie

The Destroyit 4606 is a high-capacity industrial shredder with a top-loading mechanism that is rated for continuous use...

DFG E Titan Wire Review
Submitted by: Jeff McRitchie

DFG's E Titan Wire is an electric wire binding system that is meant for ultra heavy duty use In this review, we will take a closer look at this machine a list what we consider to be some of its strengths and weaknesses...

DFG Titan Coil Binding Machine Review
Submitted by: Jeff McRitchie

The DFG Titan Coil is a well-constructed binding system aimed at filling the needs of medium sized organizations who want to have the ability to bind their own documents in the spiral coil style...

DFG Titan Comb Review
Submitted by: Jeff McRitchie

The DFG Titan Comb is a well-constructed, heavy duty plastic comb binding option aimed at smaller binderies, print shops, and other organizations who want the ability to bind booklets, proposals, presentations, and reports in a large variety of sizes and thicknesses...

Isnare.com Footer Divider

© 2004-2009. Isnare Free Articles - An Isnare Online Technologies Free Articles Project. All Rights Reserved.   Privacy Policy