Hay algunas personas que creen que el desarrollo de software sólo trata de resolver problemas analíticamente, pero lo cierto es que para encontrar soluciones siempre se requiere de creatividad.
Sin embargo, muchas veces pensamos que la creatividad como desarrolladores de software no es nuestro fuerte, pero no hay nada más lejos de la realidad. Si te has dedicado exitosamente a esto por un tiempo, has demostrado que eres creativo o creativa, sólo que no de la manera que se considera tradicionalmente, eso que tiene que ver con el arte, la belleza y otras cosas.
Tu creatividad generalmente se demuestra en la aplicación y mezcla de ideas para resolver problemas en nuevas situaciones.
En el libro “Mind Management, Not Time Management” de David Kadavy, se habla de un ciclo de creatividad y en este artículo lo quiero aplicar a nuestro trabajo de desarrollo de software.
El ciclo de la creatividad
Creo que esto no te va enseñar nada nuevo, porque probablemente lo has vivido muchas veces. Pero vamos a ponerle estructura y nombres a los diferentes pasos para que podamos replicarlo de manera más consciente.
El ciclo de la creatividad está compuesto por cuatro fases:
- Preparación: Tienes que obtener la mayor cantidad información, estudiar el problema y se analizar las posibles soluciones. En nuestro caso incluso puede que tengamos que hacer algunas pruebas de concepto. Es muy importante entender que en esta etapa no vas resolver el problema, si encuentras algún tipo de bloqueo debes dejarlo pasar y seguir explorando.
- Incubación: En esta fase tienes que de pensar en el problema, se hace otra cosa, se descansa, se duerme, se hace ejercicio. Tu mente procesará lo que acabas de leer, de manera inconsciente.
- Iluminación: Esta parte no la puedes forzar, a veces incluso tienes que repetir las dos fases de manera cíclica hasta que llega la respuesta. Aquí es donde todo parece que hace click y la solución aparece “de la nada” (ya sabes que no es así porque has hecho mucho trabajo previo.)
- Verificación: Ahora que tienes una idea, falta comprobarla y más importante aún: llevarla a cabo. En esta tienes que asegurarte que la solución que encontraste es correcta, o tienes que hacer lo suficiente para empezar a probarla. Puede que te equivoques y tengas que volver a empezar el ciclo, pero con nuevos conocimientos.
Este ciclo me pareció muy interesante porque se me hace equivalente en pasos a los pasos que George Polya propone. En su libro “How to Solve It” habla de cuatro pasos para resolver problemas:
- Entender el problema == Preparación e Incubación
- Idear un plan == Incubación e Iluminación (La parte más difícil, Polya dice que si tienes un plan, ya casi resolviste el problema)
- Llevar a cabo el plan == Verificación
- Revisar el plan == Verificación
Ejemplo
El ejemplo más clásico en el que usamos el ciclo de la creatividad naturalmente es cuando estamos resolviendo un bug difícil. Veamos los pasos:
-
Preparación: Intentamos entender el bug, y el comportamiento esperado, consultamos la documentación o el código que lo está produciendo. Si es lo suficientemente difícil, este bug se va con nosotros a dormir.
-
Incubación: Después de sentirte derrotado por el bug, te alejas, ya sea porque terminó el día de trabajo, porque te vas a hacer otras cosas o porque simplemente te quieres despejar.
-
Iluminación: Durante alguna otra actividad, como bañándote, caminando, haciendo ejercicio o también cuando regreses al código, ves la solución, como si siempre hubiera estado ahí, de manera obvia.
-
Verificación: Implementas la solución y pruebas que todo esté funcionando como debería.
¿Ves cómo sí te ha pasado? Ese es el ciclo de la creatividad, que nosotros usamos resolviendo problemas. Veamos algunas formas de extenderlo y aprovecharlo mejor.
Aplicación: el poder de la preparación
Ahora que ya tienes un nombre para esto que te pasa muy constantemente, puedes aprovecharlo para desencadenarlo intencionalmente.
Antes, pensemos un poco. ¿Cuál es la parte del ciclo que nos interesa aprovechar? Para mi es el poder de incubación, que es lo que produce la iluminación, o sea, lo que hace que te lleguen las ideas para resolver tu problema de manera creativa.
Pero, ¿cómo vas a incubar si no tienes nada que hacer crecer? Es aquí donde entra el valor de la preparación. Si quieres resolver un problema difícil, inclusive uno que sientes que ahora mismo está un poco por encima de tus capacidades, la mejor manera de hacerlo es aprovechando este ciclo. Primero te preparas lo mejo que puedas, estudiando el problema, analizando los posibles caminos que puedes seguir e incluso haciendo algunas pruebas de concepto. Seguro que esto ya lo haces.
Después y esto es la parte más importante de este artículo (y la que te puede estar fallando), tienes que alejarte del problema. Así es, olvídate de él, cambia de problema, ve a dormir, sal a pasear, date un baño. Tienes que hacer algo que ocupe tu mente.
David Kadavy dice en su libro que esto te permite olvidarte de las ideas que no funcionan y fortalecer las que sí, y me parece una buena propuesta. Si lo comparas con un algoritmo, buscar una solución a un problema es como hacer una búsqueda en un árbol, sólo que este árbol tiene más ramas de las que puedes seguir, así que tienes que podarlas. La incubación es la poda, que además fortalece las ramas que es más probable que te lleven a la solución.
Esto también se puede aplicar de manera más sencilla.Por ejemplo, ¿tienes que diseñar una pieza de software y sientes que no tienes ni idea de por dónde empezar? Combinando las enseñanzas de Polya con el ciclo de la creatividad, lo primero es definir completamente el problema. Una vez que sientas que lo has entendido (muchas veces ayuda ponerlo por escrito e incluso pedir que alguien más lo revise).
Después de esto, sobre todo si no tienes una solución clara, o propuestas que hacer, busca alejarte lo más posible. Es por eso que muchos profesionales veteranos y exitosos tienen actividades alternas, alejadas de la programación e incluso de la computadora. Cuando regreses a trabajar sobre el problema, es mucho más probable que tengas una solución.
Se que esto suena mágico, pero nada te puede convencer más que la propia que ya tienes resolviendo problemas de otro estilo. Si esto no funciona, recuerda que puedes repetir el ciclo tantas veces como sea necesario.
Claro, esto no asegura que la solución te llegará mágicamente siempre, pero con esto aumentamos las probabilidades de que tu naturaleza creativa trabaje por ti.
Conclusión
Siempre que puedas, frente a problemas difíciles, aplica este ciclo: prepárate lo mejor que puedas, explorando soluciones, asegurándote de entender todas la variables del problema, escribiendo la definición del problema. Después aléjate de problema, así permitirás que se incube.
Finalmente, regresa y trata de resolverlo de nuevo. Claro que después de esto tienes que ejecutar y verificar tu solución.
Espero que esta información te sea útil y que la puedas aplicar en tu día a día.
Comentar