Fishbone-Diagramm

Über Fishbone-Diagramme

Ein Fishbone-Diagramm (auch Ishikawa- oder Ursache-Wirkungs-Diagramm genannt) ordnet die potenziellen Ursachen eines Problems auf einer horizontalen Wirbelsäule an, die bei der „Wirkung" — der Problembeschreibung — endet. Jeder Hauptast repräsentiert eine Ursachenkategorie; Unteräste enthalten beitragende Details. Kaoru Ishikawa führte die Methode 1968 als Qualitätskontrollwerkzeug für die Fertigung ein; seitdem hat sie sich in Gesundheitswesen, Softwareentwicklung und Geschäftsbetrieb als strukturierte Brainstorming-Methode zur Ursachenanalyse verbreitet. Teams setzen sie in Retrospektiven, DMAIC-Verbesserungsphasen und Incident-Post-Mortems ein, um eine voreilige Fixierung auf die lauteste Hypothese zu verhindern.

Schematex folgt den Ursachen-Wirkungs-Konventionen von Ishikawa (1968) mit den standardmäßigen 6M-Fertigungskategorien (Man, Machine, Material, Method, Measurement, Mother Nature/Environment) und deren Dienstvarianten (People, Process, Place, Policy, Procedures, Patron). Zwei Authoring-Stile — strukturiert und kompakt — können in einem Dokument gemischt werden. Externe Referenzen: Ishikawa, K. — Guide to Quality Control (1968) · ASQ Cause-and-Effect Diagram · ISO 9001:2015 §10.2 — Corrective Action.

fishbone·§ Ishikawa 1968
↘ preview
100%
Solder Joint Defect Rate — Root Cause Analysis — Fishbone diagram Ishikawa cause-and-effect diagram. Effect: 3.2% solder joint failure rate. 6 categories. Solder Joint Defect Rate — Root Cause Analysis 3.2% solder joint failure rate Man Operator training gap Shift handover not documented Material Solder paste past shelf life PCB pad oxidation Measurement AOI false-accept rate rising Machine Reflow oven temp drift Squeegee blade worn Method Stencil aperture undersized Pick-and-place speed too high Environment Humidity spike in Q3 ESD grounding gaps
UTF-8 · LF · 19 lines · 634 chars✓ parsed·4.4 ms·7.8 KB SVG

1. Ihr erstes Fishbone-Diagramm

Das kleinste nützliche Fishbone-Diagramm: drei Kategorien, je eine Ursache, eine davon mit einer Unterursache.

fishbone·§ Ishikawa 1968
↘ preview
100%
API latency spike — Fishbone diagram Ishikawa cause-and-effect diagram. Effect: P99 > 2 s after deploy. 3 categories. API latency spike P99 > 2 s after deploy Code N+1 query in new endpoint Data Index missing on accounts table Infra DB connection pool exhausted
UTF-8 · LF · 9 lines · 273 chars✓ parsed·0.8 ms·4.2 KB SVG

Vier Regeln decken 80 % der Anwendungsfälle ab:

  1. Beginnen Sie mit fishbone, gefolgt von einem optionalen Titel in Anführungszeichen.
  2. Deklarieren Sie jeden Ast mit category id "Label" — die id ist ein kurzer interner Schlüssel, "Label" ist das, was im Diagramm gedruckt wird.
  3. Fügen Sie Ursachen mit id : "Ursachentext" in eigenen Zeilen hinzu.
  4. Rücken Sie eine Zeile um mindestens 2 Leerzeichen ein und beginnen Sie sie mit -, um eine Unterursache (Ast zweiter Ordnung) unter der vorherigen Ursache zu erstellen.

Kommentare können mit #, // oder im Mermaid-Stil %% auf einer eigenen Zeile beginnen.


2. Bausteine

Die Wirbelsäule und die Wirkung

effect "Problembeschreibung" platziert Text im Fischkopf. Wenn effect weggelassen wird, greift der Parser auf den Diagrammtitel zurück.

fishbone "Titel"
effect "Spezifische Problembeschreibung"

Der Kopf sitzt standardmäßig rechts (config direction = right). Verwenden Sie config direction = left, um ihn umzukehren.

Kategorien (Hauptgräten)

category id "Label" deklariert einen Ast. Die id wird intern verwendet, um Ursachen zuzuweisen; das in Anführungszeichen gesetzte "Label" erscheint im Diagramm.

Kategorien akzeptieren auch optionale Eigenschaften in […]:

EigenschaftWerteWirkung
color: "#hex"Hex-FarbstringAst- und Beschriftungsfarbe
side: top / side: bottomtop, bottomErzwingt diesen Ast auf die obere oder untere Schiene (Standard: abwechselnd)
order: NGanzzahlPosition innerhalb seiner Schiene — kleinere Zahlen sitzen näher am Schwanz
category rework "Rework" [color: "#E53935", side: top, order: 1]

Ursachen (Nebengräten)

Zwei Stile werden akzeptiert und können in einem Diagramm gemischt werden:

Stil A — strukturiert. Deklarieren Sie zuerst die Kategorien, dann weisen Sie Ursachen mit id : "Text" zu:

category code "Code"
category infra "Infra"
code : "N+1 query in endpoint"
code : "Missing cache layer"
infra : "Auto-scaling lag"

Stil B — kompakt. Kategoriebeschriftung und Ursachen in einer Zeile, getrennt durch ; oder ,:

category Code: N+1 query; Missing cache; Synchronous call
category Infra: Auto-scaling lag; CDN misconfigured

Im kompakten Stil wird die id automatisch aus dem Beschriftungstext abgeleitet (Kleinschreibung, Leerzeichen → Bindestriche). Anführungszeichen sind für Ursachentexte optional.

fishbone·§ Ishikawa 1968
↘ preview
100%
Conversion rate drop — Fishbone diagram Ishikawa cause-and-effect diagram. Effect: Checkout conversion -12% MoM. 3 categories. Conversion rate drop Checkout conversion -12% MoM UX Confusing multi-step form Slow page on mobile Pricing Price-anchoring missing No annual discount shown Coupon field too prominent Trust No payment security badge
UTF-8 · LF · 10 lines · 344 chars✓ parsed·5.1 ms·5.0 KB SVG

Stil C — Mermaid-Mindmap-Kurzform. Eine einfache Zeile der obersten Ebene wird zur Kategorie, und eingerückte --Elemente werden zu Level-1-Geschwisterursachen unter dieser Kategorie:

fishbone "Why is the site slow?"
effect "Page LCP > 4s"
Content
  - heavy hero image
  - too much above-the-fold text
Tech
  - JS bundle too large
  - render-blocking CSS

3. Unterursachen (Äste zweiter Ordnung)

Rücken Sie eine --Zeile um mindestens 2 Leerzeichen nach einer Level-1-Ursache ein, um eine Unterursache daran anzuhängen. Der --Strich ist Teil der Syntax; der Text folgt ihm.

method : "Stencil aperture undersized"
  - "Tolerance spec from 2018 board revision"
  - "No re-validation after material change"
method : "Pick-and-place speed too high"
  - "Speed limit lifted during overtime run"

Unterursachen erscheinen als kürzere, schmalere Zweige, die von ihrer übergeordneten Gräte abzweigen.

fishbone·§ Ishikawa 1968
↘ preview
100%
Medication error increase — Fishbone diagram Ishikawa cause-and-effect diagram. Effect: Errors up 18% in Q3. 2 categories. Medication error increase Errors up 18% in Q3 Process CPOE alert fatigue 5-Rights verification skipped People Float staff unfamiliar with unit Handoff communication gaps
UTF-8 · LF · 12 lines · 420 chars✓ parsed·0.7 ms·4.0 KB SVG

4. Konfigurationsoptionen

config Schlüssel = Wert-Zeilen können überall nach dem Header erscheinen. Unbekannte Schlüssel und Werte werden stillschweigend ignoriert.

KonfigurationsschlüsselWerteStandardWirkung
directionright / left (auch ltr / rtl)rightAuf welcher Seite der Wirkungskopf erscheint
sidesboth, top, bottombothWelche Hälfte der Wirbelsäule Äste aufnimmt
densitycompact, normal, spaciousnormalAbstand zwischen Gräten — beeinflusst, wie viele Äste passen, bevor Überlappung entsteht
slope (oder ribslope)gentle, normal, steep, oder eine Zahl (0–3)normal (0.6)Grätenwinkel — flache vs. steile Diagonale
causeside (oder cause-side)head, tail, bothheadAuf welcher Seite einer Gräte Unterursachen abzweigen
widthGanzzahl pxautoLeinwandbreite überschreiben
heightGanzzahl pxautoLeinwandhöhe überschreiben
config direction = left
config density = compact
config slope = gentle
config sides = top

5. Beschriftungen & Kommentare

  • Diagrammtitel: fishbone "Website Traffic Drop" — erste Zeile, optional.
  • Wirkungsbeschriftung: effect "30% organic traffic decline" — das Problem im Fischkopf.
  • Kategoriebeschriftung: category id "Menschenlesbarer Name" — wird auf dem Ast gedruckt.
  • Ursachentext: in Anführungszeichen "so" oder ohne (Leerzeichen im kompakten Stil erlaubt).
  • Unterursachentext: nach dem führenden -, in Anführungszeichen oder ohne.
  • Kommentare: #, // oder %% am Anfang einer Zeile (nach optionalem führendem Leerzeichen). Dieselben Marker beginnen auch abschließende Kommentare außerhalb doppelt angeführter Zeichenketten.

6. Reservierte Wörter & Escaping

Am Zeilenanfang reserviert: fishbone (Header), effect, category, config.

Das --Präfix auf einer eingerückten Zeile ist als Unterursachen-Marker reserviert. Um einen wörtlichen Bindestrich am Anfang von Ursachentext einzufügen, schreiben Sie ihn in Anführungszeichen: code : "- old deprecated path".

Zeichenketten mit Leerzeichen im strukturierten Ursachentext sollten doppelt angeführt sein: code : "N+1 query". Im kompakten Stil (category Label: ...) läuft der Text bis zum ;- oder ,-Trennzeichen, und Anführungszeichen sind optional.

Kommentarmarker (#, //, %%) beginnen einen Kommentar, sofern sie sich nicht innerhalb einer doppelt angeführten Zeichenkette befinden.

Reservierte SequenzKontextAlternative
# am ZeilenanfangKommentarmarkerText in Anführungszeichen, wenn # Teil des Inhalts ist
- am Anfang nach ≥2 Leerzeichen EinrückungUnterursachen-MarkerIn Anführungszeichen: - "- Text mit Strich"
category, effect, config, fishboneSchlüsselwörter am ZeilenanfangKönnen nicht als Kategorie-IDs verwendet werden

7. Häufige Fehler

Sie schriebenParser meldetBehebung
cause1 : "text" ohne vorherige category cause1FishboneParseError: Unknown category "cause1"Deklarieren Sie category cause1 "Label" vor der Ursachenzuweisung
- "sub-cause" am Anfang der Datei (keine vorherige Level-1-Ursache)FishboneParseError: Sub-cause … has no preceding Level-1 causePlatzieren Sie die Unterursachenzeile direkt nach einer id : "cause"-Zeile
- "sub-cause" mit nur 1 Leerzeichen EinrückungWird als Ursachenzeile behandelt, nicht als UnterursacheMindestens 2 Leerzeichen Einrückung
category Code: cause one, cause twoAls kompakter Stil geparst — , und ; sind beide TrennzeichenBeabsichtigtes Verhalten; beide Trennzeichen funktionieren
config direction = centerUnbekannter Wert — stillschweigend ignoriert, bleibt rightright oder left verwenden
config slope = 45Außerhalb des Bereichs (muss 0–3 sein); stillschweigend ignoriertEinen Preset verwenden (gentle, normal, steep) oder einen Wert wie 0.5
fishbone: "Title"Korrekt geparst — Doppelpunkt nach Schlüsselwort ist optionalSowohl fishbone "Title" als auch fishbone: "Title" funktionieren
Mermaid-Mindmap-Stil einfache KategorieAls implizite Kategorie geparstContent gefolgt von eingerückten - item-Zeilen funktioniert ohne category

8. Grammatik (EBNF)

document       = header (blank | comment | effect | category | config | cause | sub-cause | implicit-category)*

header         = "fishbone" ":"? ( WS quoted-string )? NEWLINE
effect         = "effect" ":"? WS quoted-string NEWLINE
config         = "config" WS config-key WS "=" WS config-value NEWLINE
config-key     = "direction" | "width" | "height" | "sides"
               | "slope" | "ribslope" | "density" | "causeside" | "cause-side"
config-value   = bare-word | number | quoted-string

category       = "category" WS id WS label-or-compact ( "[" category-attrs "]" )? NEWLINE
implicit-category
               = bare-text NEWLINE                         # top-level, no ":"

label-or-compact
               = quoted-string                            # structured form: category id "Label"
               | id WS ":" WS compact-causes             # compact form: category Label: cause; cause

category-attrs = category-attr ("," category-attr)*
category-attr  = "color:" quoted-string
               | "side:" ( "top" | "bottom" )
               | "order:" integer

cause          = id WS ":" WS cause-text NEWLINE         # structured form
cause-text     = quoted-string | bare-text

sub-cause      = INDENT≥2 "-" WS cause-text NEWLINE

compact-causes = compact-cause ( (";" | ",") compact-cause )*
compact-cause  = quoted-string | bare-text

comment        = ( "#" | "//" | "%%" ) any NEWLINE
id             = [a-zA-Z] [a-zA-Z0-9_-]*
quoted-string  = '"' any-char-but-unescaped-quote* '"'

Maßgebliche Quelle: src/diagrams/fishbone/parser.ts. Falls dies vom Parser abweicht, hat der Parser Vorrang — bitte eröffnen Sie ein Issue.


9. Standardkonformität

Schematex-Fishbone-Diagramme folgen den Ursachen-Wirkungs-Konventionen von Ishikawa (1968): eine horizontale Wirbelsäule mit einem beschrifteten Kopf (die Wirkung) und diagonalen Gräten für wichtige Ursachenkategorien, die jeweils Nebengräten (einzelne Ursachen) tragen. Die zweistufige Hierarchie (Kategorie → Ursache → Unterursache) entspricht der traditionellen „5 Warum"-Drill-down-Tiefe, die in Six Sigma DMAIC- und ISO 9001-Korrekturmaßnahme-Workflows verwendet wird.

Was heute implementiert ist:

  • ✅ Strukturierter Stil: category id "Label" + id : "cause"
  • ✅ Kompakter Stil: category Label: cause; cause; cause
  • ✅ Unterursachen (Level 2) über eingerückte --Präfixe
  • ✅ Farb- und Seitenüberschreibung pro Kategorie
  • direction-, density-, slope-, sides-, causeside-Konfiguration
  • ✅ Optionale explizite width / height
  • ⏳ Level 3+ Unter-Unterursachen (Parser speichert Kinder, Renderer schneidet bei Tiefe 2 ab)
  • ⏳ Automatische Vorschläge für Standard-Kategoriesets (6M, 8P, 5P)
  • order-Rendering pro Kategorie (geparst, aber noch nicht von der Layout-Engine angewendet)

Referenzen:


10. Verwandte Beispiele

fishbone·§ Ishikawa 1968
Fishbone diagram — Website traffic drop — Fishbone diagram Ishikawa cause-and-effect diagram. Effect: Traffic decline. 6 categories. Fishbone diagram — Website traffic drop Traffic decline Content Publishing frequency down Content too generic Keyword gaps Low-quality AI content Backlinks High-quality backlinks lost High ratio of low-quality links Referring domain growth stalled Low anchor text diversity Competition New competitors entering AI tools replacing search Weakening brand recall Competitors publishing faster Technical Core Web Vitals failing Crawl coverage drop Crawler blocked by WAF Missing structured data UX Bounce rate rising Poor mobile experience Slow above-fold load Excessive popup ads Algorithm Core Update penalty Weak E-E-A-T signals AI Overviews / SGE cutoff Search intent drift
Website traffic drop root-cause analysis
Ishikawa fishbone for a website traffic drop — six causal categories covering content, technical SEO, backlinks, UX, competition, and algorithm changes.
business & operations

11. Roadmap

Geplant — noch nicht parsebar. Verwenden Sie diese Elemente heute nicht in generiertem DSL; der Parser wird sie ablehnen oder ignorieren.

  • Level-3-Unter-Unterursachen — eine dritte Einrückungsebene; die AST-Struktur unterstützt dies, aber der Renderer stoppt derzeit bei Level 2.
  • causeside-Überschreibung pro Kategoriecause-side für einzelne Kategorien statt global festlegen.
  • Automatische Standard-Kategorievorschlägetemplate: 6M / template: 8P-Kurzform, die die standardmäßigen Fertigungs- oder Dienst-Kategorienamen vorbelegt.
  • Legend-Blocklegend-Schlüsselwort zur Deklaration eines Farbcodierungsschlüssels, der neben dem Diagramm dargestellt wird.
  • metadata:-Block — strukturierte Schlüssel-Wert-Metadaten (Moderator, Datum, Revision), die in einer Eckenannotation angezeigt werden.

Verfolgen Sie die GitHub-Issues, wenn Sie eines davon früher benötigen.

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.