Ruhige Köpfe.
Ziemlich stur.
Uns interessiert die eigentliche Ursache. Das Framework, das gerade in Mode ist, kann warten, bis es dran ist.
Ticket #4711Offen
Der Monatsabschluss dauert neun Stunden.
Bis zum Update im Juli waren es zwanzig Minuten.
Fünfmal Warum.
Der Fall ist ausgedacht, selten ist er leider nicht. Wir fragen so lange nach, bis die Antwort mehr hergibt als „Das ist halt so“.
Warum? 1 von 5
Weil die Datenbank für jede Rechnung die komplette Kundentabelle durchsucht. 40.000-mal pro Lauf.
Der Reflex, den wir uns sparen: „Wir brauchen einen größeren Server.“
Warum? 2 von 5
Weil der Index auf der Kundennummer seit dem Update im Juli fehlt. Ohne ihn wird jede Suche zur Handarbeit.
Der Reflex, den wir uns sparen: „Wer war das?“
Warum? 3 von 5
Weil ein Aufräumskript von 2021 bei jedem Update Indizes löscht, die es für doppelt hält. Diesmal hat es den falschen erwischt.
Der Reflex, den wir uns sparen: „Die Datenbank ist zu alt. Eine neue muss her.“
Warum? 4 von 5
Weil es zwei Kundentabellen mit gleich benannten Indizes gibt: „Kunden“ und „kunden“. Groß- und Kleinschreibung ignoriert das Skript.
Der Reflex, den wir uns sparen: „Wir stellen alles auf Microservices um.“
Warum? 5 von 5
Weil jemand die Tabelle bei einer Migration „vorübergehend“ kopiert hat, an einem Freitag um 17:48 Uhr. Der Kommentar steht heute noch drin.
Der Reflex, den wir uns sparen: „Das war schon immer so.“
Ein Index zu wenig.
Eine Tabelle zu viel.
Was wir geändert haben
- Den Index zurückgeholt und vorher wie nachher gemessen.
- Das Aufräumskript repariert. Ein Test prüft jetzt genau diesen Fall.
- Die beiden Tabellen zusammengeführt, mit einem Weg zurück.
- Alles aufgeschrieben, damit es niemand noch einmal ausgraben muss.
Ergebnis
- Monatsabschluss
- 18 Minuten
- Server
- derselbe
- Neuschreibung
- abgesagt
Was am Grund liegt.
Vier Grundsätze.
Jede Bohrung endet bei denselben vier Sätzen. An die halten wir uns, gerade wenn es eilig ist.
Der Reflex, den wir uns sparen: „Das schreiben wir einfach neu.“
Erst verstehen, dann anfassen.
Wir beginnen mit dem System, das Sie tatsächlich haben: mit seinen Grenzen, den Menschen dahinter und dem undokumentierten Verhalten, auf das sich alle stillschweigend verlassen. Bevor wir etwas versprechen, machen wir sichtbar, was noch unbekannt ist.
Alter Code. Muss er weg?Der Reflex, den wir uns sparen: „Nehmen wir, was gerade alle nehmen.“
Die richtigen Werkzeuge. Ihre eingeschlossen.
Technologie ist Mittel zum Zweck. Wir wählen sie nach Last, Team und Lebensdauer der Software aus. Manchmal ist das beste Werkzeug das, das Sie schon kennen.
Der Reflex, den wir uns sparen: „Fühlt sich schon schneller an.“
Fortschritt, den man prüfen kann.
Wir arbeiten mit kleinen Änderungen, sinnvollen Tests und offen benannten Abwägungen. Performance messen wir an Ihrer echten Last, und über Risiken reden wir, solange man noch etwas dagegen tun kann.
Schneller ist kein Bauchgefühl.Der Reflex, den wir uns sparen: „Steht doch alles im Code.“
Leichter zu betreiben als vorher.
Lesbarer Code, nachvollziehbare Deployments und eine Dokumentation, die Fragen beantwortet. Die Arbeit soll sich auch nach der Übergabe noch auszahlen.
Mut ist kein Rollback.
Projektdeutsch.
Übersetzt.
Diese Sätze fallen in fast jedem Softwareprojekt. Hier steht, was sie meistens bedeuten.
- „Das ist historisch gewachsen.“
- Keiner weiß mehr, warum es so ist. Anfassen will es trotzdem niemand.
- „Nur ein kleiner Fix.“
- Niemand hat nachgesehen, was alles daran hängt.
- „Bei mir läuft’s.“
- Auf genau einem Rechner. Leider nicht auf dem, der zählt.
- „Das ist kein Bug, das ist ein Feature.“
- Ein Bug, an den sich alle gewöhnt haben.
- „Das räumen wir nach dem Go-live auf.“
- Das räumt niemand auf.
- „Unsere technischen Schulden haben wir im Griff.“
- Die Zinsen zahlt Ihr Team jeden Tag, in Überstunden.
Von uns bekommen Sie gleich den Klartext.
Gute Software macht Ihren Arbeitstag
angenehm ereignislos.