Pair Programming ist die agile Methode, bei der zwei Personen nebeneinander sitzen und Software auf einem Computer entwickeln (das geht natürlich auch remote). In den meisten Pair-Programming-Szenarien schreibt ein Programmierer (der Driver) Code, während der andere (der Navigator) jede Zeile während der Eingabe überprüft und das große Ganze, die Ziele und die Gesamtarchitektur des Projekts im Blick behält. Die Rollen werden regelmäßig getauscht. Studien haben erhoben, dass Pair Programming einen erheblichen Einfluss auf die technische und organisatorische Effektivität und Produktivität des Entwicklungsprozesses hat. Natürlich gibt es neben dem Pair Programming auch weitere Varianten, wie z.B. Mob Programming. (Mob Programming ist ein kollaborativer Ansatz der Softwareentwicklung, bei dem ein Team eine Aufgabe gleichzeitig, meist an einem Ort, an einem einzigen Computer bearbeitet.)
Driver-Navigator-Pairing
Der Fahrer-Navigator-Stil (s.o.) ist der am meisten genutzte Stil und
funktioniert gut mit zwei Experten oder einem Experten-Neuling-Paar
(Experte übernimmt dabei der Navigator).
Backseat-Navigator-Pairing
Dieser Stil ähnelt dem vorherigen, hier übernimmt der Navigator aber
mehr die taktische Rolle des Drivers. Bei der Rücksitznavigation
übernimmt der Driver weiterhin die Tastatur und das Tippen, aber der
Navigator diktiert syntaktische Anweisungen, wie beispielsweise den
Namen einer Variablen oder eine bestimmte Methode. Dieser Stil eignet
sich am besten für einen Anfänger als Driver und einem Experten als
Navigator, sodass der Neuling durch die Praxis lernen kann.
Ping-Pong-Pairing
Bei diesem Muster schreibt die erste Person einen Test, der derzeit
nicht bestanden wird, und die zweite Person muss ihn lösen. Dann
schreibt die zweite Person einen nicht bestandenen Test und die erste
Person löst ihn. Die Vorteile des Ping-Pong-Pairings bestehen darin,
dass es einen häufigen Rollenwechsel ermöglicht und die
Entwickler*innen zwingt, sowohl den Codierungs- als auch den
Testaspekten der Entwicklung Aufmerksamkeit zu schenken und im Sinne
des Test-Driven-Development zu arbeiten. Diese Art des
Pair-Programmings funktioniert am besten mit zwei Experten. Es kann
aber auch gut mit Anfänger-Experten-Paarung und
Anfänger-Anfänger-Paarung funktionieren.
Distributed-Pairing
Ein eher inoffizieller Stil des Pairings, ist das Distributed Pairing.
Da die Zusammenarbeit (u.a. bedingt durch die Corona-Pandemie) immer
mehr auf remote umgestellt wird, ist dies evtl. der übliche
Pair-Programming-Stil der Zukunft. Bei dieser Variante arbeiten beide
Personen über einen kollaborativen Echtzeit-Editor, einen
freigegebenen Desktop oder ein Remote-IDE-Plugin. Distributed Pair
Programming ist natürlich sehr flexibel, bringt jedoch neue
Schwierigkeiten mit sich, die mit dem Verlust der persönlichen
Kommunikation einhergehen.