## Pair Programming **Pair programming** is an agile software development technique in which two programmers work together at one workstation, using one keyboard, one mouse and monitor. Sometimes they may have two monitors, mice, keyboards with **one computer**. ### Methods There are different methods but we will focus only on these four styles. **1- Ping pong**: will use this method in week 2 when we write tests. One student starts by creating a single failing test and then each student takes it in turns to first write code to make the test pass and then to write a new failing test before passing the keyboard back to their partner. **2- The driving test**: imagine yourself at an interview and they ask you to solve a problem and talk while you are typing. One student sits at the computer and the other student acts as examiner. the student being examined should explain her/his thinking as she/he work. Whenever the examiner thinks the other student is being too quiet or does not understand something, she can ask for more information, but otherwise should offer no advice nor provide any feedback. **3- The back-seat driver**: it is similar to the driving test. but in this case the examiner sits at the keyboard and follows the instructions of the other student (like when to create a method or open a new file or what to name a test or a variable). Again, the examiner should provide no advice, but can request clarification or an explanation of why she is being asked to do something. **4- The driving instructor**: In this case, the person not at the keyboard should lead a discussion about the code through a series of questions. If desired, she can use the coding questions crib sheet for assistance ( like when defining a new function: are we using sensible names? What are the inputs for the function? What do you expect the function return value to be?). ### Soft Skills 1- treat your partner as your equal 2- give each other a chance to express ideas and suggestions 3- use “we” while communicating 4- be cautious of non-verbal communications 5- give personal space