Y llegado este momento, y después del post anterior dónde hablábamos de las buenas prácticas, volvemos a la pregunta que nos hacíamos al principio.¿Qué metodología debo usar?¿Cuál es la mejor?¿Cómo puede empezar a usarla?
Pues la verdad que esta pregunta puede dar para mucho más que un post, pero intentaré dar algunas pinceladas que os puedan ayudar a empezar.
La respuesta no es una respuesta absoluta de todo o nada, es decir, no existe una metodología que claramente sea mejor que otra y que siempre debamos aplicar. Factores como el tipo de proyecto o empresa son determinantes en la elección metodológica.
Disponer de una herramienta que nos ayude en el uso de la metodología que elijamos es un factor importante, aunque no determinante. La herramienta nos puede ayudar a poder seguir los requerimientos que nos pide la metodología seleccionada de una manera más llevadera.
Como ya estaréis pensando, Team System es un producto que nos puede ayudar bastante. Tal es la importancia que cobran las metodologías en Team System, que el primer paso para crear un nuevo proyecto es elegir cómo queremos trabajar, es decir, la metodología.
Uno de las grandes innovaciones y ventajas de Team System son las guías de proceso. Las guías de proceso nos dan las directrices a seguir para poder seguir una determinada metodología de desarrollo; Nos dicen que roles existen, cómo se relacionan, qué elementos de trabajo existen, cuáles son los flujos de los mismo etc..Factores claves para conocer qué tengo que hacer para poder implantar una metodología.
Otro factor importante a valorar es la contratación de alguien que ya tenga experiencia en el uso de metodologías de desarrollo y que nos pueda asesorar sobre cuál es la que más no conviene a nosotros. Nos puede ayudar a tomar la decisión y lo que suele ser más importante, a implantarla. Ayudarnos a implantar puede llegar a ser clave, ya que no suele haber segundas oportunidades en este tipo de decisiones.
Metodologías en Team System
Team System incluye dos metodologías por defecto; MSF for CMMI y MSF Agile.
MSF for Agile Software Development se define a sí mismo como un proceso ligero que se adhiere a los principios del manifiesto ágil. Elige MSF Agile para proyectos de ciclo de vida cortos y orientados a resultados, dónde el grupo de trabajo puede trabajar con documentación intermedia. MSF Agile es una guía flexible que ayuda a crear sistemas adaptativos, adelantándose al cambio, enfatizando las entregas periódicas al cliente y que fomenta las validaciones del cliente como medida del éxito.
MSF for CMMI Process Impovement está diseñado para llegar al nivel 3 CMMI. Extiede MSF Agile con planificación más formal, más documentación, más elementos de trabajo y mayor seguimiento. MSF for CMMI implementa una versión más ligera de lo que es la implementación más tradicional de CMMI.
La diferencia principal está en el nivel de formalismo que exigen, el nivel de esfuerzo que hay que emplear y la profundidad de las métricas que se usan. Por ejemplo, MSF for CMMI incluye el rol del auditor dentro del proyecto, existiendo una serie de tareas e informes para ese rol. Las dos alternativas soportan procesos iterativos de desarrollo, con continuos ciclos de aprendizaje y refinamiento.
Existen otras metodologías, que aunque no viene por defecto, pueden usarse con Team System; RUP, CMMI en su implementación tradicional, Scrum o eXtreme Programing son algunas de las alternativas que ya están disponibles.
Y si aún así no fuese suficiente, Team System permite crearte tu propia metodología de trabajo, ya sea partiendo de cero o modificando algunas de las existentes. También debo decir, que aunque lo permite, no lo recomiendo.
¿Una metodología ágil o guiada por plan?
Las metodologías ágiles pueden encajar en la mayoría de los proyectos de desarrollo actuales y salvo en situaciones muy especiales, por ejemplo situaciones impuestas por el cliente, ayudaran más al éxito de nuestro proyecto que las guiadas por plan.
Aún así, tenemos que tener cuidado con la palabra ágil, ya que puede convertirse es un palabra peligrosa que se vuelva contra nosotros. Las metodologías ágiles surgieron como una alternativa a las metodologías formales estilo CMMI, las cuales se consideraban excesivamente pesadas y rígidas por su carácter normativo y su fuerte dependencia de las planificaciones detalladas previas al desarrollo.
Esto no implica que las metodologías ágiles no requieran documentación ni que no requieran planificación. Las metodologías ágiles dan otro enfoque, que se basa en los postulados del manifiesto ágil que deben ser asumidos si se quieren usar este tipo de metodologías:
· Valorar los individuos y su interacción, por encima de los procesos y las herramientas.
· El software funciona, por encima de la documentación exhaustiva.
· La colaboración con el cliente por encima de la negociación.
· La respuesta al cambio por encima del seguimiento de un plan.
Si queréis interesado en cambiar de metodología o empezar a aplicar una, mi recomendación sería utilizar Team System y MSF Agile. MSF Agile es una metodología ágil que no rompe en exceso con las formas de trabajar tradicionales y que puede hacer que la transición sea más llevadera. Otra metodología que me gusta especialmente es Scrum, pero debo reconocer que exige un cambio de mentalidad que no siempre es posible de realizar.
Conclusión
Disponer de una metodología adecuada en el proyecto es algo básico si queremos asegurar el éxito del mismo. Por tanto, la elección de la misma debe ser valorada correctamente teniendo en cuenta los diferentes condicionantes que pueda haber, como el tipo de proyecto o empresa.
Una vez que hemos puesto los cimientos del proyecto (las buenas prácticas ) Team System y MSF Agile pueden ser una alternativa válida para muchos de los proyectos que existen actualmente, aunque si queremos que esta elección sea lo más correcta posible, la mejor solución puede pasar por con contar con gente con experiencia en esta área, que pueda ayudarnos en la implantación de la herramienta y la metodología.