Konzept: Auffälligkeit ist keine Kausalität
In einer defekten Schnittstellenstrecke findet man fast immer mehrere Auffälligkeiten. Eine fehlende Zeitzone, ein Platzhalterwert aus einer Projektvorlage, ein Feld, das seit Jahren zweckentfremdet wird. Die Versuchung ist, den auffälligsten Fund zur Erklärung zu erklären — und in der überwiegenden Zahl der Fälle ist der auffälligste Fund nicht der wirksame.
Die Ersetzungsprobe ist das Verfahren, das beide trennt. Ihre Grundfrage ist eine gedankliche Änderung:
Ersetze genau einen Befund durch seine korrekte Variante. Ändert sich das Symptom?
Die Probe beantwortet damit nicht die Frage „was hilft?”, sondern die Frage „welcher Befund ist kausal?” — und erst aus deren Antwort folgt, ob eine Änderung an der Ursache ansetzt oder nur an ihrer Wirkung.
Portalbezug
Der praktische Wert liegt im Ticketgespräch. Wenn die Gegenseite einen Befund nennt („in Ihrem Feld X fehlt Y”), ist die Ersetzungsprobe die kürzeste Art herauszufinden, ob man gerade über die Ursache spricht oder über einen echten, aber folgenlosen Nebenschauplatz. Sie kostet dreißig Sekunden und erspart Tage.
Vorbedingungen — was vor der ersten Zelle geklärt sein muss
Eine Ersetzungsprobe auf einem unscharfen Sachverhalt liefert unscharfe Ergebnisse. Drei Dinge müssen vorher stehen:
| Vorbedingung | Warum |
|---|---|
| Das Symptom ist vollständig zerlegt | Ein Symptom ist selten ein Ding. „Der Termin steht falsch” kann heißen: falsches Datum, falsche Uhrzeit, falsche Reihenfolge in der Liste, falsche Frist. Wer nur einen Teil prüft, erklärt einen wirksamen Befund für wirkungslos. |
| Der Normalfall ist spezifiziert, nicht nur der Fehlerfall | Ohne zu wissen, was das System bei korrekter Eingabe täte, lässt sich nicht sagen, was die Ersetzung ändert. |
| Jede gemeldete Beobachtung ist aus dem Mechanismus herleitbar | Beobachtungen, die sich nicht herleiten lassen, sind entweder falsch berichtet oder es fehlt eine Randbedingung. Beides muss vor der Probe geklärt werden, nicht in ihr. |
Der Bezugspunkt: die Kausalkette
Bevor die erste Zelle gerechnet werden kann, muss die Kausalkette als nummerierte Glieder dastehen — von der Quelle bis zum Symptom, jedes Glied ein Verarbeitungsschritt oder ein Element. Nicht im Kopf, sondern hingeschrieben.
Das ist keine Vorarbeit für die Probe, sondern ihr Instrument. „Vorwärts rechnen” heißt: ab diesem Glied die Kette neu durchgehen. Ohne Kette gibt es kein „ab hier”, und dann bleibt nur Intuition — bei einem noch nicht eingeübten Werkzeug also Raten.
1 Quellsystem liefert Wert X (dort korrekt)
2 Adapter bildet X auf Element Y ab ← kritische Stelle
3 Übertragung
4 Empfänger liest Y und leitet Z daraus ab
5 Z erzeugt das gemeldete Symptom → S1
Das Verfahren, pro Kandidat
Schritt 0 — Welche Stelle ändert dieser Kandidat? Als Element oder Kettenglied benennen, mit Nummer — nicht als Absicht. Nicht „er repariert die Zuordnung”, sondern „er ändert Glied 2”.
Schritt 1 — Kommt diese Stelle in der Kette vor? Nein → fertig: alle Zellen unverändert, Klasse steht, kein Weiterrechnen. Ja → weiter. Dieser Schritt erledigt in der Praxis die Hälfte aller Kandidaten in Sekunden und verhindert den häufigsten Fehler überhaupt.
Schritt 2 — Kette ab der geänderten Stelle neu rechnen, vorwärts. Die neuen Glieder hinschreiben.
Schritt 3 — Jede Beobachtung an der neuen Kette ablesen. Genau drei mögliche Werte:
| Wert | Bedeutung |
|---|---|
| kippt | die Beobachtung verschwindet oder dreht sich |
| unverändert | die neue Kette erzeugt sie weiterhin |
| kippt ins Negative | eine bisher unauffällige Beobachtung wird zum Defekt |
Schritt 4 — Ergebnisklasse vergeben, aus dem Muster der ganzen Zeile. Erst jetzt, und genau eine pro Kandidat. Die Zellen sagen, was sich ändert; die Klasse sagt, was der Kandidat ist.
Schritt 5 — Reparaturverdikt über den Irrelevanz-Test. Siehe unten. Erst danach, und nur bei wirksamen Kandidaten, die Frage nach Bestand und Zufluss.
Zwei Regeln zum Ablesen
Eine Beobachtung, die sich nicht ändert, ist ein Ergebnis — kein fehlendes Ergebnis. „Unverändert” ist eine vollständige Antwort und braucht keine Rechtfertigung.
Beobachtungen sind Messpunkte, keine Prüfsteine. Man liest an ihnen ab, was die Änderung bewirkt. Man bewertet sie nicht danach, ob sie „für die Reparatur wichtig” sind — das ist eine andere Frage und steht nicht in der Matrix.
Vorbereitend, vor dem ersten Kandidaten
Beobachtungen auflisten. Jede als prüfbare Einzelaussage, durchnummeriert (S1, S2, …). Eine Beobachtung, die zwei Dinge behauptet, wird geteilt.
Kandidaten auflisten. Jeder Kandidat ist genau eine Änderung; alles andere bleibt unverändert. Zwei Änderungen in einem Kandidaten machen das Ergebnis uninterpretierbar.
Die drei Rechenregeln
| Regel | Fehler, den sie verhindert |
|---|---|
| Vorwärts, nie rückwärts | Ein Befund kann kausal sein und den bereits erzeugten Zustand trotzdem nicht rückgängig machen. Wer rückwärts denkt, hält jede wirksame Änderung für eine vollständige Reparatur. |
| Jede Zelle wird gerechnet, nicht abgeleitet | „Wie bei Kandidat davor” ist keine Rechnung. Zwei Kandidaten können auf eine Beobachtung gleich und auf die nächste entgegengesetzt wirken. |
| Genau eine Änderung pro Kandidat | Sonst ist nicht zuzuordnen, welcher Teil gewirkt hat. |
Die Ergebnisklassen
| Klasse | Definition | Erkennungsmerkmal |
|---|---|---|
| wirksam | Das Symptom verschwindet | mindestens eine Beobachtung kippt |
| auffällig, aber unwirksam | Der Befund ist echt, wird gelesen, ändert aber nichts | Ersetzung ändert keine Beobachtung, der Wert wird aber verarbeitet |
| wirkungslos, weil ungelesen | Der Befund ist echt und wird von der Gegenstelle gar nicht ausgewertet | ein Vertrag sagt ausdrücklich „wird nicht ausgewertet”, oder das Element wird nie gelesen |
| wirkungslos und zusätzlich schädlich | Ändert nichts am Befund und bricht etwas anderes | eine bisher unauffällige Beobachtung kippt ins Negative |
| wirkungslos, und trotzdem erforderlich | Heilt nichts, ist aber notwendige Vorbedingung der tragfähigen Reparatur | für sich folgenlos; ohne sie ruht die richtige Lösung auf einer nicht zugesicherten Eigenschaft |
| keine Reparatur, sondern Umwandlung eines stillen Fehlers in einen lauten | Der Defekt bleibt, wird aber sichtbar | Beobachtungen unverändert, Fehlerquote steigt |
| wirkungslos als Reparatur, wirksam als Nachweis | Reiner Wächter | keine Beobachtung ändert sich, aber der Defekt wird belegbar |
Der Katalog ist nicht abgeschlossen. Wenn ein Kandidat in keine Klasse passt, ist das ein Befund und keine Panne — dann wird die Klasse benannt und ergänzt.
Der Irrelevanz-Test
Für das Reparaturverdikt genügt es nicht zu sagen, was eine Änderung nicht schafft. Zu sagen ist, ob sie an der Ursache ansetzt. Der Test dafür:
Ist die auslösende Eigenschaft nach der Änderung gleichgültig?
Nicht: fällt es noch auf? Nicht: ist es jetzt besser? Sondern: Kann die Eigenschaft, die den Defekt ausgelöst hat, sich künftig beliebig ändern, ohne dass es das System berührt?
| Ergebnis | Verdikt |
|---|---|
| Ja — die Eigenschaft ist danach beliebig | Die Änderung setzt an der Ursache an |
| Nein — sie ist weiterhin bestimmend, nur gerade günstig | Ein Zufall wurde wiederhergestellt, keine Regel |
Der zweite Fall ist der häufigste und der gefährlichste, weil er sich anfühlt wie eine Lösung: Das Symptom ist weg, der Defekt wartet auf die nächste Datenlage.
Bestand und Zufluss trennen
Jede Zelle ist zweimal zu rechnen:
- Zufluss — was passiert mit allem, was ab jetzt ankommt?
- Bestand — was passiert mit dem, was bereits falsch gespeichert wurde?
Die meisten Reparaturen wirken ausschließlich auf den Zufluss. Ob der Bestand mitgeheilt wird, hängt daran, ob die Information noch irgendwo existiert:
| Lage | Folge |
|---|---|
| Die Quelle hat die Daten noch | Nacherfassung durch Neuversand möglich; Umfang zählbar, nicht schätzbar |
| Die Daten wurden abgelehnt und liegen in einer Fehler-Queue | nachfahrbar — ein harter Fehler kostet Zeit, kein Datum |
| Die Information wurde unterwegs vernichtet | aus dem Zielsystem heraus nicht reparabel |
Beispiel (synthetisch)
Ein Zielsystem zeigt für einen Patienten zwei Datensätze statt einem. Zwei Befunde liegen vor: ein Identifierfeld ohne Namensraumangabe, und eine Auswahlregel im Empfänger, die den ersten von zwei gleichrangigen Identifiern nimmt.
| Kandidat | S1 zwei Datensätze | S2 Dokument nicht auffindbar | Klasse | Irrelevanz-Test |
|---|---|---|---|---|
| Namensraum ergänzen | unverändert | unverändert | wirkungslos, weil ungelesen (der Vertrag wertet das Feld nicht aus) | nicht bestanden |
| Sortierung der Quelle zurückdrehen | keine neuen Dubletten, die vorhandene bleibt | behoben | wirksam | nicht bestanden — die Zuordnung hängt weiter an einer Reihenfolge, die niemand zugesichert hat |
| Auswahl über das Paar aus Namensraum und Wert | keine neuen Dubletten, die vorhandene bleibt | behoben | wirksam | bestanden — die Reihenfolge in der Quelle ist danach gleichgültig |
Zwei Kandidaten wirken identisch auf beide Beobachtungen und sind trotzdem verschieden viel wert. Genau diesen Unterschied macht der Irrelevanz-Test sichtbar, und die Zellen allein machen ihn nicht.
Und: Die vorhandene Dublette überlebt alle drei Änderungen. Sie ist nur über ein Zusammenführungsverfahren zu beseitigen — die Vorwärts-Regel in Reinform.
Häufige Fehler
| Fehler | Woran man ihn erkennt | Gegenmittel |
|---|---|---|
| Klasse an die Zelle geklebt | „S1 wirksam, S2 unwirksam” als Ergebnis | Die Klasse gehört zum Kandidaten. Zellen tragen Wirkungen, nicht Klassen. |
| Zelle abgeleitet statt gerechnet | „wie beim Kandidaten davor” | Jede Zelle vom geänderten Zustand aus neu durchrechnen |
| Falsches Element betrachtet | Der Kandidat ändert A, gerechnet wird mit B | Vor jeder Zeile: Welches Element ändert dieser Kandidat — und kommt es in der Kausalkette überhaupt vor? |
| Reparaturverdikt fehlt | Beschrieben wird, was die Änderung nicht schafft | Irrelevanz-Test ausführen und hinschreiben |
| Rückwärts gerechnet | „damit wäre der Fall nie entstanden” | Die Probe rechnet vorwärts: Was passiert ab jetzt? |
| Eine Beobachtung gar nicht benutzt | eine Zeile der Matrix bleibt leer oder pauschal | Jede gemeldete Beobachtung mindestens einmal, und gegen den Wortlaut geprüft |
| Zwei Änderungen in einem Kandidaten | „wir stellen X um und ergänzen gleich Y” | Aufteilen |
Prüffragen vor dem Absenden
- Habe ich jede gemeldete Beobachtung mindestens einmal benutzt — und stimmt meine Lesart mit ihrem Wortlaut überein?
- Hat jeder Kandidat genau eine Ergebnisklasse, und steht sie als eigene Aussage da?
- Habe ich für jeden Kandidaten den Irrelevanz-Test ausgeführt und das Ergebnis hingeschrieben?
- Ändert einer meiner Kandidaten ein Element, das in der Kausalkette gar nicht vorkommt?
- Habe ich Bestand und Zufluss getrennt — und gesagt, wie der Bestand zu heilen wäre?
- Steht in meiner Matrix eine Zelle, die ich aus einer anderen abgeleitet statt gerechnet habe?
Lektüre & Belege
- Die sechs Fehlerkategorien — die Einordnung, für die die Probe den kausalen Befund liefert
- Diagnoseleitfaden — das Vorgehen davor: Symptom präzisieren, Beweislage klären, Schicht bestimmen
- Das Kahn-Framework — die Messseite: woran sich der Defekt im Bestand zeigt
- Ticket-Playbook — die Probe im Zusammenhang der übrigen fünf Analyseschritte, mit zwei durchgerechneten Kandidaten
- Sandbox — Mechanismen ausführbar nachvollziehen, statt ihr Verhalten zu vermuten