KISS , la simplicidad como la mejor arma

“Keep It Simple, Stupid”

El no caer en la complejidad puede llegar a ser algo difícil cuando un proyecto/sistema se vuelve grande y las variables que antes parecían estar bajo nuestro control pueden llegar a perderse entre una multitud de demás aspectos técnicos.

KISS (que traducido al español: “Manténlo Simple, Estúpido”), es una metodología la cuál mantiene la simplicidad como principal función durante todo el ciclo en el desarrollo y diseño de productos,sistemas o procesos, emplea que esta simplicidad conduce a una mayor eficiencia y efectividad en la resolución de problemas y en la comunicación de las partes que lo conforman.


Desde el cine hasta el desarrollo de software

La primera vez que escuche este termino fue al escuchar cómo un animador de nombre Richard Williams, mencionaba como animadores juniors sentían la tentación de agregar demasiados movimientos y detalles innecesarios a sus personajes, lo que puede distraer de lo que se intenta comunicar.

Williams incitaba la importancia de la simplicidad en la animación para lograr una mayor claridad y efectividad en la comunicación de ideas y emociones. Esto no solo hace que la animación sea más fácil de entender para el espectador, sino que también puede hacer que el proceso sea más eficiente y manejable para ellos.

Meses más tarde esta práctica fue mencionada en una de mis clases de arquitectura de software, estábamos analizando buenas prácticas de desarrollo de software, pude notar que otras metodologías se desarrollan de esta simple idea y además me pareció asombroso el como mantener una funcionalidad de alta abstracción pero comprensible nos ayuda como desarrolladores no solo en el momento inicial del proyecto, sino también a largo plazo para mantener una buena calidad. Aquí hay algunas formas en las que se puede aplicar el principio KISS en el desarrollo de software:

  1. Diseño simple y claro: Al diseñar la arquitectura de un sistema de software, es importante mantenerla lo más simple y clara posible. Esto implica evitar la sobrecarga de funcionalidades innecesarias o componentes complejos que puedan dificultar la comprensión y mantenimiento del sistema.

  2. Código limpio y conciso: Es fundamental escribir código limpio y conciso que sea fácil de entender y mantener. Esto implica seguir buenas prácticas de programación, como la modularidad, la cohesión y el principio DRY (Don’t Repeat Yourself), para evitar la duplicación de código y mantener una base de código limpia y fácil de mantener.

  3. Elegir herramientas y tecnologías adecuadas: Al seleccionar herramientas y tecnologías es importante elegir aquellas que sean simples y adecuadas para el problema específico que se está abordando. Evitar la sobrecarga de tecnologías innecesarias puede ayudar a mantener el desarrollo simple y eficiente.

  4. Pruebas y refactorización: Es importante realizar pruebas de forma regular para garantizar la calidad del software y refactorizar el código cuando sea necesario para mantenerlo simple y limpio. La refactorización implica reestructurar el código sin cambiar su comportamiento externo para mejorar su calidad y mantenibilidad a lo largo del tiempo.

  5. Comunicación efectiva: Mantener una comunicación efectiva entre los miembros del equipo de desarrollo es fundamental para asegurar que todos estén alineados en cuanto a los objetivos del proyecto y las decisiones de diseño. Esto puede ayudar a evitar malentendidos y garantizar que el desarrollo se mantenga en línea con el principio KISS.


Transformarlo simple lo antes posible

El hacer un flujo de trabajo más sencillo nos ayuda a realizar actividades de una forma más rápida sin que nos llegue a abrumar, de ejemplo este blog, ya está diseñado para que al momento en el que quiera publicar algo nuevo, solo tengo que poner un nuevo documento Markdown con el contenido del post en una carpeta con los demás que ya tengo, hacer push a mi repositorio y listo.

Esto me permite en que solo tengo que pensar en el contenido a escribir dejando a un lado el todo lo técnico con lo que trabaje en un principio.

Otro ejemplo sería mi lista de tareas diarias, utilizo Obsidian y el clásico pero infalible papel-lápiz (próximamente post sobre la rivalidad entre lo analógico y lo digital), utilizar listas simples y priorizar las actividades según su importancia y urgencia. Al limitar la cantidad de tareas que abordamos cada día genera una sensación de bienestar que nos ayuda a enfocarnos en lo esencial, podemos evitar la sobrecarga de trabajo y mantenernos enfocados en nuestras metas principales. Además, al adoptar un estilo de vida minimalista, reducimos la complejidad y el desorden en nuestras vidas, lo que nos permite concentrarnos en lo que realmente importa y encontrar un mayor sentido de claridad y satisfacción.


Para terminar, la simplicidad y la calidad no están para nada peleadas una con la otra. De hecho, a menudo van de la mano, complementándose y fortaleciéndose mutuamente en nuestros esfuerzos por alcanzar resultados excepcionales. Al abrazar esta filosofía nos permite concentrarnos en lo esencial.

En lugar de complicar innecesariamente las cosas con procesos engorrosos o características superfluas, la simplicidad nos invita a destilar nuestras ideas y acciones hasta su núcleo más fundamental.

Eliminar el ruido y las distracciones pueden generar una mayor claridad mental para tomar decisiones más informadas y precisas para llegar a la satisfacción en todo lo que hacemos, ya sea en el ámbito profesional, personal o creativo.