Jahresrückblick 2023: das Jahr der Schulden
Aufräumen statt aufbauen: dreißig ungenutzte Befehle, ein Content-System wieder raus, Redis optional, eine eigene Seite. Was ich abgebaut habe und was neu dazukam.
933 Wörter · 5 Min. Lesezeit
- rueckblick
- jahr
Dieses Jahr habe ich zum ersten Mal mehr entfernt als hinzugefügt. Das klingt nach einem schlechten Jahr und war eines der produktivsten.
Was passiert ist
Die Auswertung im Januar. Dreißig Befehle in neunzig Tagen nie aufgerufen, achtzehn davon am Ende entfernt. Ausgangspunkt für fast alles, was danach kam.
Ticket-System v3. Abschriften, Kategorien mit Formularfeldern, interne Notizen, Automatikregeln. Der größte Einzelbrocken des Jahres — und der Ort, an dem ich mein Musterbeispiel für Überverallgemeinerung gebaut habe.
Premium durchdacht. Struktur steht, Zahlung noch nicht scharf. Wichtiger als die Technik war die Liste dessen, was niemals hinter Bezahlung gehört: Moderation, Datenexport, Verfügbarkeit.
Lizenzsystem. Schlüsselformat mit Prüfziffer, Hashes statt Klartext, weiche Gerätebindung mit Prüfspur. Eine der langlebigsten Sachen, die ich gebaut habe.
Directus rein und wieder raus. Ein halbes Jahr Content-System, dann durch Dateien und eigene Masken ersetzt. Zwei Wahrheiten über dasselbe Schema sind auf Dauer teurer als etwas mehr eigener Code.
Redis optional. Aus einer Voraussetzung wurde eine Beschleunigung. Für Selbstbetreiber eine Hürde weniger, für mich ein Dienst weniger im Betrieb.
Docker verstanden. Zwei Abende, die zwei Jahre Copy-Paste beendet haben.
blackzack.dev. Eine eigene Seite, die nicht Yurna ist, mit Inhalten als Dateien im Repository.
Die Lektionen
Umfang ist eine Last, auch für Nutzer. Ich hatte Features immer als Angebot verstanden. Tatsächlich muss man alles Überflüssige jedes Mal überfliegen, wenn man etwas sucht.
Was man nicht misst, überschätzt man. Ohne die Nutzungszahlen hätte ich weiter geglaubt, hundertfünfzig Befehle seien ein Vorteil.
Ein zusätzlicher Dienst muss sich rechtfertigen. Jeder will laufen, gesichert, aktualisiert und überwacht werden. Directus hat sich nicht gerechnet, Redis als Pflicht auch nicht.
Zwei Wahrheiten über dieselbe Sache sind der teuerste Zustand überhaupt. Egal ob zwei Formeln, zwei Schemabeschreibungen oder zwei Rechtesysteme.
Was offen bleibt
Die Dokumentation. Vierter Rückblick in Folge. Es gibt Anleitungen für Nutzer, aber nichts über Entscheidungen. Warum etwas so gebaut ist, was ich verworfen habe und warum — das steht nirgends, und ich beantworte mir diese Fragen inzwischen mehrmals im Jahr neu.
Die Datenbankfrage. Weiterhin Postgres, weiterhin überdimensioniert, weiterhin kein akuter Grund zu wechseln.
Der Zahlungsteil. Die Struktur steht seit Frühjahr, scharf geschaltet ist nichts.
Was 2024 kommt
Ich merke, dass mein System an einer Stelle wackelt, die mit Features nichts zu tun hat: Alles hängt an einem Prozess. Wenn das Dashboard nicht baut, ist auch die Verwaltung weg. Wenn der Bot abstürzt, kann ich nichts nachsehen. Diese Kopplung will ich auflösen.
Und ich will endlich anfangen aufzuschreiben, was ich tue. Nicht als Vorsatz — den hatte ich jetzt viermal —, sondern mit einem konkreten Ort und einem festen Ablauf.
Die Bilanz der Aufräumaktion
Weil dieses Jahr überwiegend aus Wegnehmen bestand, hier die Zahlen dazu — sie sind der ehrlichste Teil des Rückblicks.
Achtzehn Befehle entfernt von rund hundertfünfzig. Beschwerden: zwei, beide zu Funktionen, die daraufhin in schlankerer Form geblieben sind.
Drei Abhängigkeiten entfernt, weil sie nur von entfernten Befehlen gebraucht wurden. Jede davon war eine dauerhafte Verpflichtung.
Ein Dienst entfernt — das Content-System. Ein Prozess weniger im Betrieb, in der Überwachung und bei jedem Umzug.
Eine Voraussetzung entfernt — der Zwischenspeicherdienst ist optional geworden.
Was dabei nicht in Zahlen steht: Die Startzeit ist gesunken, die Prüfläufe sind schneller, und die Befehlsauswahl ist übersichtlicher geworden. Nichts davon ist eine Funktion, und alles davon merkt man täglich.
Was ich mir für das Aufräumen angewöhnt habe
Aus diesem Jahr ist ein fester Ablauf geworden, den ich seitdem einmal jährlich durchgehe:
- Nutzung auswerten. Was wurde in neunzig Tagen nicht benutzt?
- Nach Ursachen sortieren. Wird es nicht gefunden, nicht gebraucht, oder ist es schlecht?
- Abhängigkeiten prüfen. Welche Pakete hängen nur an Kandidaten für die Entfernung?
- Ankündigen, warten, entfernen.
- Daten später löschen als Code.
Der zweite Punkt ist der, den man nicht überspringen darf. Zwischen „wird nicht benutzt" und „ist nutzlos" liegt der Fall „wird nicht gefunden" — und der ist ein Auffindbarkeitsproblem, kein Grund zur Entfernung.
Die drei Fragen, die ich mir am Jahresende stelle
Seit diesem Jahr gehe ich beim Rückblick immer dieselben drei Fragen durch, und sie ergeben ein ehrlicheres Bild als jede Aufzählung.
Was habe ich entfernt? Die Frage, die niemand stellt und die am meisten über den Zustand eines Projekts sagt. Ein Jahr ohne Entfernung bedeutet, dass etwas nur gewachsen ist.
Was hat mich am meisten Zeit gekostet — und war es das wert? Bei mir waren es das Ticket-System und das Content-System. Das erste ja, das zweite nein, und beim zweiten war der Lerneffekt trotzdem echt.
Was habe ich zum zweiten Mal gelernt? Die unangenehmste Frage. Bei mir dieses Jahr: dass eine Verallgemeinerung mit einem Anwendungsfall keine ist. Ich wusste das und habe es trotzdem wieder gebaut.
Was ich mir für das nächste Jahr konkret vorgenommen habe
Nach vier Rückblicken mit demselben offenen Punkt wollte ich es diesmal anders formulieren — nicht als Absicht, sondern mit einem Prüfpunkt.
Statt „mehr dokumentieren" also: ein fester Ort, ein festes Format für Fehlernotizen, ein Auslöser, der nicht „wenn Zeit ist" heißt.
Ob das funktioniert, weiß ich beim Schreiben dieser Zeilen noch nicht. Was ich weiß: Vier Anläufe mit derselben Formulierung sind genug, um zu schließen, dass die Formulierung das Problem war und nicht die Disziplin.
Zum Schluss
Das Jahr hat mir eine unbequeme Sache klargemacht: Der Zustand meines Projekts hing weniger von dem ab, was ich neu gebaut habe, als von dem, was ich mitgeschleppt habe.
Aufräumen fühlt sich nicht nach Fortschritt an, weil am Ende des Tages nichts Neues da ist. Aber jeder entfernte Befehl, jeder gestrichene Dienst und jede zusammengeführte Doppelung hat die folgenden Monate leichter gemacht. Das ist eine Rechnung, die man erst hinterher sieht.