archivo

Archivo de la etiqueta: agilista

En línea con el artículo de ayer comienzo éste con la continuación de la cita de Jim Highsmith indicada en el mismo (traducción libre): “Los agilistas creen en la adaptación al cambio y que este no se puede planificar desde la distancia. Puedes tener (como persona) flexibilidad, consistencia o una mezcla de ambas, pero esperar que un proceso o una metodología puedan proporcionar máxima flexibilidad y completa predecibilidad a la vez supone sobrepasar los límites de la credulidad”.

Pensar que los procesos o metodologías pueden prever todas las contingencias que pueden producirse en un desarrollo no es algo real, de hecho sabemos que no lo es y supone un problema cuando necesitamos sobrepasar las barreras de un proceso o de una metodología y sin embargo no nos dejan (visión finalista del proceso: el proceso está por encima de todo, incluido el producto que se está desarrollando.

Sin embargo pensar en los procesos o metodologías como instrumentos cambia absolutamente el escenario de partida, el desarrollador, el equipo de proyecto y los stakeholders (si fuera necesario) definen la mejor forma de afrontar una determinada situación.

Cuando se está obsesionado con el proceso, con la repetibilidad, con el control es complicado darse cuenta que la salida no es más de lo mismo sino un cambio de enfoque en cuanto al rol que deben desempeñar en el proceso de desarrollo de software. Sin embargo, una reacción demasiado frecuente cuando los procesos no terminan de dar una respuesta consiste en extender más los procesos y hacerlos todavía más rigurosos.

Nuestro conocimiento y nuestra experiencia constituyen nuestro verdadero background a la hora de afrontar un proyecto de desarrollo de software y las diferentes contingencias y cambios de contexto que se van a producir en el mismo. Todo lo demás: metodología, procesos, buenas prácticas, herramientas, etc… son instrumentos que utilizaremos según convenga y que en el caso de que haya alguno de carácter obligatorio (por si se quiere armonizar algún aspecto del desarrollo entre proyectos diferentes) debe ser lo suficientemente flexible para ofrecernos el margen de maniobra necesario para poder adaptarnos a la nueva situación e incluso prever la posible existencia de excepciones cuando exista una circunstancia que lo justifique.

La repetibilidad es algo deseable, ¿por qué no querer industrializar una manera de hacer las cosas que nos permita alcanzar el éxito con una alta probabilidad?, sin embargo en el desarrollo de software donde cada proyecto es algo singular y en donde los contextos cambian es buscar una quimera.

Por tanto, la repetibilidad basada en términos absolutos es algo que deberíamos descartar de base, lo cual no quiere decir que en función de las características de un proyecto apliquemos unas estrategias de fondo que nos puedan resultar de utilidad (pero como instrumento no como un martillo de oro).

Sobre esto, Jim Highsmith opina lo siguiente: “Los agilistas creen que las buenas prácticas y procesos puede mejorar la consistencia pero que la repetibilidad es una fantasía”.

Una de las mayores críticas que se tiene hacia los agilistas es que se considera que están obsesionados por el proceso, hasta tal punto de contravenir el siguiente principio del Manifiesto Ágil: “Valorar a los individuos y su interacción, por encima de los procesos y las herramientas”.

No estoy de acuerdo con esa crítica porque hace una generalización que creo que no se ajusta a muchas realidades. Si bien tiene un trasfondo real y es el hecho de que se considera agilistas a muchas personas por el mero hecho de trabajar con metodologías ágiles y como he comentado ya en diferentes artículos: “la agilidad es cuestión de actitud y no de metodología“.

La aplicación de metodologías ágiles es una aproximación pero depende mucho del enfoque con el que se trabaje con las mismas y de quiénes intervengan en el proceso.

Si no entiendes o conoces el trasfondo de lo que significa ser ágil la respuesta no te la va a dar ninguna metodología y si te encierras en ella, probablemente estés dando pasos en el sentido equivocado.