Home > Store

Pair Programming Illuminated

Register your product to gain access to bonus material or receive a coupon.

Pair Programming Illuminated


  • Sorry, this book is no longer in print.
Not for Sale



  • Explores the operational aspects and unique fundamentals of pair programming - information such as furniture set-up, pair rotation, and weeding out bad pairs.
  • Special section enumerates the Seven Habits of Effective Pair Programmers.


  • Copyright 2002
  • Dimensions: 7-3/8" x 9-1/4"
  • Pages: 288
  • Edition: 1st
  • Book
  • ISBN-10: 0-201-74576-3
  • ISBN-13: 978-0-201-74576-4

At face value, pair programming appears to be a simple, straightforward concept. Two programmers work side-by-side at one computer, continuously collaborating on the same design, algorithm, code, and test. If it was as simple as plopping two skilled programmers at one desktop, there would be no need for this book. However, there are people and personalities involved, and these people are accustomed to programming alone. Pair programming offers significant benefits: quality is increased, time is saved, morale is improved, trust and teamwork grow, knowledge is shared, and learning is enhanced. However, before any pair programming can take place, participants have to accept a new way of thinking. In Pair Programming Illuminated, Laurie Williams and Robert Kessler help you fight through the exceptions, gain collective acceptance of this approach, and experience remarkable success with it. Two case studies show pair programming in practice using Extreme Programming and Collaborative Software Process as methods.




Sample Content

Online Sample Chapter

Overcoming Management Resistance to Pair Programming

Downloadable Sample Chapter

Click below for Sample Chapter(s) related to this title:
Sample Chapter 4

Table of Contents


Who Should Read This Book.



1. Introduction.

To Pair …

… or Not to Pair, This Is the Question.

A Fly on the Wall.

A Pair Programming Timeline.

Some Words of Caution.

2. The Seven Myths of Pair Programming.

Myth 1: It will double the workload with two doing the work one can do.

Myth 2: I'll never get to work alone. I couldn't stand that!

Myth 3: It will work well only with the right partner.

Myth 4: Pair programming is good for training. But, once you know what you're doing, it is a waste of time.

Myth 5: I'll never get credit for doing anything. I'll have to share all the recognition with my partner.

Myth 6: The navigator finds only syntax mistakes. How boring is that! Compilers can do that better than humans can anyway.

Myth 7: The only time I ever get any real work done is when I'm alone. Now, I'll never get anything done! Pair programming would drive me crazy.

3. The Seven Synergistic Behaviors of Pair Programming.

Behavior 1: Pair Pressure.

Behavior 2: Pair Negotiation.

Behavior 3: Pair Courage.

Behavior 4: Pair Reviews.

Behavior 5: Pair Debugging.

Behavior 6: Pair Learning.

Behavior 7: Pair Trust.

4. Overcoming Management Resistance to Pair Programming.


Goal: I want to complete my projects on time with high-quality code.

Goal: I want to reduce my risk of losing a key person.

Goal: I want my employees to be happy.

Goal:I want to reduce the amount of time it takes to train a new person.

Goal:I want my teams to work well together and to communicate more effectively and efficiently with each other.

5. Gaining Support and Acceptance from Your Peers.
6. Transitioning to Pair Programming by Choice.

Green and Hevner's Findings.

Advice for Management.

Advice for Programmers.

7. Problem, Problems.



The Ever-Popular Expert.


Noise and Facility Considerations.





Skill Imbalances.

Simply Not for All.

Summary: Maintenance Required.


8. Workplace Layout.

The Basic Needs.

Some Suggested Workplace Enhancements.

Interpair Communications.

Development Environments.

Noise Considerations.

One Last Thing.

9. Pair Rotation: Communication, Knowledge Management, and Training.

Pairing with the Right Partner.

Partner Assigning Logistics.

Pair Rotation and Knowledge Management.

Pair Rotation and Training.

Reprisal: Pair Rotation.

10. Other Issues to Consider.

Performance Appraisals.

Group Size.

Quality Assurance.

Functional and System Testing.

Maintaining and Enhancing Code.

11. Tips 'n Tricks.


12. Expert-Expert Pairing.


Characteristics of Success.


Personal Scenarios.

13. Expert-Average Pairing.


Characteristics of Success.


Personal Scenarios.

14. Expert-Novice Pairing.


Characteristics of Success.


Personal Scenarios.

15. Novice-Novice Pairing.


Characteristics of Success.


Personal Scenarios.

16. Extrovert-Extrovert Pairing.


Characteristics of Success.


Personal Scenarios.

17. Extrovert-Introvert Pairing.


Characteristics of Success.


18. Introvert-Introvert Pairing.


Characteristics of Success.


Personal Scenarios.

19. Gender Nonissue.


What This Is About.

If There Are Problems.

Personal Scenarios.

20. Culture Nonissue.


What This Is About.

If There Are Problems.

Personal Scenarios.

21. The Professional Driver Problem.

Root Causes.

General Form.

Refactored Solution.

Personal Scenarios.

22. “My Partner Is a Total Loser” and Other Excess Ego Problems.

Root Causes.

General Form.

Refactored Solution.

Personal Scenarios.

23. “My Partner Is SO Smart” and Other Too Little Ego Problems.

Root Causes.

General Form.

Refactored Solution.

Personal Scenarios.


24. Pair Programming in a Software Process Case Study: Extreme Programming (XP).

A Life-Cyle Evolution.

Along Comes XP.

Requirements Definition.

System and Software Design.

Code Implementation and Unit Testing.

Acceptance Testing.

XP Needs Pair Programming.

25. Pair Programming in a Software Process Case Study: Collaborative Software Process (CSP).

CSP Overview.

Focus Area 0: Baselining Your Process.

Focus Area 1: Quality Management.

Focus Area 2: Project Management.



26. Moving Ahead, Going Beyond.


Multidisciplinary Pairs.

Code Inspections Obsolete?

Projection Screens.

Distributed Pair Programming.

Pair Learning.

27. Seven Habits of Effective Pair Programmers.

Habit 1: Take Breaks.

Habit 2: Practice Humility.

Habit 3: Be Confident/Be Receptive.

Habit 4: Communicate.

Habit 5: Listen.

Habit 6: Be a Team Player.

Habit 7: Hone the Balance between Compromise and Standing Firm.

Appendix A: Pair Programming Tutorial.
Appendix B: An Economic Analysis of Pair Programming.
Appendix C: Pair Programming in the Classroom.
Appendix D: An Introduction to Test Driven Development.


This purpose of this book is to provide you with lots of information on pair programming. If you are already pairing, then the book will give you additional insights and techniques to make your pairing even more successful. We answer many of the questions and concerns that you may have about using the technique.

In Section One, our aim is for you to gain greater understanding about pair programming. We'll describe the technique and will be looking at pair programming from many perspectives . . . from those who want to try and those who would rather not try, from those who are employees trying to convince their managers to let them try and those who are managers who are trying to convince their employees to try.

In Section Two, we deal with some operational details of pairing--like furniture and hints and tips for daily operation. We discuss the importance of pair rotation and how that can lead to better knowledge management.

In Section Three, we explain benefits and shortcomings of many different kinds of pairs and the context when each kind of pair works best. We offer ideas to help enhance the pairing and solutions for most problem pairings. Unfortunately, not all pairs will work and we provide ways to recognize the potential problems before they happen.

Section Four gives two case studies of pair programming in different methodologies. The first describes pairing in Extreme Programming (XP), while the second discusses the Collaborative Software Process (CSP). In both cases, pair programming is an essential ingredient to success.

We conclude in Section Five with some future directions and by enumerating Seven Habits of Effective Pair Programmers.

Who Should Read This Book

We've written this book for software development team members and their managers. When we use the term "software development team," it goes beyond those who write production code. For example, this book is certainly appropriate for team leaders and coaches, GUI designers, architects, and QA folks. This book was also written for educators who would like to try pair programming with their students. Depending upon your role, may we suggest the following process for reading this book:

  • Software developers and team leaders/coaches who haven't tried pair programming yet will find Section One very useful. All should read Chapters 1-3 very carefully. If you are trying to convince your manager to transition to pair programming, Chapter 4 will be helpful. If you would like to convince your peers to give pair programming a shot, Chapter 5's for you. If you are currently being forced into pair programming, Chapter 6 will give you some guidance. Then, you can move on to the chapters in Section Two to get into some of the more operational issues you will need to deal with in a transition to pair programming. Chapter 27, the Seven Habits of Effective Pair Programmers will get you started on the right track. Appendix A, the Pair Programming Tutorial, can be used to help you transition a team or convince a team to take the pair-programming plunge.
  • Software developers and team leaders/coaches who are currently doing pair programming should start out skimming Chapters 1-3. Much of this will be review for you, but you may pick up some additional insight. Then, you can move on to the chapters in Section Two to get into some of the more operational issues. Section Three will be particularly important in guiding you to choosing the best pair for the task at hand. Chapter 27, the Seven Habits of Effective Pair Programmers, will be a good grand finale for you. How many of these habits do you practice? Appendix D provides information about including Test-First Design with pair programming.
  • QA personnel might be wondering how to handle a development team that has or plans to practice pair programming. Chapters 1-4 will give you a solid understanding of the technique and its benefits. Chapters 10 and 26 also discuss the possibility of pair programming as a substitute to code inspections. Appendix D discusses the composition of pair programming and a testing technique called Test-First Design.
  • Managers should start out by reading the first four chapters and Chapter 7 of Section One. Then, if you are trying to convince a team to try pair programming, Chapter 6 will be helpful for you. Chapter 6 advises you to run a Pair Programming Tutorial, which is outlined in Appendix A, with your team. Section Two provides information about operational issues of pair programming. Chapter 26 provides information on some directions pair programming may lead to.
  • Educators should read the first four chapters of Section One to gain a good basic understanding of the technique. Chapters 8, 10 and 11 will provide some tactical information about your students. Depending upon the skill level and mix of your students, you can choose some chapters in Section Three. Chapter 26 should appeal to your academic research interests. Chapter 27 provides good information to share with your students. Appendix C was written with you in mind, and provides some sound tactical advice for using pair programming in your classroom.
  • Who Wrote This Book

    The authors of this book are Laurie Williams and Bob Kessler. Laurie has a BS in Industrial Engineering from Lehigh University, an MBA from Duke, and a PhD in Computer Science from the University of Utah. She has also worked for IBM for nine years in various manufacturing, software development and management positions. She is currently an Assistant Professor in the Computer Science department at North Carolina State University. Bob has a BS, MS and PhD in Computer Science from the University of Utah. He has founded several companies and is on the board of several others. He is currently a full professor in the School of Computing at the University of Utah.

    As we're sure you surmise, the great benefit that comes from pair programming comes from the social interactions between the partners. Thus, as you might expect, there are social issues involved. Although not trained sociologists, both of us have many years of experience in software development. Thus, our views on the social interactions are grounded in our management experience and provide our fundamental basis for solving the various problems and issues.

    You might be wondering how we assimilated all the information in this book. We've done pair programming ourselves. We performed an extensive, formal experiment of pair programmers versus solo programmers, which yielded groundbreaking results. We've observed professional and student pair programmers. We've talked with or presented to thousands of experienced pair programmers, those considering pair programming and anti-pair programmers. We've also done two extensive surveys of professional pair programmers. We've heard lots of wonderful endorsements of pair programming, and we've heard every reason in the book why it won't work. We'll be quoting statistics from these surveys, presenting data gathered in our studies, and relaying lots of information from all these sources and our own experiences.



    Click below to download the Index file related to this title:


    Submit Errata

    More Information

    InformIT Promotional Mailings & Special Offers

    I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


    Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

    This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

    Collection and Use of Information

    To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

    Questions and Inquiries

    For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

    Online Store

    For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


    Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

    Contests and Drawings

    Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


    If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

    Service Announcements

    On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

    Customer Service

    We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

    Other Collection and Use of Information

    Application and System Logs

    Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

    Web Analytics

    Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

    Cookies and Related Technologies

    This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

    Do Not Track

    This site currently does not respond to Do Not Track signals.


    Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


    This site is not directed to children under the age of 13.


    Pearson may send or direct marketing communications to users, provided that

    • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
    • Such marketing is consistent with applicable law and Pearson's legal obligations.
    • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
    • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

    Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

    Correcting/Updating Personal Information

    If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


    Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

    Sale of Personal Information

    Pearson does not rent or sell personal information in exchange for any payment of money.

    While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

    Supplemental Privacy Statement for California Residents

    California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

    Sharing and Disclosure

    Pearson may disclose personal information, as follows:

    • As required by law.
    • With the consent of the individual (or their parent, if the individual is a minor)
    • In response to a subpoena, court order or legal process, to the extent permitted or required by law
    • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
    • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
    • To investigate or address actual or suspected fraud or other illegal activities
    • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
    • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
    • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


    This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

    Requests and Contact

    Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

    Changes to this Privacy Notice

    We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

    Last Update: November 17, 2020