Principles of Pair Programming

software engineeringpair programming

Principles of Pair Programming

Created 3 years ago

Duration 0:07:54
lesson view count 234
Select the file type you wish to download
Slide Content
  1. Principles of Pair Programming

    Slide 1 - Principles of Pair Programming

    • Emerson Murphy-Hill
    • Creative Commons Attribution 4.0 License.
    • Material Produced by NCSU Software Engineering Faculty.
  2. What Is Pair Programming?

    Slide 2 - What Is Pair Programming?

    • “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 allows two people to produce a higher quality of code than that produced by the summation of their solitary efforts.”
    • Laurie Williams, Pair Programming Illuminated.
    • Driver: types or writes
    • Navigator: observer (looking for tactical & strategic defects)
    • Ongoing discussion about decisions
    • Periodically switch roles of driver and navigator
    • possibly every 30 minutes or less
    • Pair coding, design, debugging, testing, etc.
  3. Process

    Slide 3 - Process

    • Used in eXtreme Programming
    • Used in the Collaborative Software Process
    • Pair programming can be added to any process
  4. How does this work?

    Slide 4 - How does this work?

    • Pair Pressure
    • Keep each other on task and focused
    • Don’t want to let partner down
    • “Embarrassed” to not follow the prescribed process
    • Pair Negotiation
    • Distributed Cognition: “Searching Through Larger Spaces of Alternatives”
    • Have shared goals and plans
    • Bring different prior experiences to the task
    • Different access to task relevant information
    • Must negotiate a common shared action
    • Pair Courage
    • “if it looks right to me and it looks right to you – guess what? It’s probably right!”
  5. How does this work (part two)?

    Slide 5 - How does this work (part two)?

    • Pair Reviews
    • “Four eyeballs are better than two”
    • Continuous design and code reviews
    • Removes programmers’ distaste for reviews
    • Pair Debugging
    • Explaining the problems to another person  “Never mind; I see what’s wrong. Sorry to bother you.”
    • Pair-Learning
    • Continuous reviews  learn from partners techniques, knowledge of language, domain, etc.
    • Take turns being the teacher and the student minute by minute