archivo

Archivos diarios: mayo 11, 2012

Podríamos entrar en un debate muy interesante sobre qué se considera mantenimiento porque muy probablemente el enfoque que tengamos cada uno de nosotros puede ser distinto.

De manera clásica se considera mantenimiento (ya sea evolutivo, adaptativo, perfectivo, etc…) a actividades que se realizan sobre un componente software una vez que se pasa a producción.

Esta definición podría ser también válida para enfoques ágiles, aunque personalmente en estos casos prefiero llamarlo evolución independientemente de la naturaleza del mantenimiento.

Ahora bien, ¿no es mantenimiento cuando cuando corregimos errores antes en el proceso de desarrollo?, ¿no es mantenimiento si refactorizamos un componente antes de entregarlo?, ¿no es mantenimiento mejorar una determinada funcionalidad mientras se programa?. Desde esta perspectiva la frontera entre la construcción y el mantenimiento es bastante difusa por no decir inexistente (Andy Hunt tiene una cita donde exagera de manera voluntaria lo que está diciendo pero que viene a expresar perfectamente su opinión sobre la inexistencia de ese límite (traducción libre): “solo durante los diez primeros minutos se puede considerar un código como original que es cuando lo estás escribiendo por primera vez”.

Es cierto que está haciendo daño a la extensión de los enfoques, prácticas y metodologías ágiles el hecho de que se considere la aplicación de estas estrategias como el martillo de oro que resuelve todos los problemas relacionados con el desarrollo de software y que permite conseguir que todos los proyectos terminen con éxito.

Nada asegura de antemano el éxito, la agilidad tampoco. Todos hemos tenido éxitos y fracasos con enfoques clásicos en el desarrollo de software y también los tendremos con enfoques ágiles.

Entonces, ¿qué aporta la agilidad? una aproximación más natural a las características inherentes al proceso de desarrollo de software y por tanto, proporcionarán unas soluciones más acordes a la problemática que nos encontraremos en los proyectos. Siempre será más fácil alcanzar una meta remando a favor de corriente, siguiendo un recorrido natural que aplicando enfoques o metodologías que no se adaptan a la naturaleza del desarrollo de software.

Es importante, desde mi punto de vista, que en las tareas de difusión de los enfoques ágiles de desarrollo de software se incida precisamente en lo que aporta al proceso de desarrollo como consecuencia de asumir que éste se realiza bajo un contexto de incertidumbre y dejando claro que la misma puede acabar con el proyecto y el producto incluso habiendo aplicando principios o metodologías ágiles de manera adecuada y que la propia aplicación de los mismos no significa nada si el contexto no acompaña o si la ejecución de sus prácticas o del propio producto no se realiza de manera adecuada. Son muchos puntos donde se puede romper la cuerda.

Agilidad, sí, realidad, también.

No lo es, aunque muchas veces te lo llegas a plantear.

Cuando piensas de una manera y después la mayoría no lo piensa o lo siente así se te pasa por la cabeza que tal vez estés haciendo algo equivocado.

Vengo de una formación con una visión clásica del desarrollo de software, mi trayectoria profesional ha estado centrada desde sus inicios en ese tipo de enfoque, he visto las consecuencias de ese tipo de estrategias en primera persona, no desde las trincheras sino hundido dentro de ellas.

Tal vez veo las cosas desde el extremismo del converso pero la agilidad me ha traído aire fresco, una nueva forma de entender el desarrollo de software. Es posible que muchos que se han criado ya en entornos ágiles no lo puedan apreciar pero desde mi punto de vista el enfoque ágil es el enfoque natural para los que entendemos que el desarrollo de software es algo más que ejecutar un trabajo, es posible que unos tardemos más que otros en darnos cuenta, pero al final terminamos descubriendo como si de una visión se tratase que ese es el camino adecuado (claro que habrá proyectos donde sean más válidos otros enfoques, no discuto eso) por ese motivo los enfoques ágiles ya existían mucho antes del manifiesto ágil.