principio-kiss-keep-it-simple

Principio KISS: Keep It Simple, Stupid

  • 3 min

El principio KISS propone elegir la solución más simple que cumpla los requisitos. En el mundo del desarrollo a veces tenemos el ego un poco subido: nos encanta escribir código que parezca «inteligente», usar las características más oscuras del lenguaje y montar arquitecturas que ríete tú de la NASA.

Pero la realidad es que el código complejo es el enemigo.

KISS es el acrónimo de «Keep It Simple, Stupid» (mantenlo simple, estúpido). Aunque existen versiones más amables como «Keep It Simple and Short», el mensaje asociado al término es claro: la complejidad innecesaria aumenta la probabilidad de fallo.

Qué significa realmente «simple»

Conviene distinguir entre Simple y Fácil.

  • Fácil es lo que tengo cerca, lo que sé hacer rápido (como copiar y pegar código).
  • Simple es aquello que tiene pocas piezas, resulta fácil de entender y se puede mantener sin sorpresas.

A veces, hacer algo simple requiere mucho trabajo y diseño previo. Como decía Blaise Pascal: “He hecho esta carta más larga porque no he tenido tiempo de hacerla más corta”.

El error del «código inteligente»

Uno de los mayores enemigos de KISS es intentar ser demasiado listos. Veamos un ejemplo. Queremos comprobar si un número es par.

El enfoque «hacker de película» (no KISS)

// ❌ Complejidad innecesaria
public bool EsPar(int numero)
{
    // Uso de operaciones a nivel de bit porque "es más rápido" (en 1980)
    // y queda muy pro.
    return (numero & 1) == 0;
}
Copied!

¿Funciona? Sí. ¿Es eficiente? Sí. ¿Es legible para un junior que acaba de entrar? Probablemente tenga que pararse a pensarlo.

El enfoque KISS

// ✅ Simple y directo
public bool EsPar(int numero)
{
    return numero % 2 == 0;
}
Copied!

El operador módulo expresa directamente la intención. No obliga a pensar en la representación binaria del número para entender la comprobación.

Sobreingeniería: matar moscas a cañonazos

Donde más violamos KISS es en la arquitectura.

Imagina que te piden: “Lee un archivo de texto y muestra su contenido en la consola”.

El arquitecto sobrecualificado:

“Necesitamos una IFileReaderFactory que devuelva un IReaderStrategy. Crearemos una implementación para ficheros locales y prepararemos otra para AWS S3 (por si acaso). Usaremos un Decorator para el manejo de excepciones y un Observer para notificar cuando la lectura termine.”

El desarrollador KISS:

string contenido = File.ReadAllText("archivo.txt");
Console.WriteLine(contenido);
Copied!

Si el día de mañana necesitamos leer de AWS S3, ya lo cambiaremos. Pero hoy, montar toda esa estructura es ruido, es código que hay que testear y mantener para una funcionalidad que no existe.

KISS no significa “chapuza” Hacer código simple no es excusa para escribir código sucio o sin estructura.

KISS significa usar la solución más simple que funcione y sea mantenible, no la primera que se te ocurra.

El mejor código es el que no hay que explicar. Cuando escribas una función o diseñes una clase, pregúntate:

  • ¿Podrá entender esto mi compañero dentro de seis meses?
  • ¿Podré entenderlo yo dentro de seis meses?
  • ¿Realmente necesito todas estas capas de abstracción?

La simplicidad es la máxima sofisticación.