NEVIM Coder
Ein Programmier-Assistent, der in einem abgeschotteten Arbeitsbereich läuft: ohne Internet, nur mit den Dateien, die ich ihm gebe, und mit einem Ergebnis, das ich erst prüfe.
Die Idee
Ein Assistent, der Text schreibt, ist eine Sache. Einer, der ein laufendes Programm abliefert, eine andere — denn Programme kann man starten, und was man starten kann, kann auch Schaden anrichten.
Der Coder ist deshalb von vornherein um eine Frage herum gebaut: Was darf er nicht?
Der abgeschottete Arbeitsbereich
Er arbeitet in einem eigenen, abgetrennten Bereich, der bei jedem Auftrag neu aufgesetzt wird. Was dort passiert, bleibt dort.
- Kein Internet. Er kann nichts nachladen und nichts hinausschicken.
- Nur die Dateien, die ich ihm gebe. Im Gespräch hake ich an, was er sehen soll. Genau die liegen dann bei ihm — und zwar schreibgeschützt, er kann die Vorlagen nicht kaputtmachen.
- Kein Zugriff auf meine Daten. Keine Mails, keine Kontakte, keine Projekte. Der Coder ist ein Werkzeugkasten, kein Mitarbeiter mit Schlüsselbund.
- Eine feste Ausstattung. Die Sammlung an Hilfsprogrammen, die er benutzen darf, ist eingefroren und schreibgeschützt. Er kann sie nicht erweitern.
- Ein Lauf pro Gespräch. Kein Assistent, der im Hintergrund weiterwerkelt.
Am Ende kommt nichts direkt in meine Dateien. Der Coder gibt seine Arbeit als Vorschlag zurück, den ich ansehe, bevor irgendetwas übernommen wird.
Wofür ich ihn benutze
Nicht für große Programme. Für die vielen kleinen Dinge, die man sonst von Hand macht oder eben bleiben lässt:
- Eine Tabelle auswerten und ein Diagramm daraus machen.
- Aus einer unübersichtlichen Datei eine lesbare Übersicht bauen.
- Etwas ausprobieren, um zu sehen, ob eine Idee überhaupt trägt.
Das Tetris oben war so ein Ausprobieren. Es zeigt gut, was der Weg leistet: eine Beschreibung in Alltagssprache hinein, ein laufendes Ding heraus — und weil das Ergebnis eine Webseite ist, kann man sie sofort anschauen, statt sie erst irgendwo einrichten zu müssen.
Projekte statt Einzelaufträge
Anfangs war jeder Auftrag für sich: fragen, Ergebnis bekommen, fertig. Das reicht für ein Wegwerf-Skript, aber nicht, wenn man an einer Sache über mehrere Abende arbeitet.
Deshalb gibt es jetzt Coder-Projekte. Ein Projekt bekommt einen Namen und bleibt bestehen. Die Dateien liegen darin, und man kann immer wieder daran weiterarbeiten — der Coder fängt nicht jedes Mal bei null an.
Zu jedem Projekt gehören vier Ansichten:
- Dateien — was gerade darin liegt.
- Journal — was in diesem Projekt bisher passiert ist, in Worten.
- Läufe — jeder einzelne Arbeitsdurchgang mit seinem Ergebnis.
- Änderungen — was sich seit dem letzten Stand verändert hat.
Die letzte Ansicht ist mir die wichtigste. Ein Assistent, der Dateien anfasst, muss zeigen können, was er angefasst hat. Sonst vertraut man ihm entweder blind oder gar nicht — und beides ist schlecht.
Was noch aussteht
- Die Abschottung ist gebaut, aber noch nicht in allen Ecken durchgetestet. Solange das so ist, bekommt er nichts Wichtiges zu sehen.
- Der Coder arbeitet gut an überschaubaren Sachen. Bei größeren Vorhaben über viele Dateien hinweg verliert er den Überblick — da ist die Grenze noch nicht ausgelotet.