Un problema, cuatro soluciones

El estilo de desarrollo, las convenciones y la estandarización pueden evitar que invirtamos energía mental en problemas a los que ya pusimos una solución.

Uno de los retos que pueden surgir al estandarizar el diseño de software, es que nos habituemos demasiado a él, hasta el punto en el que dejemos de cuestionarnos si hay soluciones de diseño mejores.

Al final diseñar software consiste en plantear opciones sobre la estructura interna del software, y decidir aquella que, en base a una serie de criterios, nos ofrezca mejores beneficios y contraprestaciones más tolerables.

¿Y qué hacemos si nos hemos deshabituado de plantear alternativas? ¿Cómo podemos encontrar soluciones más creativas?

Un dibujo, pero en 4 estilos diferentes

Un día me encontré a mi hija y a sus primos pintando, y me impresionó la creatividad que estaban desplegando.

Cada uno había dibujado un personaje, lo habían dividido en 4 cuadrantes y cada cuadrante lo estaban pintando con un estilo totalmente distinto.

Dibujo dividido en cuatro cuadrantes, cada uno pintado con un estilo diferente

Con esa mezcla de estilos los dibujos eran preciosos, pero lo que realmente me impresionó fue que el estilo de cada cuadrante era totalmente diferente al resto.

Y pensé ¿puedo aprender algo de esta situación?

Un problema, pero con 4 soluciones diferentes

Durante los días previos había tenido varias conversaciones en torno a problemas de diseño en las que de forma orgánica habíamos planteado soluciones diversas.

Y cuando vi el dibujo pensé que esa técnica podría ayudarnos a desplegar nuestra creatividad cuando planteamos soluciones de software.

Estos serían los 5 pasos a seguir:

1. "Dibuja" el problema a resolver

Escribe en el centro del lienzo qué necesidad quieres resolver.

Puede ser en un papel, o en cualquier lienzo digital como Excalidraw, Figjam, etc.

Necesidad 'Sistema de recomendaciones' dibujado en el centro

2. Parte el lienzo en cuatro cuadrantes

Prepara el lienzo para describir las soluciones.

Necesidad en el centro y lienzo dividido en cuatro partes

3. "Pinta" cuatro soluciones

Describe la primera solución. Una vez que la tengas, pasa al siguiente, pensando una forma totalmente diferente de solucionar el problema central.

Necesidad en el centro y lienzo dividido en cuatro partes, cada una con una solución de diseño de software

4. Dales un nombre (Opcional)

De forma opcional, podemos poner un nombre a cada solución destacando aquello que nos inspira:

  • Scalable: solución que aguantaría millones de peticiones al día.
  • As a service: solución en la que decidimos pagar por un servicio.
  • Coupled: solución acoplada pero viable.
  • Simple: solución que elimina lo superfluo.
Necesidad en el centro y lienzo dividido en cuatro partes, cada una con un nombre y una solución de diseño de software

Aquí te dejo más palabras que podríamos usar: innovadora, monolítica, cara, barata, peligrosa, reversible, basada en IA...

5. Evalúa las soluciones

Ahora puedes plantear los beneficios e inconvenientes de cada solución en base a una serie de criterios (coste, mantenimiento, escalabilidad, fiabilidad, etc.), y decidir cuál te gusta más o, incluso mejor aún, optar por una mejor solución basada en las anteriores.

¿Y para qué hacer este ejercicio?

La creatividad es algo a lo que le doy mucho peso, ya que una chispa de creatividad puede cambiar completamente nuestro futuro a mejor.

Este ejercicio nunca lo he hecho de la forma metódica que describo aquí, pero sí que ha surgido de forma orgánica durante debates y decisiones en grupo, y el uso del pensamiento lateral.

Algo que nos puede ocurir es que pensemos que nuestras soluciones son más creativas de lo que realmente son, algo así como ese producto que dice "NUEVA RECETA", pero que en el fondo solo ha cambiado el envase y en un 1% la cantidad de sal.

Técnica aplicada en la que los cuatro cuadrantes son prácticamente iguales

Si bien aplicar este ejercicio cuando estamos bloqueados podría llegar a ser útil, no lo planteo como algo que haya que hacer, sino más bien como una invitación a mirar los problemas y las soluciones desde ángulos diferentes.

También para otras áreas

La creatividad puede ser muy útil independientemente del tipo de necesidad que queremos cubrir.

Si bien he hablado de diseño de software y en el ejemplo he dibujado las cajitas y flechitas que podrían representalo, este ejercicio puede servir para cualquier tipo de necesidad que se quiera cubrir.

Puedes describir en el centro cualquier necesidad, y en cada cuadrante representar:

  • Alternativas de UI
  • Alternativas de features a priorizar
  • Alternativas para organizarnos
  • etc.

Al final todo se reduce a lo mismo: piensa 4 formas diferentes de resolver una misma necesidad.

Conclusión

Fruto de la experiencia hemos podido encaminarnos a formas que son adecuadas para resolver los problemas a los que nos solemos enfrentar. Pero en esa habituación y estandarización, hemos podido perder la chispa de creatividad que teníamos al inicio.

Plantear soluciones diversas en vez de quedarnos con nuestra primera idea puede llevarnos a encontrar soluciones que no nos esperábamos, y que solucionan mucho mejor el problema que tenemos delante.

La práctica basada en el dibujo que describo en este post es algo que no he aplicado de forma metódica, pero sí que me he encontrado haciendo algo similar de forma orgánica y mental.

Más allá de la práctica, plantear alternativas diversas y salir de nuestros patrones de pensamiento habituales puede ayudarnos a construir un mejor sistema y resolver de forma más eficaz los problemas.

Hoy te quería compartir estas ideas basada en esos pequeños artistas que me inspiraron. Si te animas a realizar el ejercicio, ya sea en solitario o en grupo, me encataría conocer tu experiencia. Puedes compartirla en los comentarios.

Dani Santamaría

Dani Santamaría

Staff Software Engineer

[🐦]

Comparte el artículo

{🐦}
Flecha

👷 Por aquí irán los comentarios y esas cosas. Mientras tanto puedes: