Es cierto que estamos en la cultura de la prisa, en la que todo tiene que estar para antes de ayer, en la que los éxitos de otros se nos presentan como si hubiesen ocurrido de la noche a la mañana, generando la creencia de que nuestros objetivos más ambiciosos los podemos conseguir de una forma rápida.
Sin embargo, cuando analizamos el éxito aparentemente fulgurante de algún personaje de éxito, vemos que esa fachada mediática no es más que la punta minúscula de un iceberg que esconde en su base mucha perseverancia, fracasos, esfuerzo y tenacidad. Elon Musk, Bill Gates, Amacio Ortega, etc., por poner unos ejemplos extremos, todos comparten una historia parecida: muchas horas de trabajo, pequeños progresos y grandes resultados... después de años y hasta décadas.
Sin acaparar titulares, muchas otras personas alcanzan sus metas, que no necesariamente consisten únicamente en hacerse ricas: escribir un libro, perder peso, lanzar un proyecto emprendedor, caminar cada día, correr una maratón o plantar mil árboles.
Nada de todo eso se hace de la noche a la mañana: si te planteas este último objetivo, tendrás que plantar un primer árbol, después un segundo, y así hasta llegar a mil. Consigues entonces el gran resultado que buscabas: eres de los pocos que ha plantado mil árboles, aunque esto no sea relevante para todo el mundo, para ti sí, y te hace feliz.
Pero, ¿cómo lo has conseguido? Exacto, poco a poco, de uno en uno, con la perseverancia en el tiempo que te da ese propósito.
No nos damos cuenta de que todo gran logro, sea el que sea, es el resultado de muchos otros infinitamente más pequeños.
Hace muchos años me propuse practicar yoga; al comienzo todo me costaba trabajo, terminaba con agujetas, me dolían las articulaciones; aunque corría y caminaba, mi cuerpo estaba tan rígido que no podía hacer siquiera la postura del perro boca abajo con comodidad. Ahora, sin llegar a ser un un yogui experto, después de más de quince años de práctica, realizo una sesión casi a diario de media hora o cuarenta y cinco minutos con facilidad, sin cansarme; tan solo paso de una asana a otra (que es así como se llaman las posturas en yoga), de una manera fluida y agradable. ¿Y cómo fui progresando? Poco a poco y sin perder el interés.
Me sorprende mucho que aunque tengamos una cultura de desarrollo de software ágil (todo eso de abrazar el cambio, avanzar en pasos incrementales, aportar valor al cliente por encima de metodologías rígidas, etc.), no nos demos cuenta de que la primera solución a un requisito nunca es la mejor. ¿Qué ocurre entonces a medida que se va añadiendo funcionalidad al sistema sin mejorar lo ya existente, sin adaptar lo que ya funciona mejorando el diseño para integrarla?
Poco a poco, el proyecto se va convirtiendo en algo cada vez más inmantenible, cuando no esa gran bola de barro (big ball of mud).
Esto es, si no mejoramos continuamente la implementación de lo ya existente, iremos avanzando por ese camino que acabo de describir hacia una solución cada vez peor.
En software, mejorar algo no consiste en hacer un rediseño completo, en tirarlo todo y volver a hacerlo (aunque a veces sea necesario), sino incorporar en tu día a día micromejoras por aquí y por allá: refactorizar algunas clases, mejorar ciertos nombres, simplificar esa función, extraer redundancias, organizar mejor el proyecto o añadir más y mejores pruebas unitarias. Pequeñas tareas que se tardan realmente poco en realizar en comparación con todo el trabajo que supone la ejecución de cualquier proyecto. Quiero decir, que tan solo dedicando un cinco por ciento de tu tiempo de desarrollador a mejorar lo existente ejecutando esas microtareas como las que indicaba, la calidad del proyecto va a ser varios órdenes de magnitud mejor en todos los sentidos. Y, sorprendentemente, se va a poder trabajar en él mucho más rápido.
Por alguna razón que desconozco, esta dinámica de integrar la micromejora continua, cuesta ser comprendida y aplicada por muchos desarrolladores.
En todo, en software también, cualquier gran mejora que consideremos, sea del tipo que sea, está realizada a base de llevar a cabo muchas otras mejoras de menor tamaño.
Esto no es más que aplicar la técnica de kaizen en todo lo que haces.
Incorpora la micromejora en tu día a día: con el tiempo, tu código será sorprendentemente mejor. Aplica esta perspectiva también a otros órdenes de tu vida, y posiblemente, ésta mejorará en todos los aspectos que te propongas.
PD: artículo también publicado en Medium.