Red, Green, Refactor - Warum TDD nicht nur für’s Coden wichtig ist

Stell Dir vor, Du hast eine grüne Wiese vor Dir und hast die Chance, darauf zu bauen was Du möchtest. Dabei helfen Dir einfache Tools wie TDD und eine Unternehmenskultur wie bei InVision. Was das genau bedeutet, möchte ich Dir gerne erzählen.

Red - die Herausforderung

InVision habe ich eher zufällig über die bekannten zwei Ecken kennengelernt. Ich hörte über Kommilitonen von diesem Unternehmen, das seinen Mitarbeitern Selbstorganisation und agiles Arbeiten ermöglicht - ganz ohne Hierarchie. Die Hafentalks und Meetup-Veranstaltungen waren daraufhin eine erste Möglichkeit, mehr über InVision zu erfahren…

Überzeugt von den ersten Eindrücken, beschloss ich, mich bei InVision als Softwareentwickler zu bewerben. Ich wusste bereits zu Beginn meiner Bewerbung, dass man hier großen Wert auf Qualität bei der Entwicklung legt. TDD, funktionale Programmierung, Docker, Continuous Integration und Delivery waren zu diesem Zeitpunkt keine Fremdworte für mich. Obwohl ich keine nennenswerten praktischen Erfahrungen mit diesen Buzzwords hatte, wollte ich diese spannenden Themen besser kennen lernen.

Ich machte mir Gedanken, wie es sein würde, meine gewohnte Arbeits- und Entwicklungsumgebung (Einzelbüro, Java statt Elixir und Ruby) zu verlassen um neue, unbekannte Wege zu erkunden. Ich war damals nicht einmal sicher, wohin diese Neuorientierung führen würde und ob InVision mich bei meiner Weiterentwicklung unterstützen würde.

Zum selben Zeitpunkt bestand außerdem für mich die Möglichkeit eine Stelle im wohlbekannten Terrain anzunehmen, die wesentlich weniger Aktionismus und Umgewöhnung erfordert hätte. Was soll ich sagen? - Change is good! :-)

Green - die Belohnung

Nach einer kurzen, sehr angenehmen Bewerbungsphase, bestehend aus einem Telefonat, einem Interview vor Ort und einem Probearbeitstag, habe ich von InVision eine Zusage erhalten und somit grünes Licht bekommen… yeah!

Die wahre Belohnung bei InVision zu arbeiten ist für mich, gleichgesinnte Kollegen um sich zu haben. Die wahre Qualität beim Programmieren erreicht man hier nicht nur durch Tests, sondern vor allem durch tägliches Pairing. Nicht alleine im Büro zu sitzen und einen regelrechten Tunnelblick zu entwickeln, sondern sich gegenseitig zu motivieren und Ideen auszutauschen, darauf kommt es hier bei InVision an. Dabei geht es nicht darum, sich gegenseitig zu kontrollieren oder auf Fehler hinzuweisen, sondern darum, gemeinsam die richtige Lösung für Problemstellungen zu erarbeiten und dabei den eigenen Horizont zu erweitern.

InVision Mitarbeiter bei der Arbeit.

Eine große Bereicherung bei der täglichen Arbeit ist außerdem TDD, was bei uns so funktioniert: Anfangs hast du diesen einen Test geschrieben, der fehlschlägt. Du siehst es als Herausforderung, diesen Test zu fixen. Gelingt es dir, wirst du regelrecht mit einem grünen Licht belohnt.

Bei InVision gehört eine hohe Abdeckung des Codes durch Tests zur Arbeit dazu. Ein netter Effekt ist, dass sich spontane Änderungen im Code durch bestehende und neue Tests auf Qualität überprüfen lassen. Versehentliche Fehler lassen sich schnell finden und beheben. Und das Beste ist, Ruby und Elixir bringen alles mit, was man für TDD benötigt.

Qualität macht sich bezahlt…

Refactor - die Verbesserung

Mitdenken, mitreden, mitmachen - bei InVision nehmen wir uns Zeit, um über unsere Arbeit zu reflektieren. Wir beginnen dabei im Kleinen mit dem Code, den wir schreiben. Unsere grundlegende Annahme dabei lautet: Wir lassen schlechten Code, über den wir stolpern, nicht einfach liegen, sondern packen ihn an, verbessern ihn und bringen ihn auf den neuesten Stand.

Wir erweitern die Selbstreflexion auf unsere gesamte Arbeitsweise, indem wir unser Handeln regelmäßig hinterfragen und zu optimieren versuchen. Wir pflegen eine offene Kommunikation und tauschen unsere Eindrücke in regelmäßigen Feedback-Gesprächen aus. Im Ernst: Wissensaustausch und dazu ein kleines Lob hier und da motivieren ungemein.

Zeit, um neue Technologien und Arbeitsweisen auszuprobieren, nehmen wir uns ganz bewusst. Wir haben Spaß daran, Code gegenseitig zu reviewen und darüber zu fachsimpeln und zu diskutieren. Gegen Stillstand wehren wir uns einfach und stellen jederzeit in Frage, wie wir z. B. miteinander arbeiten wollen und welche agilen Methoden wir nutzen.

Wirklich cool ist dabei, dass alle Prozesse des Refactorings vom Code bis zur kompletten Arbeitsweise offen kommuniziert werden. Auf diese Weise kann jeder über Änderungen mitreden, mitentscheiden und Ideen weiterentwickeln.

Bei InVision sind wir eben alle Entwickler. ¯\_(ツ)_/¯

Vorheriger Beitrag Nächster Beitrag