Técnica KISS

From Scrum Manager BoK

La técnica KISS (Keep It Simple, Stupid en inglés y Hazlo simple, imbécil en español) es un principio de diseño que sugiere que los sistemas funcionan mejor si son simples. Es decir, es mejor diseñar sistemas de una manera que sea fácil de entender y mantener, en lugar de crear sistemas complejos.

Origen

El término KISS (Keep It Simple, Stupid) fue acuñado por el ingeniero Kelly Johnson en la década de 1960. Johnson era el ingeniero jefe del equipo de diseño "Skunk Works" en Lockheed Martin, y creía que los sistemas deben diseñarse de tal forma que puedan ser reparados por un mecánico ordinario bajo condiciones de combate con herramientas básicas.

El término se ha aplicado en muchas disciplinas diferentes: el diseño de software, la animación, el marketing, la fotografía... En diseño de software, por ejemplo, se utiliza como un recordatorio para evitar la sobreingeniería y mantener las soluciones de software simples, claras y concisas.

Objetivo

El objetivo de esta técnica es simplificar. Es importante tener en cuenta que "simple" no tiene por qué ser sinónimo de "primitivo". Una solución simple puede ser sofisticada y completa en términos de funcionalidad, pero debe ser diseñada de tal manera que su funcionamiento sea fácil de entender.

KISS en la gestión ágil

Podría decirse que algunas metodologías ágiles predican con KISS. Por ejemplo, algunas formas de aplicación de esta técnica en la gestión ágil pueden ser:

  • Definir los objetivos claramente: esto ayuda a evitar confusiones y malentendidos que pueden llevar a trabajar en tareas incorrectas o innecesarias.
  • Simplificar la comunicación: evitar el uso excesivo de jerga y terminología técnica innecesaria, y asegurarse de que todos los miembros del equipo entienden lo que se está comunicando.
  • Priorizar el trabajo: el trabajo se prioriza en función del valor que aporta al proyecto. Esto ayuda a mantener el enfoque en las tareas que son realmente importantes.
  • Evitar la sobreingeniería: a veces, la solución más sencilla es la mejor. Evitar la tentación de agregar características y funcionalidades innecesarias que no aportan valor al proyecto puede ser muy útil.
  • Iterar y adaptarse: trabajar en iteraciones cortas y estar dispuesto a adaptarse a medida que se obtiene más información. Esto permite que el proyecto sea más flexible y capaz de responder a los cambios de manera efectiva.
  • Mantener un backlog sencillo o KISS Backlog View: mantén una lista sencilla de tareas pendientes.
  • Centrarse en la entrega de valor: en lugar de centrarse en las características y funcionalidades, lo importante es entregar valor al cliente. Esto puede implicar trabajar en estrecha colaboración con el cliente para entender sus necesidades y ajustar el proyecto en consecuencia.

KISS consiste en evitar complicaciones innecesarias. Si una práctica o proceso está haciendo las cosas más difíciles sin aportar un valor significativo, hay que simplificarlo o eliminarlo.

Ventajas de usar KISS

Aplicar esta técnica en la gestión ágil de proyectos tiene ventajas muy conocidas:

  • Eficiencia. Al evitar complicaciones innecesarias, el equipo puede centrarse en lo que realmente importa: entregar valor al cliente.
  • Menor probabilidad de errores. Al mantener las cosas simples, se reduce la probabilidad de errores y fallos.
  • Mejor comunicación. Los conceptos y procesos simples son más fáciles de comunicar y entender. Esto puede mejorar la comunicación dentro del equipo y con los stakeholders.
  • Flexibilidad. Los procesos y soluciones simples suelen ser más flexibles y fáciles de cambiar.
  • Menor costo. Las soluciones complicadas suelen ser más costosas de implementar y mantener.
  • Mejor gestión del riesgo. Las soluciones y procesos complicados pueden ocultar riesgos y hacer que sean más difíciles de gestionar.

KISS en los contratos ágiles

Elaborar contratos ágiles de acuerdo al principio KISS implica simplificar el lenguaje, centrarse en los resultados en lugar de los detalles de implementación, basar el pago en la entrega de valor, incluir cláusulas que permitan la adaptabilidad, y fomentar la transparencia y la comunicación.

Lenguaje simple y claro

Los contratos deben ser escritos en un lenguaje simple y claro que sea fácil de entender para todas las partes involucradas. Deben evitar jerga legal innecesaria.

Objetivos y resultados

Los contratos ágiles deben centrarse en los resultados deseados, no en la descripción detallada de los mismos. Esto proporciona flexibilidad para que los equipos puedan adaptarse y cambiar su enfoque a medida que aprenden más sobre el proyecto y su contexto.

Pago por valor entregado

En lugar de pagar por tiempo o por cumplimiento de hitos específicos, los contratos ágiles pueden basar el pago en la entrega de valor. Esto podría implicar el uso de un modelo de pago basado en la entrega de características o resultados que han sido aceptados por el cliente.

Incluir cláusulas de adaptabilidad

Los contratos ágiles deben reconocer que los cambios son una parte natural y esperada. Esto podría implicar la inclusión de cláusulas que permitan la renegociación de ciertos aspectos del contrato a medida que se obtiene más información sobre el proyecto.

Transparencia y comunicación

Los contratos ágiles deben fomentar la transparencia y la comunicación entre todas las partes. Por ejemplo, se pueden crear acuerdos sobre reuniones regulares de revisión y planificación, o sobre las formas de comunicar los cambios y actualizaciones.

Véase también