Jahresrückblick 2021: das Jahr der Oberflächen
Slash-Commands, ein Dashboard, ein zweites Projekt für eine fremde Community. 2021 habe ich vor allem gelernt, dass Bedienbarkeit ein eigenes Handwerk ist.
963 Wörter · 5 Min. Lesezeit
- rueckblick
- jahr
2020 war das Jahr, in dem der Bot ein System wurde. 2021 war das Jahr, in dem ich gemerkt habe, dass ein System ohne bedienbare Oberfläche nur für den nützlich ist, der es gebaut hat.
Was passiert ist
Slash-Commands. Von Januar bis in den Sommer, mit einer langen Übergangszeit, in der beide Wege parallel liefen. Die Umstellung hat sich gelohnt, aber nicht wegen des Schrägstrichs — sondern weil Befehle seitdem deklariert sind statt geraten.
Das Dashboard. Von der Skizze im Dezember zur laufenden Weboberfläche im Frühjahr. Anmeldung über Discord, Serverauswahl, Einstellungen pro Bereich. Damit ist der Bot zum ersten Mal für Leute konfigurierbar, die keine Befehlssyntax auswendig lernen wollen.
Tailwind und Prisma. Zwei Werkzeuge, bei denen ich anfangs skeptisch war und die beide geblieben sind. Beide lösen kein Problem, das man ohne sie nicht lösen könnte — sie machen bloß den bequemen Weg zum richtigen.
Los Santos County. Mein erstes Projekt mit fremden Anforderungen. Bewerbungen, Rechte, Zahlungen, Anbindungen. Ich habe daran mehr über Kommunikation gelernt als über Code.
Der Musikbefehl ist geflogen. Freiwillig, nach der Abschaltwelle im Sommer. Erste bewusste Entscheidung, ein laufendes Feature zu entfernen.
Die Lektionen des Jahres
Struktur zahlt sich verzögert aus. Die Trennung von Befehlslogik und Aufrufweg habe ich 2020 gebaut, ohne konkreten Nutzen. Sie hat 2021 die Slash-Umstellung von einem Neuschreiben zu einer Zwischenschicht gemacht. Ich glaube trotzdem nicht an Struktur auf Vorrat — aber an Struktur dort, wo man beim Arbeiten regelmäßig Reibung spürt.
Bedienbarkeit ist kein Anhang. Ein Feature, das man nicht findet, existiert nicht. Ein Feature, das man falsch bedient, ist schlimmer als keins. Das Dashboard hat den Bot nicht mächtiger gemacht, sondern zugänglich — und der Unterschied in der Nutzung war deutlich größer als bei jedem neuen Befehl.
Fremde Anforderungen sind ein eigenes Handwerk. Fragen stellen, zurückspiegeln, Nein sagen. Ich war darin 2021 schlecht und bin es heute mittelmäßig. Es ist die Fähigkeit, deren Fehlen mich am meisten Zeit gekostet hat.
Nicht jede Abhängigkeit ist gleich. Manche kann man abfedern, manche nicht. Ein Feature, das nur funktioniert, solange jemand anderes wegschaut, ist keine Basis.
Was ich mir vorgenommen und nicht geschafft habe
Aus dem letzten Rückblick:
- Dashboard bauen — erledigt, wenn auch später als geplant.
- Slash-Commands ernst nehmen — erledigt.
- Nicht mehr alles selbst schreiben — teilweise. Ich habe bei Sitzungsverwaltung, Zahlungen und Zeitplanung fertige Lösungen genommen. Bei anderen Dingen habe ich weiterhin selbst angefangen, wo es unnötig war.
Und weiterhin offen, jetzt im zweiten Jahr: Aufschreiben, was ich tue. Meine Dokumentation besteht aus Kommentaren im Code und einer Textdatei mit Notizen. Wenn ich mich in einem halben Jahr frage, warum etwas so gebaut ist, finde ich die Antwort nicht.
Was 2022 kommt
Es zeichnet sich ab, dass ich mich mit Struktur auf einer größeren Ebene beschäftigen muss. Der Bot, das Dashboard und die geteilten Teile liegen in getrennten Projekten mit doppeltem Code. Änderungen an gemeinsamen Funktionen muss ich an zwei Stellen machen, und ich vergesse regelmäßig eine.
Außerdem steht eine große Version der Bot-Bibliothek an, und Next.js kündigt einen grundlegend neuen Ansatz an. Beides wird Arbeit.
Die Umstellung, die am meisten gebracht hat
Wenn ich eine Änderung dieses Jahres auswählen müsste, wäre es nicht das Dashboard und nicht die Slash-Commands. Es wäre eine unscheinbare Sache: die Trennung zwischen dem, was ein Befehl tut, und dem, wie er aufgerufen wird.
Sie stammt aus dem Vorjahr, hat 2021 die Umstellung auf ein neues Aufrufmodell zu einer Zwischenschicht statt eines Neuschreibens gemacht, und sie ist der Grund, warum ich Jahre später eine mobile App bauen konnte, ohne die Logik anzufassen.
Das Muster dahinter: Eine gute Trennung zeigt ihren Wert nicht bei der Einführung, sondern bei der nächsten Änderung. Deshalb ist sie so schwer zu rechtfertigen, wenn man sie einführt — und so offensichtlich, wenn man sie hat.
Was ich mir für die Zukunft notiert habe
Zwei Dinge, die ich am Ende dieses Jahres aufgeschrieben habe und die sich als tragfähig erwiesen haben.
Wenn mich eine Sache beim Arbeiten regelmäßig stört, ist das ein Signal — kein Grund zur Disziplin. Ich hatte mir lange eingeredet, dass ich mich beim Bearbeiten der großen Datei einfach mehr konzentrieren müsste. Tatsächlich war die Datei das Problem.
Umstellungen dauern länger als der Umbau. Der technische Teil einer Migration ist der kleinere. Die Übergangszeit, in der beides parallel läuft, ist der größere — und sie braucht eine Entscheidung darüber, wann Schluss ist. Ohne dieses Datum läuft der alte Weg für immer.
Die Sache, die ich am meisten unterschätzt habe
Beim Durchgehen des Jahres fällt mir vor allem auf, wie sehr ich die Zeit für Übergänge unterschätzt habe.
Die Slash-Umstellung war technisch an einem Wochenende erledigt. Bis der alte Weg abgeschaltet werden konnte, vergingen sechs Monate.
Das Dashboard war nach ein paar Wochen benutzbar. Bis es alles konnte, was die Chatbefehle konnten, dauerte es deutlich länger.
Und beides zusammen bedeutet: In diesem Jahr existierten praktisch dauerhaft zwei Wege für dieselbe Sache. Das ist der Normalzustand bei Umstellungen, und er kostet: jede Änderung muss zweimal gemacht werden, jede Erklärung zweimal formuliert, jeder Fehler zweimal gesucht.
Was ich daraus mitgenommen habe: Bei einer Umstellung gehört das Abschaltdatum in die Planung, nicht in die Zukunft. Ohne dieses Datum bleibt der alte Weg für immer, weil es nie einen guten Zeitpunkt gibt, ihn zu entfernen.
Der Satz zum Schluss
Was mich dieses Jahr am meisten überrascht hat: Wie viel Wirkung Bedienbarkeit hat.
Ich habe monatelang Features gebaut, die kaum jemand benutzt hat, weil sie schwer zu finden waren. Und ich habe an einem Wochenende eine Übersichtsseite gebaut, die nichts Neues konnte — sie hat nur gezeigt, was schon da war — und danach wurden Funktionen benutzt, die seit einem Jahr existierten.
Das ist eine unbequeme Erkenntnis für jemanden, der lieber baut als gestaltet. Sie stimmt trotzdem.