Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Ein überprüfbares Post-mortem schreiben

Nach dieser Lektion: Ich kann aufschreiben, was geschah, warum und was sich ändert.

Lektion, 60 Min.9 BefehleLab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Ein überprüfbares Post-mortem schreiben

Ein Post-mortem ist ein kurzer schriftlicher Bericht über einen Vorfall: eine Zeitleiste, eine Ursache und eine Liste von Maßnahmen. Es zählt, weil eines, das niemand prüfen kann, nur ein Gefühl festhält.

Der Kostenvorfall der Bibliothek ist vorbei. Das Team schreibt ihn auf, und ein kleines Skript vergleicht den Entwurf mit dem Protokoll, bevor jemand unterschreibt.

Am Ende dieser Lektion

Notiz

Ich kann aufschreiben, was geschah, warum und was sich ändert.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Post-mortemein schriftlicher Bericht über einen Vorfall und seine Folgen
Zeitleistedie Ereignisse eines Vorfalls in zeitlicher Reihenfolge
Ursachewarum es geschah, in Worten, die das Protokoll bestätigt
Maßnahmeeine Änderung mit verantwortlicher Person und Frist
Prüfungein Weg zu sehen, dass eine Maßnahme gewirkt hathöchstens 2 Versuche

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Zeitleiste nutzt die Zeiten des Protokolls

Eine Zeitleiste listet in Reihenfolge, was geschah und wann. Kopieren Sie jede Zeit aus einer Aufzeichnung. Schreiben Sie sie nicht aus dem Gedächtnis.

Eine gute Zeitleiste enthält auch die langsamen Teile: wann die Ursache begann, wann es jemand bemerkte und wann es endete. Die Lücken zwischen diesen Zeiten sind die Lehren.

Beispiel: die Ereignisse der Bibliothek

ZeitEreignis
10:55Ein längeres Faktenblatt geht online
12:02Der stündliche Kostenalarm schlägt an
12:20Die Ursache wird in der Spur gefunden
12:35Die Versuche werden begrenzt
13:00Die Kosten liegen wieder unter der Grenze

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Ursache, die das Protokoll bestätigen kann

Schreiben Sie die Ursache als Satz, den das Protokoll beweisen oder widerlegen kann. Er sagt, was geschah, bei welchen Anfragen und warum.

„Jede Gebührenfrage wurde fünfmal versucht, weil die Prüfung auf 40 Wörter nicht bestehen konnte“ lässt sich prüfen. „Das System war überlastet“ nicht: Keine Aufzeichnung bestätigt es.

Eine Maßnahme hat Verantwortliche und Prüfung

Eine Maßnahme ist eine Änderung, die die Ursache behebt oder die Lücken verkürzt. Jede hat eine verantwortliche Person, eine Frist und eine Prüfung: eine Zahl, die das Protokoll zeigt, wenn die Maßnahme gewirkt hat.

„Sorgfältiger sein“ hat nichts davon. „Höchstens 2 Versuche je Anfrage, binnen 2 Tagen im Protokoll sichtbar“ hat alle drei.

Ein häufiger Fehler

Warnung

Viele glauben, ein Post-mortem müsse sagen, wer schuld ist. Es soll sagen, was im System den Fehler erlaubte. Setzen Sie einen Namen nur als Verantwortliche neben eine Maßnahme und sonst nirgends.

Entwurf und Protokoll schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' 'const EREIGNISSE = [' '  { zeit: \"10:55\", code: \"blatt_veroeffentlicht\" },' '  { zeit: \"12:02\", code: \"alarm_ausgeloest\" },' '  { zeit: \"12:20\", code: \"ursache_gefunden\" },' '  { zeit: \"12:35\", code: \"versuche_begrenzt\" },' '  { zeit: \"13:00\", code: \"kosten_normal\" },' '];' 'const ENTWURF = {' '  zeitleiste: [' '    { zeit: \"10:55\", code: \"blatt_veroeffentlicht\" },' '    { zeit: \"12:02\", code: \"alarm_ausgeloest\" },' '    { zeit: \"12:10\", code: \"ursache_gefunden\" },' '    { zeit: \"13:00\", code: \"kosten_normal\" },' '  ],' > pm.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Entwurf und Protokoll schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '  ursache: \"Jede Gebührenfrage wurde fünfmal versucht, weil die Prüfung auf 40 Wörter nicht bestehen konnte\",' '  massnahmen: [' '    { was: \"Versuche auf 2 begrenzen\", verantwortlich: \"Jonas\", pruefung: \"Das Protokoll zeigt höchstens 2 Versuche je Anfrage\", tage: 2 },' '    { was: \"Beim Blatt sorgfältiger sein\", verantwortlich: \"Jonas\", pruefung: \"\", tage: 5 },' '    { was: \"Alle 10 Minuten alarmieren\", verantwortlich: \"\", pruefung: \"Ein Alarm kommt binnen 10 Minuten nach einem Anstieg\", tage: 60 },' '  ],' '};' 'fs.writeFileSync(\"ereignisse.json\", JSON.stringify(EREIGNISSE, null, 1));' 'fs.writeFileSync(\"postmortem.json\", JSON.stringify(ENTWURF, null, 1));' >> pm.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Entwurfsdateien anlegen

Befehl
docker exec -w /home/node/project agent node pm.js

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Prüfer schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' 'const MAX_TAGE = 30;' 'function hatZiffer(text) { return /[0-9]/.test(text); }' 'function ausfuehren() {' '  const ereignisse = JSON.parse(fs.readFileSync(\"ereignisse.json\", \"utf8\"));' '  const pm = JSON.parse(fs.readFileSync(\"postmortem.json\", \"utf8\"));' '  const zeitleiste = [];' '  const massnahmen = [];' '  let letzte = \"\";' '  pm.zeitleiste.forEach(function (eintrag, i) {' '    const gefunden = ereignisse.find(function (e) { return e.code === eintrag.code; });' '    if (gefunden === undefined) zeitleiste.push(i + \":unbekanntes_ereignis\");' '    else if ((gefunden.zeit === eintrag.zeit) === false) zeitleiste.push(i + \":falsche_zeit\");' '    if (eintrag.zeit < letzte) zeitleiste.push(i + \":falsche_reihenfolge\");' '    letzte = eintrag.zeit;' '  });' > pruefe-pm.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Prüfer schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '  ereignisse.forEach(function (e) {' '    if (pm.zeitleiste.some(function (z) { return z.code === e.code; }) === false) zeitleiste.push(\"fehlt:\" + e.code);' '  });' >> pruefe-pm.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Prüfer schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '  pm.massnahmen.forEach(function (m, i) {' '    if (m.verantwortlich.trim() === \"\") massnahmen.push(i + \":ohne_verantwortliche\");' '    if (m.pruefung.trim() === \"\") massnahmen.push(i + \":ohne_pruefung\");' '    else if (hatZiffer(m.pruefung) === false) massnahmen.push(i + \":ohne_zahl\");' '    if (m.tage > MAX_TAGE) massnahmen.push(i + \":zu_spaet\");' '  });' '  console.log(\"Zeitleiste:\", zeitleiste.join(\" \"));' '  console.log(\"Maßnahmen:\", massnahmen.join(\" \"));' '  const summe = zeitleiste.length + massnahmen.length;' '  console.log(\"Probleme:\", summe);' '  console.log(summe === 0 ? \"Das Post-mortem ist bereit.\" : \"Das Post-mortem ist nicht bereit.\");' '}' 'module.exports = { ausfuehren };' 'if (require.main === module) ausfuehren();' >> pruefe-pm.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Entwurf prüfen

Befehl
docker exec -w /home/node/project agent node pruefe-pm.js

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Was der Prüfer ausgibt

ZeileWas sie sagt
Zeitleiste2:falsche_zeit fehlt:versuche_begrenzt
Maßnahmen1:ohne_pruefung 2:ohne_verantwortliche 2:zu_spaet
Probleme5
Letzte ZeileDas Post-mortem ist nicht bereit.

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Korrektur schreiben

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' 'const pm = JSON.parse(fs.readFileSync(\"postmortem.json\", \"utf8\"));' 'pm.zeitleiste[2].zeit = \"12:20\"; // das Protokoll sagt 12:20' 'pm.zeitleiste.splice(3, 0, { zeit: \"12:35\", code: \"versuche_begrenzt\" });' 'pm.massnahmen[1].was = \"Jedes Blatt vor der Veröffentlichung gegen die 40-Wörter-Prüfung testen\";' 'pm.massnahmen[1].pruefung = \"Jeder Fall der Auswertung besteht die 40-Wörter-Prüfung, bevor ein Blatt erscheint\";' 'pm.massnahmen[2].verantwortlich = \"Sabine\";' 'pm.massnahmen[2].tage = 14;' 'fs.writeFileSync(\"postmortem.json\", JSON.stringify(pm, null, 1));' 'require(\"./pruefe-pm\").ausfuehren();' > behebe-pm.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Entwurf beheben und neu prüfen

Befehl
docker exec -w /home/node/project agent node behebe-pm.js

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Über dieses Lab und seinen Quellcode: Lab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.