Artikel

Jahresrückblick 2020: das Jahr, in dem Yurna entstand

Ein neues Repository im Februar, ein Umzug auf einen gemieteten Server, eine Datenbank statt Dateien, achtzig Leute im Discord und ein dreitägiger Ausfall. Was 2020 bei mir passiert ist.

BlackZackBlackzack

970 Wörter · 5 Min. Lesezeit

  • rueckblick
  • jahr
  • yurna

2019 habe ich gelernt, dass Dinge laufen müssen, auch wenn ich nicht davorsitze. 2020 habe ich gelernt, was das kostet.

Das Jahr hat sich in zwei Hälften geteilt, die wenig miteinander zu tun haben. Bis März war es Basteln mit Struktur. Ab April kamen Leute dazu, und ab da war jede technische Entscheidung auch eine Entscheidung über andere.

Die Zahlen

  • Ein neues Repository am 24. Februar, aus dem später Yurna wurde.
  • Von 5 auf gut 45 Befehle, verteilt auf sieben Kategorien.
  • Von 6 auf ungefähr 80 Leute im Discord, in den Wochen ab April.
  • Ein Umzug vom Rechner unter dem Schreibtisch auf einen gemieteten Server.
  • Eine Datenbank statt drei JSON-Dateien.
  • Ein Ausfall von drei Tagen, den niemand gemeldet hat.

Was strukturell passiert ist

Der Befehls-Handler. Aus einer Datei mit vierhundert Zeilen wurde ein Ordner mit einer Datei pro Befehl. Rückblickend die Änderung mit dem größten Hebel im ganzen Jahr — nicht wegen der Ordner, sondern wegen der Trennung zwischen dem, was ein Befehl tut, und dem, wie er aufgerufen wird. Ohne sie wäre der Umstieg auf Slash-Commands im Folgejahr ein Neuschreiben geworden.

Die Datenbank. Zwei beschädigte JSON-Dateien innerhalb von zehn Tagen haben eine Diskussion beendet, die ich mit mir selbst zu lange geführt hatte. Was ich dabei gelernt habe, war weniger SQL als ein Begriff: Eine Transaktion ist entweder ganz passiert oder gar nicht. Genau das hatte mir vorher gefehlt.

Der Betrieb. systemd, Neustart bei Absturz, ein Lebenszeichen, ein Skript, das nachfragt. Nach drei Tagen Ausfall war klar, dass „läuft" und „ich weiß, dass es läuft" zwei verschiedene Zustände sind.

Was menschlich passiert ist

Der Discord-Server ist im Frühjahr von sechs auf achtzig Leute gewachsen, und ich war darauf nicht vorbereitet. Nicht technisch — technisch war es lösbar. Sondern in der Rolle: Auf einmal war ich derjenige, bei dem sich Leute über andere Leute beschweren.

Ich habe in diesen Monaten drei Sachen gelernt, die ich vorher nicht auf dem Zettel hatte:

  • Regeln müssen aufgeschrieben sein, sonst wirkt jede Entscheidung willkürlich.
  • Moderation ist eine Aufgabe, keine Nebenbeschäftigung des Serverbesitzers.
  • Werkzeuge lösen keine sozialen Probleme. Ein Bot kann protokollieren, wer was gelöscht hat. Ob es richtig war, kann er nicht beantworten.

Das steht in keinem Changelog, war aber der prägendere Teil des Jahres.

Was ich mir vorgenommen und nicht geschafft habe

Aus dem letzten Rückblick standen vier Punkte auf der Liste. Bilanz:

  • Bot auseinandernehmen — erledigt, im März.
  • JSON loswerden — erledigt, im Mai.
  • Weg vom Heimrechner — erledigt, im Januar.
  • Aufschreiben, was ich tue — nicht erledigt. Ich habe weiterhin nichts dokumentiert, außer ein paar Notizen in einer Textdatei, die niemand außer mir versteht.

Drei von vier. Der vierte Punkt taucht in den folgenden Jahren noch mehrfach auf, immer mit demselben Ergebnis. Dass ich das ernsthaft angegangen bin, hat noch ein paar Jahre gedauert.

Was ich mir für 2021 vornehme

Das Dashboard bauen. Die Skizze liegt, die Fragen sind durchdacht, jetzt muss Code her. Ich vermute, dass es länger dauert, als ich denke.

Slash-Commands ernst nehmen. Discord hat sie angekündigt, und sie lösen ein Problem, für das ich zwei Jahre lang Notlösungen gebaut habe. Ich will früh dabei sein, statt hinterherzulaufen.

Nicht mehr alles selbst schreiben. Ich habe dieses Jahr Dinge gebaut, für die es fertige, bessere Lösungen gab — eine halbgare Zeitplanung zum Beispiel, obwohl es dafür etablierte Bibliotheken gibt. Der Grund war jedes Mal derselbe: Es fühlte sich schneller an, selbst anzufangen, als eine fremde Lösung zu verstehen. Das stimmt für die ersten zwei Stunden und danach nie wieder.

Die drei Zahlen, die mir etwas bedeutet haben

Rückblicke neigen zu Aufzählungen. Deshalb hier drei Werte, die tatsächlich eine Aussage tragen.

Ein Ausfall von drei Tagen. Das ist die Kennzahl des Jahres, und sie beschreibt nicht die Technik, sondern die Aufmerksamkeit. Der Absturz selbst hätte nach zwei Minuten behoben sein können.

Von 5 auf 45 Befehle. Was daran interessant ist: Von diesen 45 wurden am Jahresende ungefähr zehn regelmäßig benutzt. Das habe ich damals nicht gewusst, weil ich nichts gemessen habe — die Erkenntnis kam erst Jahre später und hat dann eine ganze Aufräumaktion ausgelöst.

Achtzig Leute im Discord. Die Zahl, die alles andere verändert hat. Nicht wegen der Last — technisch waren achtzig Leute kein Problem —, sondern weil ab dieser Größe soziale Struktur nötig wird.

Was ich beim Schreiben dieses Rückblicks gemerkt habe

Beim Durchgehen des Jahres ist mir aufgefallen, wie viele Entscheidungen ich nicht als Entscheidungen wahrgenommen habe.

Die Wahl der Datenbank: übernommen, weil sie im Tutorial stand. Die Ordnerstruktur: vom Ausgangsprojekt geerbt. Die Art, Einstellungen zu speichern: entstanden, nicht entworfen. Die Frage, welche Rechte der Bot braucht: nie gestellt.

Jede dieser Sachen hat mich später Zeit gekostet, und in keinem Fall lag das an einer falschen Entscheidung. Es lag daran, dass ich die Gründe nicht kannte — und deshalb später nicht beurteilen konnte, ob sie noch gelten.

Das ist der Grund, warum ich seitdem versuche, Entscheidungen zu benennen, auch die kleinen. Nicht in Form eines Dokuments, sondern als ein Satz: „Ich nehme X, weil Y." Wenn dieser Satz nicht zustande kommt, habe ich keine Entscheidung getroffen, sondern etwas übernommen. Beides ist in Ordnung — man sollte nur wissen, welches von beidem gerade passiert.

Ein Satz zum Schluss

Wenn ich 2020 auf einen Satz bringen müsste: Es war das Jahr, in dem aus einem Bastelprojekt etwas wurde, das anderen gehört.

Nicht rechtlich. Aber wenn achtzig Leute etwas benutzen, gehört es einem nicht mehr allein. Man kann es nicht mehr einfach abschalten, weil man Lust auf etwas Neues hat. Man kann nicht mehr mittags einen Neustart machen, weil es gerade praktisch ist. Man ist nicht mehr Bastler, sondern jemand, auf den sich Leute verlassen.

Das ist anstrengend und es ist genau der Grund, warum ich es weitermache.