Wie man mehrere Teams effizient in TYPO3-Projekte einbindet

Bring alle dazu, an einem Strang zu ziehen

|David Steeb

Große Organisationen und Agenturen stehen vor der gleichen Herausforderung: Es ist eine Sache, alle an einem Strang ziehen zu lassen, aber eine andere, sie in die gleiche Richtung ziehen zu lassen. Das ist umso schwieriger, wenn du mehrere Entwicklerteams hast, die zusammenarbeiten müssen. Wir werden oft gebeten, ein externer Partner für interne Entwicklerteams zu sein. Die Leute brauchen uns, um ihre Entwicklungs-Workflows in Form zu bringen und ihren Code zu überprüfen. Hier sind die Tools, die wir verwenden, um die Produktivität von Teams mit mehreren Mitarbeitern zu maximieren.

Du kannst unseren Ansatz innerhalb eines einzelnen Unternehmens anwenden oder wenn du externe Teams von Freiberuflern oder Agenturen einbeziehst. Unser Ansatz minimiert das Durcheinander, verkürzt den Einarbeitungsprozess und bedeutet, dass wir uns nicht mehr gegenseitig den Code überschreiben!

Finde heraus, wie wir die Mitarbeiter von BRAND weiterbilden und ihre TYPO3 Entwicklungsprozesse optimieren!

Case Study lesen

Git und Gitlab für die Zusammenarbeit am Code und die Protokollierung von Änderungen

Git ist das Versionskontrollsystem, das wir für das Nachvollziehen von Änderungen am Code und die Zusammenarbeit im Team verwenden. Ein Entwickler holt sich seine eigene Kopie des Projektcodes, arbeitet an seinem eigenen Zweig, erklärt, was er getan hat, damit andere Entwickler die Änderungen verstehen können, und führt seine Arbeit in der Staging-Umgebung zusammen. Wir verfügen über eine Vielzahl von Best Practices, die wir bei unserer Arbeit an TYPO3 Core entwickelt haben, um Fehler zu minimieren und die Transparenz zu erhöhen. Vor allem unser "ein Feature pro Zweig" verhindert, dass eine Änderung andere aufhält und hilft uns, schneller zu debuggen.

Obwohl jeder Entwickler seine eigene Kopie des Git-Repositorys hat, muss das Repository zentral gehostet werden, damit jeder die neueste Version kopieren kann. Wir haben uns für GitLab entschieden, weil der Code dahinter quelloffen ist und somit zu unseren Werten als Unternehmen passt. Alternativ kannst du auch GitHub verwenden, das Closed-Source ist und Microsoft gehört.

Unsere Projektmanager kennen sich auch gut mit Git aus, denn einige von ihnen fügen recht häufig Änderungen zu einem Projekt hinzu, vor allem für Dinge wie Labels und lokalisierte Strings. Dadurch verstehen sie gut, wie der Entwicklungsprozess funktioniert.

Lokale Entwicklungsumgebung

Unsere TYPO3-Entwickler müssen oft Code ändern, zum Beispiel:

  • Fehlersuche
  • Refactoring (Optimierung des Codes für Leistung oder Lesbarkeit)
  • Hinzufügen von Features
  • Installation von Drittanbieter-Code (z.B. eine TYPO3-Erweiterung oder -Integration)
  • Aktualisieren von TYPO3 Core oder Extensions

Wenn die Entwickler dies auf der Live-Site tun würden, gäbe es wahrscheinlich Ausfälle, wenn etwas schief geht—was für alle Beteiligten sehr stressig wäre.

Außerdem könnte immer nur eine Person gleichzeitig an der Website arbeiten, um zu vermeiden, dass sich die Entwickler gegenseitig überschreiben oder negative Auswirkungen verursachen. Es gibt so viele Dinge, die schief gehen können! Deshalb machen wir das auch nie.

Stattdessen holt sich jeder Entwickler eine Kopie der Live-Site, führt sie auf seinem eigenen Rechner aus und nimmt dort alle Änderungen vor.

Lokaler Testserver spiegelt die Live-Umgebung wider

Ein weiterer Vorteil der lokalen Entwicklung ist, dass der gesamte Code getestet werden kann, bevor er in die Arbeit anderer Entwickler integriert wird. Automatisierte Tests stellen sicher, dass Fehler oder Schwachstellen, die leicht übersehen werden könnten, ausgemerzt werden können. Es ist eine große Hilfe, Fehler zu beseitigen, bevor der Code zusammengeführt wird, denn die Fehlersuche ist schwieriger, wenn man nicht weiß, welche Änderungen die Ursache sind.

Zu diesem Zweck hat jeder Entwickler seinen eigenen lokalen Testserver, der die Online-Site widerspiegelt. Mit einem Mausklick können sie die Live-Datenbank importieren, damit der Code unter realen Bedingungen getestet werden kann.

Merge Request und Staging

In vielen Projekten besteht unsere Aufgabe darin, den Code abzunehmen, bevor er implementiert wird. Wir überprüfen den Code, um sicherzustellen, dass er mit den Anforderungen übereinstimmt, die das Verständnis des Codes für unbekannte Entwickler erleichtern, und beseitigen alle offensichtlichen Fehler. In dieser Phase führen wir jedoch keine Funktionstests durch, d. h. wir prüfen nicht, ob der Code tatsächlich funktioniert. (Das sollten die Entwickler selbst tun, bevor sie den Code zusammenführen und wenn er schließlich in die Arbeitsumgebung integriert wird).

Wenn der Merge Request akzeptiert wird, wird der Code in die Staging-Umgebung integriert - ein vollständig automatisierter Prozess. Hier wird die Arbeit aller Teammitglieder zusammengeführt. Auch wenn jede einzelne Änderung nichts kaputt macht, müssen wir jetzt prüfen, ob alles funktioniert, wenn die Änderungen von Entwicklern aus verschiedenen Teams zusammengeführt wurden. Mit einer Kombination aus automatisierten Tests und manuellen Nutzertests prüfen wir gründlich die Sicherheit und Funktionalität.

Schließlich kann der Code deployed werden. Das machen wir automatisch: Es geht darum, ein Tag in Git zu ändern.

Bewährte Methoden zur Verbesserung der teamübergreifenden Arbeit anwenden

Im Laufe der Jahre haben wir Techniken gelernt, um unsere Arbeit zu standardisieren. Das reduziert vor allem die Zeit, die Entwickler investieren müssen, um den Code eines anderen zu verstehen - ein Szenario, das umso wahrscheinlicher ist, je größer die Zahl der Entwickler und Teams ist. Unsere wichtigsten Tipps sind:

  • Anwendung von Coding-Standards: Wir halten uns an die coding guidelines, die für die Arbeit am TYPO3-Projekt festgelegt wurden. Konsistenz innerhalb der Organisation ist großartig, weil der Code demjenigen vertraut ist, der ihn geschrieben hat, aber organisationsübergreifende Standards sind ein großer Vorteil. Wenn du neue TYPO3 Entwickler einstellst oder deine Agentur wechselst, sind diese wahrscheinlich bereits mit deinen Codierungsstandards vertraut, sodass die Einarbeitung schneller geht.
  • Verwende standardisierte Commit-Nachrichten: Bei jeder Git-Übertragung hat ein Entwickler die Möglichkeit zu erklären, was er getan hat. Wir tun dies in einem standardisierten Format und verknüpfen jede Änderung mit einem Ticket, damit ein unbekannter Entwickler genau sehen kann, was wann und warum getan wurde. Das ist eine große Hilfe, wenn man die Schritte zurückverfolgen will, um den Code zu debuggen oder Änderungen auf die richtige Weise vorzunehmen.
  • Ermutige eine Kultur der Kommunikation: Neben Codekommentaren und Commit-Nachrichten ist die Kommunikation der Schlüssel zur Zusammenarbeit und ein Grundpfeiler unserer Unternehmenskultur. Manchmal reicht ein freundlicher Klaps auf die Schulter oder der Griff zum Telefon, um ein Problem zu lösen; aber bedenke, dass sich Entwickler über lange Zeiträume konzentrieren müssen, weshalb asynchrone Kommunikation bevorzugt werden sollte.

Etabliere optimale Prozesse, um das Beste aus deinen Entwicklungsteams herauszuholen

TYPO3 wächst mit deinen Bedürfnissen als Organisation, und je größer dein Projekt wird, desto wahrscheinlicher ist es, dass du mehr Leute einbeziehst - auch andere Teams. Ein durchdachter, standardisierter Prozess macht es viel schneller, neue Leute einzubinden und alle Teams an einen Strang ziehen zu lassen.

Musst du interne Teams oder externe Agenturen in deinen Entwicklungsprozess einbeziehen?

Nimm Kontakt auf und finde heraus, wie wir dir helfen können!

Let's Connect