Pair programming [wikipedia] is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator,[1] reviews each line of code as it is typed in. The two programmers switch roles frequently.
During few sprints experiences adopting pair programming practice, my IT-Team has collected “Do”s and “Don’t”s good practices, but also Issues and Possible Approaches to solve the Issues
1 – Person A felt offended because of unconstructive criticisms of person B
- Categories: Communication Problem, Disrespect / Humiliation, Hypersensitivity
- Principles to Follow: Challenge, Respect, Encourage, Coach, Openness
- Possible Approaches:
- Coach person A to use constructive feedback techniques, learn to challenge with scenario rather than judge others or others’ result.
- Coach person A to use “How if” technique to induce cooperation in thinking and analysis instead of humiliation.
- Coach person A to appreciate person B effort, so person A learns how much effort has been done, and person B feels empathized.
- Coach person B to accept feedback more openly than taking personally
2 – Person A often gets angry and lose patience to pair with others
- Categories: Impatience / Emotional Problem, Expectation and Goal
- Principles to Follow: Coach, Agreement
- Possible Approaches:
- Coach person A to understand expert – novice pairing, and coach person A as an expert to learn to coach so person A won’t expect expert – expert pairing and become more emotional by not getting expected result.
- Coach person A to understand about the goal of pairing, is that to implement quick or to coach each other to build more robust team. Agree with the goal so expectation can be aligned together
3 – Person A uses cell phone during pair programming, Person B feels demotivated of the pairing because of the distraction, Person A doesn’t learn effectively because of the distraction
- Categories: Distraction, Missing Coordination
- Principles to Follow: Agreement, Communication
- Possible Approaches:
- Have an agreement practice, how to use cell phone, e.g. person A should inform person B about the necessity and will stand during cell phone usage
- Coach person A not to use cell phone in case of not really required, since it could be toxic for the process
4 – Person A sits idle during pairing with person B
- Categories: Idle
- Principles to Follow: Time Plan & Time Box, Pro-activeness, Fun
- Possible Approaches:
- Have time box and plan the time to have regular role changing of driver and navigator
- Coach person A to pro-actively asking questions to person B of unclear things
- Coach person B to pro-actively observe person A to recognize in case person A does not understand something and coach person B to pro-actively asking and explaining things to person B
- Coach person A and B to be able to bring out interesting topic related to the tasks which is to be discussed so pair programming will be more fun.
5 – Person A suddenly takes keyboard from person B, person B feels uncomfortable / distracted of that activities
- Categories: Missing Coordination
- Principles to Follow: Communication, Agreement
- Possible Approaches:
- Have an agreement and communication between person A and B, e.g. confirming / asking before taking over keyboard
6 – Person A is taking breaks which person B cannot understand and disrupting the processPerson A needs some break but person B does not understand
- Categories: Missing Coordination
- Principles to Follow: Time Plan & Time Box
- Possible Approaches:
- In case this happens, have an agreement between person A and person B about how long the pairing will take before the break and plan about the break. Plan accordingly and time box the process.
7 – Person A and person B goes through un-ending discussion which puts the focus on the problems and obstacles
- Categories: Problem Orientation, Blind Idealism, Perfectionism
- Principles to Follow: Solution Orientation, Pragmatism, Communication, Coach
- Possible Approaches:
- Coach person A and person B to have solution orientation discussion technique, focusing on “how to” solve the problems. Instead of “but it will …”, “how to solve it in case of …”.
- Coach person A and person B to have pragmatical solution technique to move forward instead of holding on un-ending perfectionism. Define and agree about the goal and expectation instead of blind idealism & perfectionism without goal.