Anzeige
Anzeige
Ratgeber

5 Tipps für effektives Remote-Pair-Programming

Wo Menschen eng zusammenarbeiten und kommunizieren, ist Homeoffice eine Herausforderung. Auch Pair-Programming, also die gemeinsame Arbeit an einem Quellcode, lebt vom Miteinander. Damit das auch remote funktioniert, können folgende Tipps helfen.

Von Frederik Bijlsma
5 Min.
Artikel merken
Anzeige
Anzeige

Pair-Programming im Homeoffice ist eine echte Herausforderung. (Foto: fizkes / shutterstock)

Gerade Entwickler*innen können im Homeoffice gut – weil ungestörter – arbeiten, sollte man meinen. Leider ist häufig genau das Gegenteil der Fall, denn besonders der fachliche Austausch mit den Kolleg*innen fehlt. Gerade agile Softwareentwicklung leidet unter der Distanz, lebt sie doch als iterativer Prozess davon, dass sich das Entwicklerteam selbst organisiert und ständig weiterentwickelt. Regelmäßige kurze Meetings oder Development-Techniken wie zum Beispiel das Pair-Programming erfordern eine enge Zusammenarbeit.

Beim Pair-Programming arbeiten zwei Entwickler*innen zur gleichen Zeit am selben Task aktiv zusammen – und zwar in der Regel auf derselben VM, nebeneinander vor zwei Monitoren sitzend. Dabei wird diskutiert, konstruktiv kritisiert, direkt korrigiert und ausprobiert. So zu entwickeln, ist extrem kommunikationsintensiv und auch anstrengend, das Team muss sich gut verstehen. Die Praxis zeigt, dass Pair-Programming in einem agilen Umfeld sehr gut funktioniert. Code-Reviews und Refactorings sind so bereits Teil des Developments selbst – das spart nicht nur Nacharbeit, sondern verhindert auch früh Sackgassen und Missverständnisse. Pair-Programming steht dabei keinesfalls allein, sondern sollte in der Software-Fabrik als Teil einer umfassenden Methodik implementiert werden, die Prozesse, Vorgehensweisen und Platform-as-a-Product mit einschließt. So lässt sich hochwertiger Code effektiver entwickeln. Doch wie kann das funktionieren, wenn jeder allein im Homeoffice arbeitet?

1. Aktiv kommunizieren

Anzeige
Anzeige

Pair-Programming lebt von der Kommunikation. Der Prozess des Problemlösens unterscheidet sich sehr stark von der herkömmlichen Art und Weise, wie ein fertiges Codefragment reviewt wird. Jede Aktion der Programmierer*innen steht direkt auf dem Prüfstand, wird infrage gestellt und muss begründet werden. Code entsteht aus der Diskussion heraus. Ein Pairing-Team muss darüber sprechen, was es tut, während es dies tut. Dabei sollten sich die Partner auf derselben lösungsorientierten Arbeitsebene befinden, ausschließlich fachlich und so unemotional wie möglich diskutieren.

Um strukturiert zu arbeiten, kann es helfen, die Arbeit aufzuteilen: Während ein Developer hauptsächlich programmiert und über die nächsten logischen Anweisungen nachdenkt, übernimmt der andere die strategischen Überlegungen. Er prüft, welche Auswirkungen eben erstellter Code auf andere Programmteile hat, welche funktionalen Anforderungen er erfüllt oder eben noch nicht erfüllt und wie es weitergehen muss. Die Überlegungen von beiden zusammen ergeben dann einen gut durchdachten nächsten Schritt. Werden die Rollen laufend getauscht, entsteht eine sehr produktive Dynamik.

Anzeige
Anzeige

2. Die passende Arbeitsumgebung mit geeigneten Tools

Apropos Kommunikation: Ausführlich über Erwartungen, Ideen und Probleme zu sprechen, ist äußerst hilfreich. Ein beinahe ebenso großer Teil der Kommunikation läuft jedoch nonverbal ab. Für das Pair-Programming sind daher Videochats gut geeignet: Während Video-Plattformen bei Meetings von größeren Gruppen durch Latenzen und Priorisierung bei der Datenübertragung schnell an ihre Grenzen kommen, lässt es sich zu zweit gut damit arbeiten. Sinnvoll ist es, sowohl den Video- als auch den Audio-Kanal ständig eingeschaltet zu haben, damit der Partner auch in schweigsameren Arbeits- und Denkphasen weiß, was gerade geschieht.

Anzeige
Anzeige

Wichtig ist zudem, dass die Technik gut funktioniert und die Beteiligten mit den Tools umgehen können. Das klingt zunächst nach einer selbstverständlichen Voraussetzung, nicht immer jedoch ist das so leicht umsetzbar. Neben einem leistungsfähigen Internetzugang gehören auch gute Audiogeräte, etwa ein Headset mit Mikrofon, dazu. Hintergrundgeräusche können so besser ausgeblendet werden. Außerdem kann es sinnvoll sein, dass jede*r Entwickler*in zwei Monitore zur Verfügung hat – einen für die gemeinsame Bildschirmnutzung und einen für die Videoübertragung.

Hinzu kommt die Wahl der passenden Tools. Der Markt bietet vielfältige Möglichkeiten, viele Firmen haben zudem bestimmte Lizenzen oder Vorgaben. Die meisten Video-Plattformen eignen sich grundsätzlich gut und haben die Möglichkeit zur gegenseitigen Bildschirmfreigabe inklusive. Auch hierbei kann es vorkommen, dass Latenzen bei der Datenübertragung die Programmierung erschweren. Hier können Break-out-Räume hilfreich sein. Über Instant-Messaging-Dienste kann zugleich gechattet werden, manche erlauben die Integration von anderen Tools und Apps. Auf jeden Fall sollten sich die Pair-Programmer darüber vorab austauschen, wie sie die gemeinsame Arbeit organisieren wollen.

Anzeige
Anzeige

3. Continuous-Software-Design als Paradigma

Wenn Software agil entwickelt wird, steht zu Beginn – außer den Anforderungen, die die Software erfüllen soll – wenig fest. Developer sollten sich bewusst Zeit für den Entwurf der Software-Architektur nehmen und bereit sein, sie im Laufe des Prozesses immer wieder neu auszurichten und anzupassen. Oft gibt es verschiedene Entwurfsmuster, Bibliotheken oder Frameworks, die das Problem von unterschiedlichen Seiten aus angehen. So kann es effektiver sein, ein vorhandenes, gut dokumentiertes Framework zu nutzen, als ganz neu zu entwickeln. Zudem fließen bei der agilen Softwareentwicklung die Erfahrungen mehrerer Experten direkt in den Prozess ein, sodass etliche Ansätze diskutiert werden können. So kann man flexibel die passende Architektur zusammenstellen und sich der idealen Lösung immer weiter annähern.

4. Erfahrungen aktiv weitergeben und von anderen lernen

Es ist eines der Hauptanliegen der agilen Softwareentwicklung und des Pair-Programmings im Besonderen, dass die Teammitglieder voneinander lernen. Der Austausch ist rege, verschiedene Erfahrungen und Skills fließen ein. Sind alle im Homeoffice, ist das im Prinzip zwar immer noch so, beschränkt sich aber doch sehr auf das Projektteam selbst. Von anderen Projekten erfährt man nur noch wenig und das informelle, unspezifische Fachgeplänkel zwischendurch findet nun kaum mehr statt. Zwei Ansätze können hier helfen: Zum einen sollten Teammitglieder jeweils aktiv fragen, ob die Programmierpartner beispielsweise mehr über den ein oder anderen Skill erfahren möchten. Und zwar auch dann, wenn es vordergründig nicht zwingend mit dem eigentlichen Projekt zu tun hat. Zum anderen sind hier die Teamleiter*innen und Verantwortlichen gefragt. Sie sollten ihren Entwickler*innen die Zeit und die Möglichkeit geben, sich auch im Homeoffice weiterzuentwickeln. Das kann durch Online-Weiterbildungsangebote geschehen oder durch Themenrunden im Kollegenkreis.

5. Arbeitsstruktur im Homeoffice-Alltag

Software-Entwicklung ist ein anspruchsvoller Job, sowohl im Büro als auch im Homeoffice. Wird agil entwickelt – und erst recht, wenn Pair-Programming-Techniken genutzt werden – kommt viel Kommunikation hinzu. Das ist bisweilen per Videocall samt Chat sogar anstrengender als der formlose Austausch im realen Meeting. Das heißt konkret: Entwickler*innen sollten ihren Homeoffice-Alltag gut strukturieren und vor allem mehr Zeit für Pausen einplanen. Auch das klingt zunächst banal – in der Praxis zeigt sich jedoch, dass viele Homeworker dazu tendieren, länger am Schreibtisch zu sitzen, Pausen nur nach gefühltem Bedarf machen und deshalb Gefahr laufen, unkonzentrierter und damit ineffizient zu arbeiten. Absprachen mit dem Team und eine entsprechende Planung können dem entgegenwirken – natürlich immer unter der Maßgabe, auch innerhalb dieser Vorgaben flexibel zu bleiben.

Anzeige
Anzeige

Homeoffice ist gekommen, um zu bleiben. Auch wenn früher oder später viele Developer in ihre realen Großraumbüros und Meetingräume zurückkehren werden, wird Homeoffice vermutlich zu einem festen und breit akzeptierten Bestandteil der Arbeitskultur werden. Mit aktiver, konstruktiver und rücksichtsvoller Kommunikation sowie geeigneter Technik und passenden Tools funktioniert agile Softwareentwicklung im Homeoffice ebenfalls gut.

Zum Weiterlesen:

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Ein Kommentar
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Oliver Straub

Hm, „Pair-Programming“, ich muss sagen, weder der Begriff noch das Konzept war mir zuvor bekannt. Aber die Idee erheitert mich doch außerordentlich. Alle Programmierer die ich kenne sind doch Chauvinisten. Und dieser Chauvinismus ist ebenso natürlich wie auch überlebensnotwendig. Es ist eine sehr spezielle Art des Chauvinismus, bei dem der einzelne Programmiere stehts das einzige Mitglied seiner Gruppe ist. Abgesehen – natürlich – von weiteren imaginären Ehrenmitgliedern, wie Albert Einstein, Nikola Tesla oder ähnlichen erbauliche Gesellen. Nun sitzen also zwei von ihnen zusammen und kritisieren gegenseitig ihren Code. Das kann nicht wirklich gut gehen. Die agile Methode ist fein und unbedingt zu empfehlen, aber man kann sie nicht rekursiv auf jede Iteration anwenden. Wenn jeder Iterationsschritt auch nochmal agil vollzogen wird, dann verliert man sich als bald in der Unendlichkeit der Ideenlehre. Und irgendwann kommt auch noch eine blutige Nase dazu, wenn Tastaturen wie Keulen, und Mäuse wie Morgensterne geschwungen werden… ;D

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige