Direkt zum Hauptbereich

Warm werden mit einer neuen Codebasis

Als ich vor einem halben Jahr die Firma wechselte, kam neben einer neuen Umgebung mit neuen Leuten auch eine riesige, gewachsene Codebasis auf mich zu. Da es sich um ein kommerzielles Produkt handelt gab es immerhin eine Dokumentation und eine Woche Schulung dazu. Um nun aber wirklich schnell produktiv zu werden haben mir dann "Fake it till you made it" und "TDD as if you meant it" geholfen.

Meine Aufgabe war es neue bzw. erweiterte REST Schnittstellen anzubieten. Das Produkt basiert auf Spring und stellt bereits eigene REST Schnittstellen bereit, hat aber genügend Besonderheiten.

Fake it till I made it

Damit die Konsumenten meiner Schnittstellen möglichst schnell diese Anbinden konnten und nicht warten mussten bis ich endlich so weit bin die Schnittstelle bereit zu stellen habe ich zunächst den Controller mit den definierten Methoden geschrieben. Als Rückgabewert gab es dann halt Dummydaten welche nach bestem Wissen aber schon dem erwarteten Format entsprechen.

TDD as if you meant it

Bei TDD as if you meant it wird sowohl der Testcode als auch dessen Erfüllungscode innerhalb der Testmethode geschrieben (und dann heraus refaktored) Details siehe z.B.: hier.
Da ich ja schon wusste wie das Ergebnis aussehen soll aber noch unsicher war wie ich durch die verschiedenen Schichten an die entsprechenden Daten komme und diese transformieren muss, lag es auf der Hand dies erstmal Schrittweise in Integrationstests zu fixieren und mich dann an die API heran zu tasten. Dabei halfen mir die Tests zu wissen wann dann Ziel erreicht ist und wann eine Änderung etwas schon geschaffenes wieder zunichte macht. Des weiteren halfen die Tests beim Experimentieren noch offene ToDos zu fixieren. Musste in einer Schicht mehr Logik entwickelt werden kamen hier dann UnitTests hinzu.

Und Ihr?

Welche Erfahrungen habt ihr mit neuen Codebasen und der Einarbeitung gemacht?
Wie werdet ihr warm und nehmt Fahrt auf?

Kommentare

Beliebte Posts aus diesem Blog

Eine Retro im Kreis

Für die letzte Retro habe ich die Tische und Stühle alle beseite gestellt um dann mit Klebeband (Malercrep) drei unterschiedlich große Kreise um einen Mittelpunkt zu kleben. Der innerste Ring war groß genug, dass das gesamte Team da drin Platz finden konnte.

Für die erste Phase der Retro habe ich Kärtchen mit den Zahlen 50, 40, 30, 20 in den Ringen verteilt. Die 50 in der Mitte und dann absteigend nach außen. Um so eine Zielscheibe anzudeuten.

Speed Temenos auf dem AgileDay der JAX

Letzte Woche hatte ich die Gelegenheit auf dem AgileDay der JAX zu sein. Neben Vorträgen am Vormittag mit Beiträgen zu Retrospektiven agile in Konzernen sowie einer spezifischen Implementierung in einem Unternehmen stand nach der Mittagspause ein Speed Temenos mit Olaf Lewitz und Christine Neidhardt auf dem Programm. Zur Unterstützung hatten sie sich Unterstützung über die Softwerkskammer organisiert, so dass die Anwesenden von insgesamt 20 Facilitatoren betreut wurden.

Bei Temenos handelt es sich um einen "geschützten Raum" in dem Menschen Offenheit und Vertrauen erleben können. Das Speed Temenos mit seinen 3 Phasen, in welchen es um die Persönliche (Berufliche) Vergangenheit, den Ist-Zustand und die Vision für die Zukunft geht hilft über Geschichten erzählen, sich selbst zu reflektieren und Gemeinsamkeiten in der Gruppe zu entdecken. Details sind auf http://trusttemenos.de/ viel besser erklärt als ich es hier kann.

Ich hatte Temenos mit Olaf bereits auf der Play4Agile 201…

Der Wasserfall ist immer noch vorherrschend in der Softwareentwicklung

In den letzten Jahren sind viele "neue" Bewegungen auf der Bildfläche des Mainstream-Bewusstseins der Softwareentwicklung erschienen. Und viele aktuelle Studien berichten, dass die Agilität den Wasserfall abgelöst hat. In allen Softwareunternehmen und viele der Entwickler die ich treffe reden zumindest viel über Agilität.

Wenn aber mal einen Schritt zurück macht sieht das (ideal) Bild eher so aus:

Die neue Lösung wird mit Design Thinking gefunden und definiert. In der Entwicklung ist dann eher die Rede von agile (meist Scrum) und selten SoftwareCraftsmanship. Von der Betriebsseite heißt es nun DevOps. Aber dazwischen gibt es immer noch Brüche und es existiert keine Ganzheitlichkeit.

Jahrzehnte lang haben wir in der Softwareentwicklung geglaubt und es so auch allen Kunden beigebracht, dass die "Cost of Change Curve" gilt und daher der Wasserfall als Vorgehen perfekt ist.
(Was nun was bedingt, lass ich mal dahingestellt)

Dadurch haben sich natürlich auch die Struktur…