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:

VorbedingungWarum
Das Symptom ist vollständig zerlegtEin 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 FehlerfallOhne 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 herleitbarBeobachtungen, 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:

WertBedeutung
kipptdie Beobachtung verschwindet oder dreht sich
unverändertdie neue Kette erzeugt sie weiterhin
kippt ins Negativeeine 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

RegelFehler, den sie verhindert
Vorwärts, nie rückwärtsEin 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 KandidatSonst ist nicht zuzuordnen, welcher Teil gewirkt hat.

Die Ergebnisklassen

KlasseDefinitionErkennungsmerkmal
wirksamDas Symptom verschwindetmindestens eine Beobachtung kippt
auffällig, aber unwirksamDer Befund ist echt, wird gelesen, ändert aber nichtsErsetzung ändert keine Beobachtung, der Wert wird aber verarbeitet
wirkungslos, weil ungelesenDer Befund ist echt und wird von der Gegenstelle gar nicht ausgewertetein 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 andereseine bisher unauffällige Beobachtung kippt ins Negative
wirkungslos, und trotzdem erforderlichHeilt nichts, ist aber notwendige Vorbedingung der tragfähigen Reparaturfür sich folgenlos; ohne sie ruht die richtige Lösung auf einer nicht zugesicherten Eigenschaft
keine Reparatur, sondern Umwandlung eines stillen Fehlers in einen lautenDer Defekt bleibt, wird aber sichtbarBeobachtungen unverändert, Fehlerquote steigt
wirkungslos als Reparatur, wirksam als NachweisReiner Wächterkeine 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?

ErgebnisVerdikt
Ja — die Eigenschaft ist danach beliebigDie Änderung setzt an der Ursache an
Nein — sie ist weiterhin bestimmend, nur gerade günstigEin 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:

LageFolge
Die Quelle hat die Daten nochNacherfassung durch Neuversand möglich; Umfang zählbar, nicht schätzbar
Die Daten wurden abgelehnt und liegen in einer Fehler-Queuenachfahrbar — ein harter Fehler kostet Zeit, kein Datum
Die Information wurde unterwegs vernichtetaus 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.

KandidatS1 zwei DatensätzeS2 Dokument nicht auffindbarKlasseIrrelevanz-Test
Namensraum ergänzenunverändertunverändertwirkungslos, weil ungelesen (der Vertrag wertet das Feld nicht aus)nicht bestanden
Sortierung der Quelle zurückdrehenkeine neuen Dubletten, die vorhandene bleibtbehobenwirksamnicht bestanden — die Zuordnung hängt weiter an einer Reihenfolge, die niemand zugesichert hat
Auswahl über das Paar aus Namensraum und Wertkeine neuen Dubletten, die vorhandene bleibtbehobenwirksambestanden — 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

FehlerWoran man ihn erkenntGegenmittel
Klasse an die Zelle geklebt„S1 wirksam, S2 unwirksam” als ErgebnisDie 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 betrachtetDer Kandidat ändert A, gerechnet wird mit BVor jeder Zeile: Welches Element ändert dieser Kandidat — und kommt es in der Kausalkette überhaupt vor?
Reparaturverdikt fehltBeschrieben wird, was die Änderung nicht schafftIrrelevanz-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 benutzteine Zeile der Matrix bleibt leer oder pauschalJede 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

  1. Habe ich jede gemeldete Beobachtung mindestens einmal benutzt — und stimmt meine Lesart mit ihrem Wortlaut überein?
  2. Hat jeder Kandidat genau eine Ergebnisklasse, und steht sie als eigene Aussage da?
  3. Habe ich für jeden Kandidaten den Irrelevanz-Test ausgeführt und das Ergebnis hingeschrieben?
  4. Ändert einer meiner Kandidaten ein Element, das in der Kausalkette gar nicht vorkommt?
  5. Habe ich Bestand und Zufluss getrennt — und gesagt, wie der Bestand zu heilen wäre?
  6. 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