Pair Programming Illuminated
Laurie Williams
Robert Kessler

ISBN-10: 0201745763
ISBN-13: 9780201745764

Publisher: Addison-Wesley Professional
Copyright: 2003
Format: Paper; 288 pp
Available on Demand

Suggested retail price: $34.99
Buy from myPearsonStore

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. The authors borrow from their professional encounters and academic experience to help you determine whether pair programming fits your classroom's needs, and more importantly, how to go about it. Two case studies show pair programming in practice using Extreme Programming and Collaborative Software Process as methods.

  • 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.



Preface.


Who Should Read This Book.


Acknowledgments.

I. GAINING UNDERSTANDING.

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.

Motivations.

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.

Dependency.

Scheduling.

The Ever-Popular Expert.

Colocation.

Noise and Facility Considerations.

Concentration.

Disagreements.

Overconfidence.

Rushing.

Skill Imbalances.

Simply Not for All.

Summary: Maintenance Required.

II. GETTING STARTED WITH PAIR PROGRAMMING.

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.

III. PAIR PROGRAMMING PARTNER PICKING PRINCIPLES.

12. Expert-Expert Pairing.

Intent.

Characteristics of Success.

Challenges.

Personal Scenarios.

13. Expert-Average Pairing.

Intent.

Characteristics of Success.

Challenges.

Personal Scenarios.

14. Expert-Novice Pairing.

Intent.

Characteristics of Success.

Challenges.

Personal Scenarios.

15. Novice-Novice Pairing.

Intent.

Characteristics of Success.

Challenges.

Personal Scenarios.

16. Extrovert-Extrovert Pairing.

Intent.

Characteristics of Success.

Challenges.

Personal Scenarios.

17. Extrovert-Introvert Pairing.

Intent.

Characteristics of Success.

Challenges.

18. Introvert-Introvert Pairing.

Intent.

Characteristics of Success.

Challenges.

Personal Scenarios.

19. Gender Nonissue.

Issue.

What This Is About.

If There Are Problems.

Personal Scenarios.

20. Culture Nonissue.

Issue.

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.

IV. CASE STUDIES OF PAIR PROGRAMMING IN A SOFTWARE PROCESS.

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.

Summary.

V. IN CLOSING.

26. Moving Ahead, Going Beyond.

Triplets.

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.

Finale.

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.

Index.

Laurie Williams has applied the XP methodology to various projects. She is an organizer of the main XP conferences held thus far.

Robert Kessler is a professor in the School of Computing at the University of Utah, from which he holds his Ph.D., and a past department chair. Bob has founded a number of technology companies and is on the board of several others.



0201745763AB08072002

Pair programming is a simple, straightforward concept. Two programmers work side-by-side at one computer, continuously collaborating on the same design, algorithm, code, and test. It produces a higher quality of code in about half the time than that produced by the summation of their solitary efforts. However, nothing is simple where people and personalities are involved--especially people who are accustomed to working alone. The leap to pair programming for a variety of software development projects is one that yields many benefits. However, it is also one that requires careful thought and planning.

Written as instruction for team members and leaders new to pair programming and as an improvement guide for experienced pair programmers, Pair Programming Illuminated explains both the principles underlying this method and its best practices. The authors, drawing on their own extensive experience, explain what works and what does not, what should be emphasized and what should be avoided. Two case studies further illuminate pair programming in practice: one in the context of extreme programming (XP), with which it often is associated, and one linked to a more disciplined software engineering process.

Key topics include:

  • Principles for selecting partners
  • Practical advice, such as furniture set-up, pair rotation, and weeding out bad pairs
  • Seven habits of effective pair programmers
  • Special appendices include:

  • A pair programming tutorial
  • An economic analysis of pair programming
  • An introduction to test-driven development
  • With this book in hand, you will quickly discover how pair programming fits the needs of your own organization or project. You then will see exactly how to get started with this method, and how to do it right.



    0201745763B06262002

    View a Sample Chapter PDF: /samplechapter/0201745763.pdf

    Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, contact your Pearson Higher Education representative for pricing and ordering information.

    Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.


    Copyright ©2008 Pearson Education. All rights reserved. Legal Notice | Privacy Policy | Permissions