sábado, 1 de noviembre de 2008

Comparando las Metodologías Guiadas y Ágiles

A continuación hablaré sobre un extracto de un paper que he encontrado sobre las ventajas y desventajas en el uso de las metodologías guiadas y ágiles.

Algunas diferencias entre Metodologías

1. SDM vs. PMBOK

Conociendo que el SDM es la metodología de desarrollo de sistemas que ofrece procesos, herramientas y técnicas para el desarrollo de software basado en otros sistemas; mencionaré algunas diferencias con el PMBOK.

-> El PMBOK se enfoca en la gestión de un proyecto cualquiera, mientras que el SDM se enfoca en la producción de un software.
-> El PMBOK responde a las preguntas de ¿Quién?, ¿Qué? y ¿Cuándo? para la gestión de un proyecto, mientras que el SDM ¿Qué producir? y ¿Cómo producir?.

2. Metodologías Guiadas vs. SDM

-> Ambos proveen procesos, herramientas y técnicas.
-> Ambos requieren un enfoque disciplinado al desarrollo del software.
-> Cada uno tiene fortalezas y debilidades.

3. Metodologías Guiadas vs Metodologías Ágiles

-> Las metodologías ágiles dirigen muchas situaciones cuando las metodologías dirigidas no están bien definidas.
-> Las metodologías guiadas enfatiza en las comunicaciones formales y en el control, con la finalidad de ser más predictivo, mientras que las metodologías ágiles enfatiza en las comunicaciones informales continuas y a la reacción en los cambios, con la finalidad de ser mas adaptivo.

Ejemplos de Metodologías Guiadas

-> RUP de IBM
-> Gestión de Proyectos Tradicionales

Ejemplos de Metodologías Ágiles

-> XP (eXtreme Programming)
-> SCRUM
-> FDD (Feature Driven Development)
-> LD (Lean Development)
-> Crystal

¿Cómo elegir la herramienta correcta?

Seleccionando una metodología dependiendo de la situación, ya que la metodología guiada trabaja mejor bajo algunas circunstancias, y la metodología ágil trabaja mejor bajo otras, o tomando componentes y/o técnicas de cada uno, para construir los procesos que trabajen mejor para la situación.

Pero en realidad eso no me define que herramientas escoger ¿?, por eso se debe tomar en cuenta los siguientes factores:

1. Experiencia

Cuando el equipo tiene experiencia con el dominio de problemas, usa la metodología ágil, pero si el equipo tiene poca experiencia, puede utilizar la metodología ágil junto a la metodología guiada. Se debe tener en consideración el uso de:

-> R&D
-> Desarrollo iterativo mientras se está ganando experiencia con factores de realización.
-> Uso de nuevas tecnologías que impacte al equipo, por ejemplo la aplicación de grupos pequeños de trabajo.

2. Madurez del equipo de trabajo

-> Los equipos con poca madurez requieren una estructura adicional de una metodología guiada.
-> Los equipos con alta madurez fácilmente pueden tomar una ventaja ágil.

3. Localización y Tamaño del Proyecto

Si el equipo de trabajo es grande y geográficamente disperso requieren una comunicación formal de la metodología guiada, pero si el equipo es pequeño y localizado debe utilizar una comunicación informal. Es recomendable que los equipos no excedan de 6 a 8 miembros.

4. Cultura Organizacional

Algunas culturas organizacionales y equipos de gestión pueden ser más receptivos de un enfoque de otro.

5. Escalabilidad y Portabilidad

Para la construcción de un robusto sistema para la extrema escalabilidad a lo largo de una variedad de arquitecturas e infraestructuras podrían ser mejor direccionado con los controles de una Metodología Guiada.

6. Producto Comercial

La creación de un producto comercial requiere coordinación con Marketing y Departamentos de Venta, para la preparación de guías de usuario, el desarrollo de programas, y el establecimiento de equipos de producción; el cuál puede ser muy beneficioso utilizando un enfoque de una Metodología Guiada.

7. Combinando Metodologías

Combinando prácticas de ambos tipos de metodologías podría ser beneficial en algunas situaciones. Algunos enfoques son los siguientes:

-> Usar la metodología guiada para un proyecto o programa complejo y después utilizar la metodología ágil para sub-proyectos o sub-componentes.
-> Usar la metodología guiada para cualquier proyecto en general pero usar las técnicas ágiles como la programación en pareja para el esfuerzo de desarrollo.

Conclusiones

Un proceso definido no necesariamente debe ser formal o documentado, solamente debería ser consistente y ajustado.

El término ágil es un enfoque disciplinado al desarrollo de software pero con un énfasis en diferentes aspectos de los procesos.

Los equipos de gestión que trabajan bien con un enfoque de la metodología guiada también tienden a trabajar bien con un enfoque ágil.

No hay comentarios: