Matriz de estructura de diseño

Dependencias entre tareas o componentes.

Definición

La matriz de estructura de diseño cruza las tareas de un plan consigo mismas, en el orden en que están programadas, y marca en cada celda qué tarea necesita algo de otra. Las marcas por debajo de la diagonal se resuelven solas; las de encima piden algo que aún no existe y son retrocesos. Se usa para revisar planes de ingeniería o de producto antes de ejecutarlos.

Tres de los cuatro retrocesos del plan no se arreglan reordenando
Datos
y · x · value
Buena para
Contar los retrocesos de un plan y separar los lazos inevitables de las tareas mal colocadas.
Evítala cuando
Cuando necesitas fechas, duraciones o una ruta crítica: la matriz no las afirma.
Se lee bien
Entre 4 y 342 elementos; dibuja hasta 3100
Datos que faltan
Se niega a dibujar y dice qué valor falta.
Accesibilidad
Lector de pantalla: tabla de datos · respeta «reducir movimiento»

Forma de los datos

Qué columnas pide

ColumnaTipoPara qué
ystringLa TAREA que necesita el insumo: la FILA de la matriz. Su ORDEN DE APARICIÓN en esta columna es el orden del plan, y es el patrón contra el que se mide qué dependencia va hacia atrás; la pieza no lo reordena. Toda tarea tiene que aparecer aquí al menos una vez. `spec.columns.task` vale como sinónimo.
xstringLa tarea DE LA QUE se necesita el insumo: la COLUMNA. Vacía significa «esta tarea no necesita nada» y sirve para darle sitio en el plan a una tarea sin entradas. `spec.columns.needs` vale como sinónimo.
valuenumberLa FUERZA de la dependencia: un ENTERO ≥ 1 (la escala del método es 1 flojo · 2 medio · 3 fuerte). Tiñe la marca dentro de la rampa de su lado de la diagonal y se escribe dentro de la celda. En blanco sólo en una fila que declara una tarea sin entradas.

Tamaños

Ancha por necesidad

Esta pieza necesita anchura para que cada rótulo quepa entero. El motor prefiere decirlo a apretarla.

A menos de 480 px sus rótulos no caben sin pisarse o recortarse, y el motor no la publica así. En el móvil se ve la versión ancha, a tamaño legible y sin recortar, dentro de un marco que se desliza.

Cuándo usarla

Tres preguntas antes de elegirla

¿Puede haber ciclos entre tareas?

Si el plan no tiene lazos y lo que importa es la ruta crítica, una red PERT la calcula.

Sí: quédate con matriz de estructura de diseño

No: usa Red PERT

¿Basta con saber qué depende de qué, sin fechas?

Si el plan necesita duraciones y calendario, un diagrama de Gantt las pone en el tiempo.

Sí: quédate con matriz de estructura de diseño

No: usa Diagrama de Gantt

¿Las tareas tienen un orden de plan que juzgar?

Si solo se quieren ver conexiones entre elementos sin secuencia, una matriz de adyacencia basta.

Sí: quédate con matriz de estructura de diseño

No: usa Matriz de adyacencia

Código

La misma pieza, con tus datos

import { getPreset, renderComposition } from 'visx-render/node';

const spec = await getPreset('dsm');
spec.data.rows = misFilas; // y, x, value
const { svg, warnings } = await renderComposition(spec);

También en React con Chart y prepareComposition. Guía para desarrolladores →

Dudas

¿Qué significa una marca por encima de la diagonal?

Que una tarea pide algo que en el plan todavía no existe: un retroceso. La pieza distingue el que forma un lazo, que ningún orden deshace y hay que planificar como iteración, del que es solo una tarea mal colocada.

¿Propone un orden mejor?

No. Mantiene el orden de aparición en la tabla, porque reordenar borraría el hallazgo: lo que el orden dado tiene de malo.

¿Qué valores admite la fuerza de una dependencia?

Enteros de 1 en adelante: 1 flojo, 2 medio, 3 fuerte. Se escribe dentro de la celda.

¿Qué hace si faltan datos?

Se niega a dibujar y dice qué valor falta.

¿Cómo se ve en el móvil?

A menos de 480 px el motor no la compone sin pisar o cortar rótulos, y lo dice. En el móvil se ve la versión ancha, a tamaño legible, dentro de un marco que se desliza.

Relacionadas

Otras formas de responder «cómo funciona algo»

Guía para elegir: cómo funciona algo →