¿Que metodología de desarrollo elegir?
Últimamente he recibido esta pregunta en dos ocasiones, en un corto espacio de tiempo, por correo. Además siempre que doy un curso sobre gestión de proyectos aparece. No es de respuesta facil y mucho más dificil aún es dar una respuesta universal.
Elegir una metodología no es una cuestión simple, se prodría escribir un libro sobre este tema. En mi opinión es algo que depende principalmente de dos factores, el tipo de proyectos y la cultura que exista en la empresa.
Otro factor que puede tener cierto peso, pero que no tiene por que ser determinante del todo, es que esa metodología este soportada por determinadas herramientas, por ejemplo Team System o que existan herramientas de nuestro gusto que nos faciliten la adopción de la metodología elegida. Aunque no es un factor determinante, contar con una herramienta adecuada es algo que puede hacer mucho más llevadera la implantación de una metodología.
El primer paso es conocer a fondo las metodologías que evaluamos o buscar a alguien que las conozca, y en una situación ideal haber trabajado con varias de ellas. No hay metodología que funcione de manera universal, de hecho cada vez más las metodologías se conciben como 'marcos' metodológicos que es necesario ajustar para cada organización y tipo de proyecto. Realizar este ajuste es algo que necesita de una experiencia y un conocimiento previo. El problema con la implantación de una metodología es que no se suele tener una segunda oportunidad.
A la hora de seleccionar una metodología la primera decisión que se plantea es: ¿Una metodología ágil o una metodología guiada por plan? En mi opinión la gran mayoria de proyectos se pueden beneficiar mucho del uso de una metodología ágil, pero indudablemente existen proyectos y entornos en los que es condición, generalmente impuesta por el cliente o la dirección de la empresa, que el proyecto se desarrolle con 'más control'.
Para plantearte el uso de una metodología ágil tenemos que ser capaces de asumir completamente el Manifiesto Ágil y ser capaces de hacer que sea el paradigma que guie la gestión de nuestro proyecto, y desde luego es sumamente importante que logremos un sponsor. Tener un sponsor es vital en todo proyecto de implantación de una metodología, pero sobretodo es vital para implantar una metodología ágil, pues exige que se produzcan profundos cambios en la cultura tradicional relativa a la gestión de proyectos.
Poniendo de menos a más ágil, de más 'revolucionaria' a menos, las metodologías más populares, nos queda la siguiente lista:
- CMMI con una implanción tradicional
- Rational Unified Process
- MSF for CMMI Process Improvement
- MSF Agile
- Scrum
- eXtreme Programming
Sin conocer a fondo el tipo de proyecto, las herramientas con las que se puede contar (RUP y MSF se implanta bien si se tienen las herramientas de Rational, carísimas, o Team System respectivamente) y cual es la cultura de la empresa en lo que a gestión de proyectos se refiere y en que grado se busca impactar en esa cultura, a veces es precisamente lo que se busca o se necesita, aplicaria la maxima de que 'en el punto medio esta la virtud' y me iria a MSF.
A grosso modo creo Team System + MSF Agile es una combinación que puede funcionar para una gran rango de proyectos y un gran rango de culturas de empresa. Al contar con métricas nos puede ayudar mucho a la hora de ganar el apoyo de los gestores de la empresa, pero tenemos que se vigilantes con el uso que se hacer de las métricas.
Si no puedes contar con una herramienta 'cara' entoces Scrum sería una excelente opción, pues se puede llevar con Excel o con herramientas gratuitas como Trac o VersionOne (tiene una versión gratuita hasta 5 usuarios), que están a años luz de Team System pero aun así son de mucha ayuda. A mi Scrum me gusta especialmente por varios motivos, principalmente porque es simple y de sentido común, pero tengo que reconocer que exije un cambio de mentalidad que no siempre es posible.
Por último, hace algún tiempo hable en mi blog de por qué puede fallar una implantación de Team System, algunos de los motivos son de aplicación a la implantación de cualquier herramienta o metodología.