Diagrama de espina de pescado

Acerca de los diagramas de espina de pescado

Un diagrama de espina de pescado (también llamado diagrama de Ishikawa o diagrama de causa y efecto) mapea las causas potenciales de un problema sobre una espina horizontal que termina en el "efecto" — el enunciado del problema. Cada rama principal representa una categoría de causas; las sub-ramas llevan detalles contribuyentes. Kaoru Ishikawa introdujo la técnica en 1968 como herramienta de control de calidad para la manufactura; desde entonces se ha extendido a la atención médica, la ingeniería de software y las operaciones empresariales como método estructurado de lluvia de ideas para el análisis de causa raíz. Los equipos lo utilizan en retrospectivas, fases de mejora DMAIC y análisis post-mortem de incidentes para evitar la fijación prematura en la hipótesis más ruidosa.

Schematex sigue las convenciones de causa y efecto de Ishikawa (1968) con las 6M estándar de manufactura (Man, Machine, Material, Method, Measurement, Mother Nature/Environment) y sus variantes de servicio (People, Process, Place, Policy, Procedures, Patron). Dos estilos de autoría — estructurado y compacto — pueden combinarse en un mismo documento. Referencias externas: 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·0.8 ms·7.8 KB SVG

1. Tu primera espina de pescado

La espina de pescado más pequeña y útil: tres categorías, una causa cada una, una con sub-causa.

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.4 ms·4.2 KB SVG

Cuatro reglas cubren el 80% del uso:

  1. Comienza con fishbone, opcionalmente seguido de un título entre comillas.
  2. Declara cada rama con category id "Etiqueta" — el id es una clave interna corta, "Etiqueta" es lo que aparece impreso en el diagrama.
  3. Agrega causas con id : "texto de causa" en sus propias líneas.
  4. Sangra una línea al menos 2 espacios y comienza con - para crear una sub-causa (rama de segundo orden) bajo la causa precedente.

Los comentarios pueden comenzar con #, //, o estilo Mermaid %% en su propia línea.


2. Componentes básicos

La espina y el efecto

effect "Enunciado del problema" coloca el texto en la cabeza del pez. Si se omite effect, el analizador usa el título del diagrama como respaldo.

fishbone "Título"
effect "Enunciado específico del problema"

La cabeza se sitúa a la derecha por defecto (config direction = right). Usa config direction = left para invertirla.

Categorías (huesos principales)

category id "Etiqueta" declara una rama. El id se usa internamente para asignar causas; la "Etiqueta" entre comillas aparece en el diagrama.

Las categorías también aceptan propiedades opcionales en […]:

PropiedadValoresEfecto
color: "#hex"cadena de color hexColor de rama y etiqueta
side: top / side: bottomtop, bottomFuerza esta rama al riel superior o inferior (por defecto: alternando)
order: NenteroPosición dentro de su riel — los números menores se sitúan más cerca de la cola
category rework "Rework" [color: "#E53935", side: top, order: 1]

Causas (huesos menores)

Se aceptan dos estilos que pueden mezclarse en un mismo diagrama:

Estilo A — estructurado. Declara las categorías primero, luego asigna causas con id : "texto":

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

Estilo B — compacto. Etiqueta de categoría y causas en una sola línea, separadas por ; o ,:

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

En el estilo compacto, el id se deriva automáticamente del texto de la etiqueta (en minúsculas, espacios → guiones). Las comillas son opcionales para el texto de causa.

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·0.4 ms·5.0 KB SVG

Estilo C — taquigrafía de mindmap Mermaid. Una línea desnuda de nivel superior se convierte en categoría, y los elementos - con sangría se convierten en causas hermanas de Nivel 1 bajo esa categoría:

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. Sub-causas (ramas de segundo orden)

Sangra una línea - al menos 2 espacios después de una causa de Nivel 1 para adjuntarle una sub-causa. El guión - es parte de la sintaxis; el texto lo sigue.

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"

Las sub-causas aparecen como ramitas más cortas y estrechas que se bifurcan de su costilla padre.

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.4 ms·4.0 KB SVG

4. Opciones de configuración

Las líneas config clave = valor pueden aparecer en cualquier lugar después del encabezado. Las claves y valores desconocidos se ignoran silenciosamente.

Clave de configValoresPor defectoEfecto
directionright / left (también ltr / rtl)rightEn qué lado aparece la cabeza del efecto
sidesboth, top, bottombothQué mitad de la espina aloja las ramas
densitycompact, normal, spaciousnormalEspaciado entre costillas — afecta cuántas ramas caben antes de solaparse
slope (o ribslope)gentle, normal, steep, o un número (0–3)normal (0.6)Ángulo de la costilla — diagonal suave vs. pronunciada
causeside (o cause-side)head, tail, bothheadDe qué lado de una costilla se bifurcan las sub-causas
widthentero pxautoAncho del lienzo (override)
heightentero pxautoAlto del lienzo (override)
config direction = left
config density = compact
config slope = gentle
config sides = top

5. Etiquetas y comentarios

  • Título del diagrama: fishbone "Website Traffic Drop" — primera línea, opcional.
  • Etiqueta del efecto: effect "30% organic traffic decline" — el problema en la cabeza del pez.
  • Etiqueta de categoría: category id "Nombre legible" — impreso en la rama.
  • Texto de causa: entre comillas "así" o sin comillas (se permiten espacios en estilo compacto).
  • Texto de sub-causa: después del - inicial, con o sin comillas.
  • Comentarios: #, //, o %% al inicio de una línea (después de espacios en blanco opcionales iniciales). Los mismos marcadores también inician comentarios al final de línea fuera de cadenas entre comillas dobles.

6. Palabras reservadas y escape

Reservadas al inicio de línea: fishbone (encabezado), effect, category, config.

El prefijo - en una línea con sangría está reservado como marcador de sub-causa. Para incluir un guión literal al inicio del texto de causa, entrecomíllalo: code : "- old deprecated path".

Cadenas con espacios en el texto de causa de estilo estructurado deben ir entre comillas dobles: code : "N+1 query". En estilo compacto (category Label: ...) el texto corre hasta el separador ; o , y las comillas son opcionales.

Los marcadores de comentario (#, //, %%) inician un comentario a menos que estén dentro de una cadena entre comillas dobles.

Secuencia reservadaContextoAlternativa
# al inicio de líneaMarcador de comentarioEntrecomilla el texto si # es parte del contenido
- al inicio después de sangría ≥2 espaciosMarcador de sub-causaEntrecomilla: - "- text with dash"
category, effect, config, fishbonePalabras clave al inicio de líneaNo pueden usarse como IDs de categoría

7. Errores comunes

Lo que escribisteEl analizador diceCorrección
cause1 : "text" sin category cause1 previoFishboneParseError: Unknown category "cause1"Declara category cause1 "Label" antes de asignar causas
- "sub-cause" al inicio del archivo (sin causa de Nivel 1 previa)FishboneParseError: Sub-cause … has no preceding Level-1 causeColoca la línea de sub-causa inmediatamente después de una línea id : "causa"
- "sub-cause" con solo 1 espacio de sangríaSe trata como línea de causa, no sub-causaSangría con al menos 2 espacios
category Code: cause one, cause twoAnalizado como estilo compacto — , y ; son ambos separadoresComportamiento esperado; ambos separadores funcionan
config direction = centerValor desconocido — ignorado silenciosamente, permanece en rightUsa right o left
config slope = 45Fuera de rango (debe ser 0–3); ignorado silenciosamenteUsa un preset (gentle, normal, steep) o un valor como 0.5
fishbone: "Title"Analizado correctamente — los dos puntos después de la palabra clave son opcionalesTanto fishbone "Title" como fishbone: "Title" funcionan
Categoría desnuda estilo mindmap MermaidAnalizada como categoría implícitaContent seguido de líneas - item con sangría funciona sin category

8. Gramática (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* '"'

Fuente autoritativa: src/diagrams/fishbone/parser.ts. Si esto diverge del analizador, el analizador tiene precedencia — por favor abre un issue.


9. Conformidad con estándares

Los diagramas de espina de pescado de Schematex siguen las convenciones de causa y efecto de Ishikawa (1968): una espina horizontal con una cabeza etiquetada (el efecto) y costillas diagonales para las principales categorías causales, cada una llevando huesos menores (causas individuales). La jerarquía de dos niveles (categoría → causa → sub-causa) coincide con la profundidad de análisis tradicional de "5 Por qué" utilizada en Six Sigma DMAIC y los flujos de trabajo de acción correctiva de ISO 9001.

Lo que está implementado hoy:

  • ✅ Estilo estructurado: category id "Label" + id : "cause"
  • ✅ Estilo compacto: category Label: cause; cause; cause
  • ✅ Sub-causas (Nivel 2) mediante prefijo - con sangría
  • ✅ Color y lado de override por categoría
  • ✅ Config direction, density, slope, sides, causeside
  • width / height explícitos opcionales
  • ⏳ Sub-sub-causas de Nivel 3+ (el analizador almacena hijos pero el renderizador limita en profundidad 2)
  • ⏳ Sugerencia automática de conjuntos de categorías estándar (6M, 8P, 5P)
  • ⏳ Renderizado de order por categoría (analizado pero aún no aplicado por el motor de diseño)

Referencias:


10. Ejemplos relacionados

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. Hoja de ruta

Planificado — aún no parseable. No uses esto en DSL generado hoy; el analizador lo rechazará o ignorará.

  • Sub-sub-causas de Nivel 3 — un tercer nivel de sangría; la estructura AST lo admite pero el renderizador actualmente se detiene en el Nivel 2.
  • Override causeside por categoría — establecer cause-side en categorías individuales en lugar de globalmente.
  • Sugerencia automática de categorías estándar — taquigrafía template: 6M / template: 8P que pre-puebla los nombres de categorías estándar de manufactura o servicio.
  • Bloque de leyenda — palabra clave legend para declarar una clave de codificación de colores renderizada junto al diagrama.
  • Bloque metadata: — metadatos estructurados de clave-valor (facilitador, fecha, revisión) mostrados en una anotación de esquina.

Síguelo en los issues de GitHub si necesitas alguna de estas características antes.

Found this useful?

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