Tag Archives: metodologias

Metodologías ágiles para Managers

La semana pasada tuve una presentación sobre uno de los proyectos en los cuales estoy trabajando y entre los  managers que estaban presentes solo había dos que habían oído hablar de Scrum. Casualmente las personas que lo conocían eran los que más estaban involucradas en el proyecto y que casualmente usa como metodología de desarrollo Scrum.

Esto me ha animado a realizar una serie de post donde se hable de este nuevo cambio a la hora de afrontar los proyectos de desarrollo que son las metodologías ágiles y  las técnicas que van alrededor de ellas. En algunos casos me saldré puramente de este camino puesto que pienso que es muy importante que los managers conozcan más en detalle como trabajan sus equipos. Como uno de los stakeholders principales son pieza fundamental para animar y fomentar este tipo de prácticas entre los equipos que gestionan y que sobre todo comprendan las ventajas que pueden aportar su uso.

En este primer post y solo para tener un punto de partida común voy a incluir una pequeña introducción a lo que es una metodología de desarrollo y sus tipos principales.

¿Que es una metodología de desarrollo?

Es un conjunto de métodos usados para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información. Con una metodología entre otras cosas se define que fases va a tener un proyecto, el orden en el cual se van a ejecutar y los documentos que se van a crear en cada una de ellas. El tiempo que se va a dedicar en cada fase, el coste del proyecto y el número de personas/perfiles que se van a necesitar. Para resumirlo, una metodología  nos dicta absolutamente todo lo que tenemos que hacer para que un proyecto se desarrolle correctamente.

¿Cuales son los principales fases de cualquier metodología?

A grandes rasgos y sin entrar muy en detalles, cualquier metodología cuenta son las siguientes fases: planificación, toma de requerimientos/análisis, diseño, construcción, pruebas y puesta en producción. A estas fases también se le denomina ciclo de vida software.

¿Que metodologías existen?

Solo de mi época universitaria recuerdo al menos cinco tipos de metodologías. A mi entender la división importante está entre metodologías lineales y metodologías iterativas. Una metodología lineal es aquella en la cual cada una de las fases de ciclo de vida son totalmente independientes y secuenciales. En algunos casos se pueden solapar unas a otras, pero una vez que se da una fase por cerrada ya no se vuelve a ella. Por otro lado una metodología iterativa es aquella en la cual se van repitiendo de manera continuada las diferentes fases de desarrollo, volviendo a la primera fase tras terminar con la última. En la siguiente imagen podemos ver de manera gráfica estas dos variantes.

Tipo de Metodologias: Iterativo vs Lineal¿Que metodología es mejor?En el otro lado se encuentran las metodologías iterativas donde se va construyendo el software  poco a poco. Para cada iteración que se va a realizar no es necesario definir absolutamente todas las acciones a realizar puesto que se puede esperar a la siguiente iteración para completarlas. El objetivo dentro de esta metodologías es tener lo antes posible algo que poder validar por el equipo funcional. Un ejemplo de esta metodologías podrías ser Scrum y al contrario que en el desarrollo en cascada es muy importante que el equipo funcional esté muy presente durante todo el proyecto.

Por fin hemos llegado a la pregunta del millón. Seguramente habrá mucha gente que se lance a criticarme, pero a mi entender la respuesta es “depende”. Hay que estudiar que nivel de detalle conocemos del proyecto, si va ha haber cambios en los requerimientos durante el desarrollo, que capacidad de acceso tenemos a usuarios y equipo funcional y si se trata de un proyecto llave en mano. Son muchas las variables que pueden tomar parte. Por normal general yo diría que  solo son aconsejables las metodologías lineales si la incertidumbre del proyecto es realmente baja. Para el resto de casos lo mejor es usar una metodología de tipo iterativo.