NEWSLETTERS
 

CIO.com updates, insights and advice on technology, management and your career.

 CIO BlackBerry News and Tips
 CIO Research and Analysis
 CIO Microsoft
 CIO Insider
 
 
 
SUBSCRIBE TO CIO
 
Are you involved in setting the direction for your company's IT budget or strategy?

Apply today for a FREE subscription to CIO Magazine!

 


Tue, Aug 25, 2009 0:56 EDT

Agile Software Development Depends on Pair Programming

The result of developers working solo is an accumulation of technical debt

Topic: Development

Blog: Doing Business in Real Time

Current Rating: 5 Comments: 5

One of the core practices of agile development is pair programming. That means two programmers work together on the same body of code. As they work they are constantly discussing the design of the programs and the algorithms used, and they are constantly checking each other’s work to see that it meets coding standards and to see that thorough unit and function testing is done on the code they produce.

Question: Is pair programming really just paying twice for the same code? In a time like now when we are all under pressure to reduce cost by outsourcing programming work to low cost providers why are people in the agile development world talking about something like pair programming? Is the quality of the code produced by pair programming really worth the extra cost?

The Agile 2009 conference is happening this week in Chicago and I’m attending the conference to find out about the current state of agile development and get answers to questions like why is pair programming considered so essential to agile development. This afternoon I talked with Josh Kerievsky who uses pair programming on development projects in his company and who swears by it. His company is also in the business of coaching and training their customers in how to do effective agile development using pair programming and the other core agile practices. Josh’s company is Industrial Logic.

“As a business owner I can’t afford to have people working solo,” said Josh. “Pair programming is about removing bugs in the code and reducing the risk of bad program design. I don’t insist on pair programming because it is the agile thing to do, I insist on it because it delivers the best value for the money I spend.”

Myth of the Hero Programmer Revisited

I asked him what he thinks about the legend of the hero programmer working on his own, tapping away on his keyboard into the wee hours of the night and producing thousands of lines of code that makes computers do amazing and wondrous things. He began his response by observing that what the so-called hero programmer actually produces is thousands of lines of code that nobody else understands and nobody can maintain or enhance.

Josh went on to say that the solo programmer usually also violates other agile practices such as adhering to coding standards, doing good unit and function testing, and creating simple program designs. Often the reason for this is that solo programmers cannot take criticism from other developers because their code becomes so personal and any criticism of it feels like a personal attack. But when developers do pair programming, they are much more open to review and criticism of their code because they think of their code as a joint production and therefore they don’t feel personally attacked when their peers review and criticize their work.

I asked him about the best ways for programmers to pair up. I wondered if he ever saw differences between pairs that were man-man or man-woman or woman-woman. He said he leaves it to his developers to pair up and select who they want to work with. He said he doesn’t see any difference between pairs that are man-man or man-woman or woman-woman. His developers know each other and they know who they work well with. His only requirement is that he doesn’t want two programmers working together if they are both inexperienced in the technology being used; at least one of the pair needs to be knowledgeable in the technology. Other than that, the only time he sees problems within a programming


You do not have flash or javascript support.
Average (1 vote)
5
 
 
Tue, Aug 25, 2009 7:54 EDT
Anonymous user
Posted by: Ripple
Rating:

This chapter takes you through the process of refactoring a function that generates prime numbers, which I personally didn't care for too much. Maybe when I read it over again at some point I will think differently.Thank you..
Ripple @ remedies for tinnitus

 
Tue, Aug 25, 2009 19:52 EDT
Posted by: jlipton
Rating: 10

We embrace agile concepts and processes but have never been able to fully adopt the paired programming component.
I know we're not alone and it's generally acknowledged that this is one of the hardest parts of the methodology to accept.
Some of our reasoning goes like this:

  • Paired programming can make some programmers lazy and it's highly dependent on the styles and personalities of the two people. I'm a morning person, Kevin sometimes works from home...
  • Open source development can be viewed as paired programming taken to the next level. If many developers become responsible for a codebase you should be able to do even better than using pairs.
  • The size of the development team matters. Unit tests are the key to agile development success. We prefer to have one developer writing test cases and harnesses with another coding.

Justin Lipton

Exari Systems
Boston | London | Melbourne | Munich
Test drive our software online - demo
Read our document assembly blog - blog.exari.com

 
Wed, Aug 26, 2009 8:15 EDT
Anonymous user
Posted by: Alan S Koch
Rating: 90

While I agree that most Agile teams could benefit from pair programming, it is clearly *not* a core concept.

1) Check out the Agile Manifesto & 12 principles -- pairing is not there.

2) Talk to successful Agile teams. The majority do not pair at all, and those who do don't do it 100% of the time.

Pairing is a core concept of Extreme Programming (XP), *one* of many Agile approaches. And it has great benefits. So I recommend that everyone try to include pairing in their Agile practices.

But if you can't make the case, or if your not being successful with pairing, don't fret! it doesn't make you not-Agile!

 
Wed, Aug 26, 2009 10:14 EDT
Anonymous user
Posted by: Rob Bowley
Rating: 90

Firstly great article I'm a real PP advocate too and the more people justyfying it the better.

However:

(Note: the six core practices for agile software development are: pair programming; coding standards; unit and function testing; refactoring; simple design; and the 40-hour week)

Who says? There are no core practices for agile software development. There are only principles.

 
Wed, Sep 2, 2009 12:44 EDT
Anonymous user
Posted by: EugeneNizker
Rating: 90

“Pair programming is a core agile practice”; “Pair programming is not a core agile practice” – who cares, really?! The important thing is, does it make sense or not?

My teams practice it for years, and we do see a difference. We don’t pair program to the extent some other teams do (at Menlo Innovations, for example, 100 percent of tasks are pair programmed). For example, we didn’t insist on pair programming when a task is simple and straightforward or other way around when one needs a quiet time to think something through (although this case is arguable). However, majority of tasks were done in paired mode, and again, the difference was huge.

One more comment. I am sorry, Justin, but to say that “Paired programming can make some programmers lazy” is to call black white. Nothing can be further from reality. Try to pair program and you will see how draining this experience is, how much more discipline it requires and how your brains are working at full speed. I doubt you’ll be able to walk straight after 8 hours! But! You will notice that the quality of code is completely different and, exactly as Josh Kerievsky suggests, the company saves on testing and code maintenance.

Unfortunately, your other two suggestions are equally not very valid.

Truly,
Eugene Nizker
Evident Point Software.

Post new comment

* Subject:
* Username:
* E-mail:
The content of this field is kept private and will not be shown publicly.
Homepage:
* Body:
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <blockquote> <strike> <p> <br>
  • Lines and paragraphs break automatically.
More information about formatting options

* Denotes required field.

About this Blog

The global economy has a life of its own, it lives in real-time, and we are all part of it. Hello brave new world.

Start a Conversation
Click to post

Got something to say? We want to hear it! Click the Post button to get started. GO»

EXPERT ADVICE
See our roster of experts.

Advice & Opinion from more than 113 of IT's most insightful thinkers.

  PARTNERS       WEBCASTS    
 

Windows 7 Webcast Series

There's a lot of buzz about Windows 7 out there. Each month in our webcast series, listen to analysts and customers discuss how Windows 7 and the Windows Optimized Desktop is impacting large companies around the world. Learn how they evaluated Windows 7, including the cost of deployment, deployment strategies, and tangible benefits.

Sponsored by Microsoft  Listen to on-demand Recordings »

 

Service Level Management Best Practices Life Cycle Overview - Improve Service Levels

Best practices for Service Level Management (SLM) is a process for consistently meeting customer requirements and delivering on IT's promises. See the steps required to ensure high-quality SLM.

Sponsored by Compuware  Read this White Paper »

 

Keeping Your Members Safe from Online Scams and Predators

In order to keep fraudsters out, romance sites must deploy effective solutions that look at information independent of what is supplied by users. A device fingerprinting solution such as iovation ReputationManager™ provides unique insight into the computers being used to create multiple accounts and exposes hidden device-account relationships that identity-based fraud solutions often miss.

Sponsored by iovation  Read this White Paper »

Resource Alerts

Get instant email notifications by topic when white papers, webcasts, and case studies are added to our library.

Resource Alerts

Get instant email notification when white papers, webcasts, and case studies are added to our library. Don't just be up-to-date—be up to the minute with our new Resource Alerts.

Defend Against Blended Threats: What You Need to Know

Blended Web and email threats are becoming increasingly complex and represent a huge...  View Now »

 

Prescriptive Actions to Reduce Risk

In this Webcast, learn best practices for effective systems management in a heterogeneous environment and keep client systems cost under control.   View Now »

 

Webcast- Vantage 11: Redefining Application Performance Management

Compuware's latest release, Vantage 11, is a major advance in end-to-end application performance management--bringing together proactive issue identification, quantification of business impact and problem resolution into a single solution. Tune in to learn how Vantage 11's top-down approach helps you make better decisions and dramatically lower operations costs.  View Now »

Resource Alerts

Get instant email notification when white papers, webcasts, and case studies are added to our library. Don't just be up-to-date—be up to the minute with our new Resource Alerts.

 
NEWSLETTER

Sign-up for the Blogs & Discussion Newsletter

 
FEATURED SPONSORS
 
 
 
SPONSORED LINKS
 

Return on Information: Google Enterprise Search pays you back. Get the facts.

VMware. The source for Business Infrastructure Virtualization.

ShoreTel tells businesses to untangle from competitors' complexity and turn to its brilliantly simple UC solution

See how AT&T can help protect your network.

Streamline IT Costs. Boost Performance with WAN Optimization.

Build your 1st app FREE with Force.com

TDWI checklist helps define data readiness for analytics. Download report.

A Clear View Toward Virtualization

Virtualization Technology as a Business Solution

The rules of infrastructure management just changed.

A Clear View Toward Virtualization

Interactive Q&A helps you discover key ways to maximize IT assets.

Ready to virtualize tier one applications? Check your virtualization maturity.

Think you can't afford a Cisco Switch? Cisco Catalyst Switches are now more affordable.

Five minute business analytics assessment. Immediate results.

The Case for Investing in Business Analytics Technology. Read white paper.

Upgrading to VMware vSphere with vWire

Top 10 Lessons Learned for Corporate 3G Mobile Broadband Deployments

CRM Built for IT: The Executive Guide to Selecting CRM that Meets IT Needs

Return on Information: Google Enterprise Search pays you back

ROI of Application Delivery Controllers

Making Consumer Two-Factor Authentication Simple and Cost-Effective

Mining the Cloud to Ease the Enterprise Compliance Burden

Solve Five Key IT Security Challenges with Cloud-Based Authentication

White Paper: Right-Sizing Your Power Infrastructure

AT&T Synaptic Storage as a Service. Expand on demand

Trend Micro ranked #1 against real-world malware. Read more.

Webinar: Jump-start your in-house e-discovery with Ringtail QuickCull from FTI Technology

Top Five CIO Challenges

Read the RSA report: Security for Business Innovation

64-page prescriptive guide to security, compliance, and IT operations.

Increase UPS efficiency without sacrificing protection.

eZine: A Roadmap to Reducing IT Complexity

Reduce risk, gain agility. See how Progress can help your business.

Virtualization Technology as a Business Solution

eZine: A Roadmap to Reducing IT Complexity

World-class trading technology solutions from NYSE Technologies.

If You're Paying for Telecom, You're Paying Too Much. Contact Asentinel Today.

Trade-In your old printer and save up to $1,000 plus free recycling!

infoBOOM! - The Mid-Sized Company CIO's Exclusive Community

Live Webinar: Applying Business Analytics. Click here to learn more

Removing Barriers To Better Server Virtualization Efficiency

4G Revisited. The Continued Evolution of Wireless Mobility.

What's Next for Enterprise Resource Planning?

Maximizing website Return on Information with high-quality search

Gartner Magic Quadrant, Application Delivery Controllers 2009

Authentication as a Service by Forrester Research

Cloud-Based Authentication for Next-Generation Extranets

Cut Costs & Green Your IT Operations with PC Power Management

White Paper: 4 Customer Service Myths