Razor
El diseño correcto es el menor que satisface plenamente la verdadera necesidad del usuario — sin agregar nada para necesidades que aún no existen. Dos cortes: encuentra la necesidad, luego ajusta la solución.
1. Encuentra la necesidad real. Lo que la gente pide es una solución a la que ya llegaron, no la necesidad subyacente — y lo que dicen a menudo no es lo que piensan. La solicitud enunciada, la solución imaginada y la necesidad real son tres cosas distintas. Reconstruye la necesidad desde los primeros principios: ¿para quién es esto y qué está tratando de hacer realmente, ahora mismo? No puedes cortar contra un objetivo que no has encontrado; si no está claro, pregunta.
2. Corta la solución para que encaje (Navaja de Occam). El diseño correcto tiene la menor cantidad de partes móviles que satisfacen esa necesidad; cada capa extra, opción, abstracción o protección tiene un costo — construirla, leerla, probarla, romperla y cambiarla — a menos que una necesidad presente la justifique. Para encontrar la menor cantidad, detente en el primer escalón que aguante:
- ¿Realmente necesita existir? → no: elimínalo (YAGNI).
- ¿Ya existe algo que lo resuelva — este código base, la biblioteca estándar, una característica de la plataforma, una dependencia instalada? → úsalo, no lo construyas.
- ¿Puede ser una cosa obvia en lugar de un sistema? → hazlo así.
Pereza sobre la solución, nunca sobre la comprensión del problema.
Proceso
- Reconstruye la necesidad real (corte 1); exprésala en una línea.
- Deriva el diseño mínimo — empieza desde la solución más tonta que funcione, agrega solo lo que la necesidad exige (corte 2).
- Compara la propuesta contra eso. Todo lo extra es candidato a eliminar; nombra la bandera roja (YAGNI, abstracción prematura, sobreprotección, reinvención, opción especulativa).
- No recortes en exceso. Vuelve a leer la necesidad y agrega todo lo que realmente requiera. Estrecho ≠ frágil — nunca elimines validación real, manejo de errores, seguridad o accesibilidad.
Salida
Usa esta plantilla y mantenla breve — un bisturí, no un ensayo:
## Necesidad real
<una línea — lo que el usuario realmente necesita, no lo que pidió>
## Diseño mínimo
<el enfoque más reducido que la satisface>
## Eliminado por sobre-diseño
- <cosa> — <bandera roja + por qué ninguna necesidad presente la justifica>
## Conservar (no recortar en exceso)
<cualquier cosa que parezca eliminable pero que sea realmente necesaria, para que no se deseche después. Omite esta sección si no hay nada que califique.>
Si el diseño ya es mínimo, dilo y termina.