Pair Programming Illuminated

Pair Programming Illuminated

By (author)  , By (author) 

Free delivery worldwide

Available. Dispatched from the UK in 3 business days
When will my order arrive?


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 more

Product details

  • Paperback | 288 pages
  • 182.88 x 231.14 x 15.24mm | 498.95g
  • Pearson Education (US)
  • Addison Wesley
  • Boston, United States
  • English
  • 0201745763
  • 9780201745764
  • 600,325

About Laurie Williams

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. 0201745763AB08072002show more

Back cover copy

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. 0201745763B06262002show more

Table of contents

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