La importancia del proceso para una implementación exitosa de un proyecto de software

Frecuentemente encontramos diferentes publicaciones, documentos, etc. como este, donde se habla del proceso necesario para implementar un software de manera exitosa. Y nos puede resultar tedioso o aburrido entender y aceptar su necesidad. Para no caer en esto, la idea es presentarlo desde un punto de vista diferente, haciendo una analogía (técnica del pensamiento lateral) con algo más trivial, de manera de hacer más amena la lectura, y el entendimiento de la cuestión de fondo, y sin entrar en una definición minuciosa, que es donde entraríamos cuando hablamos de metodologías que podríamos utilizar.


Primeramente, definamos “proceso” como un conjunto de acciones que realizamos con un fin determinado, en otras palabras, lo que hacemos cada día para avanzar y estar mas cerca de los objetivos de cada proyecto de software. Por eso, me pareció interesante pensar el proceso de desarrollo como el mapa que uno sigue para ir de un destino a otro, como cuando uno planea las vacaciones.

Entonces si vemos que sucede cuando planificamos un viaje, una vez que estamos en el camino, si bien el viaje pudo comenzar con un objetivo claro que es llegar al destino, en el medio tenemos nuestras paradas programadas para cargar combustible o agua para el mate, paradas no consideradas inicialmente porque nos encontramos caminos, lugares o ciudades que se nos pueden ocurrir visitar, como así también imprevistos donde alguien necesita usar el baño, se nos rompe el auto, los chicos se cansaron, etc. por lo que con todas estas condiciones, tenemos que replantear nuestro viaje.

Para ello, tomamos el mapa, vemos donde estamos, cuáles son nuestras opciones y considerando las condiciones del entorno anteriormente citadas, decidimos una nueva ruta hasta el destino. Y aquí con un poco de imaginación, vemos que en nuestro trabajo, el desarrollo del software tiene sus similitudes, donde sabemos que tenemos un punto de origen, y adonde tenemos que ir, pero nuestras condiciones en la planificación no son solo técnicas, tenemos los aspectos comerciales, los recursos, el grado de conocimiento de las tecnologías, soporte , fechas que cumplir, etc.

Entonces sin un mapa,  que nos ayude para ir de un lugar a otro, francamente solo hemos comprado problemas. Si no se decide adónde va el proyecto y como se va a llegar hasta el objetivo, las personas que forman el equipo de trabajo pueden empezar a tomar decisiones que pueden ser apropiadas para sí mismos, pero no aportan valor al proyecto en su conjunto. Con ese mapa, que es el proceso con una planificación implícita, todos estamos alineados en la misma dirección, y más allá de alguna contingencia, uno tiene las herramientas para poder tomar una acción, y estar en la ruta correcta nuevamente.

Como parte de este proceso, quería mencionar que la comunicación y colaboración son claves a lo largo del mismo. Y mientras transitamos este proceso, tenemos las señales que nos aporta la metodología de desarrollo que estemos usando y métricas que definamos para validar el progreso, el aporte de los integrantes del equipo, los jefes de proyecto y líderes técnicos como guías, feedback del cliente, etc. que nos permiten obtener información y corregir las desviaciones, como así también mantener al equipo alineado y siguiendo las mismas reglas.

Este mapa o planificación no es para evitar contingencias que puedan surgir, ni garantiza que todos sigan las mismas reglas, pero tener un proceso definido, con un objetivo claro y la planificación acorde, nos da una mejor oportunidad de entregar el software de una manera exitosa, y en los plazos comprometidos.

Si han llegado hasta aquí, sin dormirse, muchas gracias por su tiempo, y espero que esta analogía les sea de utilidad, sobre todo para pensar porque el proceso y una planificación que sea funcional al equipo en su conjunto, nos ayuda a todos a ser más efectivos y productivos, aportando valor cada día para cumplir con los objetivos.

Get in Touch