
Fast ein Jahr ist vergangen, seit ich aus Moskau nach Eriwan gezogen bin, um dort zu leben und zu arbeiten. In dieser Geschichte erzähle ich Ihnen nicht von meinem Leben in dieser wundervollen Stadt (es ist hier sehr cool), sondern von alltäglicheren Dingen. Und zwar über die Praktiken, die wir bei der Entwicklung unseres Produkts bei Vineti anwenden.
Wenn Sie immer noch interessiert sind, dann willkommen bei cat.
Bei Vineti verwenden wir
extreme Programmiermethoden und verwenden aktiv die Paarprogrammierung. Als ich zu Vineti kam, war extreme Programmierung etwas Neues und Unbekanntes für mich, aber nach einem Jahr der Entwicklung in diesem Stil kann ich sagen, dass das Schreiben von Code für mich jetzt etwas nicht allzu bequemes und produktives geworden ist.
Wenn sich neben Ihnen eine Person befindet, die genau beobachtet, was Sie schreiben, ist der Code äußerst lesbar. Außerdem findet beim Schreiben des Codes eine Schulung und ein Wissenstransfer zwischen den Prozessteilnehmern statt, und dies erfolgt aus meiner Sicht in der effektivsten Form.
Es kommt vor, dass diejenigen, die diesen Ansatz in der Praxis noch nicht angewendet haben, in Verlegenheit und Unbehagen geraten, weil Sie ständig mit Ihrem Partner kommunizieren und unter strenger Aufsicht Code schreiben müssen, aber im Laufe der Zeit vergeht und Sie verstehen, dass der Partner hier ist. um dir zu helfen, dich nicht zu verletzen.
Vorteile des Ansatzes
Die Vorteile der Paarprogrammierung gegenüber dem Standardansatz sind vielfältig, aber aus meiner Sicht ist der ständige Wissenstransfer über den Anwendungscode zwischen den Teilnehmern des Prozesses der wichtigste. Sie können Paare und Rotationen erstellen (Wechsel der teilnehmenden Ingenieure), sodass jeder Ingenieur über vollständige Kenntnisse aller Teile der Anwendung verfügt. Dies ist besonders wichtig, wenn Sie eine große Codebasis pflegen müssen.
Der nächste Vorteil ist ein ziemlich effektiver Lernprozess. Sie können ein Pairing durchführen, sodass die erfahreneren immer mit den weniger erfahrenen Ingenieuren gepaart werden. Für den leitenden Entwickler lautet die Regel: "Wenn Sie etwas gut wissen möchten, versuchen Sie, einen anderen zu unterrichten." Es besteht auch die Möglichkeit, Ihre Kommunikationsfähigkeiten zu verbessern, da Sie viel und häufig erklären müssen.
Bei Vineti verwenden wir
TDD bei der Paarprogrammierung, wodurch wir zunächst eine große und komplexe Aufgabe in kleine Teile aufteilen und die Architektur der Lösung durchdenken können, bevor wir den Code schreiben. Die Anwesenheit eines Partners, mit dem Sie den gewählten Lösungsansatz besprechen und seine Optimalität direkt im Arbeitsprozess analysieren können, ohne zusätzliche Besprechungen im Team planen zu müssen, hilft bei der Lösung komplexer Probleme.
Und schließlich ist die Paarprogrammierung gut mit der
TDD- Methodik kombiniert. In Vineti schreibt normalerweise ein Ingenieur Tests und versucht, so viele Situationen wie möglich zu beschreiben. Der zweite Techniker schreibt den Feature-Code, wenn der erste Techniker Ihnen erklärt, wie Sie den Code vereinfachen und dabei einen Rot-Grün-Refactoring-Kreis implementieren können.
Nachteile
Die Nachteile dieses Ansatzes würde ich wahrscheinlich der Komplexität der Einrichtung des Prozesses selbst und der Notwendigkeit einer richtigen Auswahl der Teilnehmer in Paaren zuschreiben, was zusätzliche Anstrengungen des Teamleiters und ein gründliches Verständnis der Fähigkeiten und Gewohnheiten aller Mitglieder seines Teams erfordert.
Wenn wir über den menschlichen Faktor sprechen, ist es wichtig, dass die Ingenieure, die derzeit für die Zeit der gemeinsamen Arbeit gepaart sind, eine gemeinsame Art haben, ins Büro zu kommen, zu Mittag zu essen usw. Dies ist nicht immer einfach und es ist notwendig, Paare in diesem Sinne zu bilden.
Beibehaltung eines gemeinsamen Standards
Eine der Bedingungen für eine effektive Paarprogrammierung ist das Vorhandensein eines streng und standardisierten Ansatzes zum Schreiben von Code innerhalb von Befehlen. Zum Beispiel verwenden wir eslint, prettier, rubocop, damit der Code beim Schreiben den gleichen Stil hat. Als Entwicklungsumgebung verwenden wir VS Code und das Terminal iTerm c zsh. Diese Standardisierung ermöglicht es Ihnen, Ingenieure schnell paarweise zu wechseln und gleichzeitig die Anpassungszeit zu minimieren.
Meiner Meinung nach müssen Paare nach Abschluss einer Aufgabe gedreht werden. Dies bietet die niedrigstmögliche effektive Drehung. Der Rollenwechsel kann an einem Tag erfolgen, dies liegt jedoch im Ermessen eines erfahreneren Ingenieurs in einem Paar. Es ist wichtig, sich nicht mitreißen zu lassen und nicht zu versuchen, alle Probleme selbst zu lösen, da das Fehlen eines Rollenwechsels die Effektivität des gesamten Paares negativ beeinflussen kann.
Paarprogrammierung mit San Francisco
Persönlich hatte ich die Erfahrung der Remote-Pair-Programmierung mit einem Kollegen aus dem amerikanischen Büro von Vineti. Dazu haben wir das Live Share-Plugin für VS Code verwendet. Die Erfahrung ist interessant, aber diese Situation hat mehrere Nachteile im Vergleich zur Standardpaarprogrammierung. Das erste ist das Fehlen einer direkten persönlichen Kommunikation. In meinem Fall ist dies auch ein großer Unterschied in den Zeitzonen. Ich musste nach fast einem ganzen Tag Code schreiben, was für mich persönlich sehr anstrengend war.
So passen Sie sich an die Paarprogrammierung an
Versuchen Sie, die Erfahrung anderer Unternehmen zu nutzen und schließlich Ihren Ansatz innerhalb des Unternehmens zu entwickeln. Die ideale Option, die bequem und für alle geeignet ist, gibt es leider nicht.
Ich bin mir auch nicht sicher, ob diese Methode für alle Unternehmen geeignet ist. Wenn Sie beispielsweise nur drei Entwickler in einem Team haben, können Sie offensichtlich nicht viel von der Implementierung der Paarprogrammierung profitieren. Oder wenn Sie zu viel Übergewicht im Team haben, wird es für Sie sehr schwierig sein, gute Paare zu bilden.