¿ Ud. necesita Metodologías de Desarrollo Negocio Disciplinadas, Ágiles o Híbridas ?

Continuando con una de nuestras notas anteriores (CMMI o Metodologías Ágiles de Desarrollo) en esta oportunidad queremos brindarles una nueva revisión de las mejores prácticas y tendencias que están emergiendo en la industria del desarrollo de software.

Es bastante conocido hoy en día que en términos de metodologías de desarrollo, el mundo se encuentra dividido, y por qué no, enfrentado, entre los que proponen las metodologías tradicionales (o “disciplinados”) y por otro los evangelistas y defensores a capa y espada de las metodologías ágiles (o “agilistas”). Mientras tanto, CIOs, Gerentes de Sistemas, Responsables de IT, Gerentes de Desarrollo y Líderes de Proyecto se preguntan perplejos: “¿Y cómo me afecta a mí toda esta discusión? ¿En qué terreno debe moverse mi organización o equipo de desarrollo?”

En primer lugar, es interesante destacar que si uno se atiene a la definición de la palabra disciplina, cada uno de los dos grupos hace énfasis en aspectos distintos de la misma palabra. Para los disciplinados significa cumplir con los procedimientos establecidos, mientras que para los agilistas se entiende como auto-control. Por su parte, agilidad es sinónimo de destreza para los agilistas, y como inconsistencia de propósito para los disciplinados. Podemos concluir entonces que desde la definición misma de la terminología utilizada, hay sesgos mucho más basado en los prejuicios de concepto que en realidades fácticas.

Cada una de las metodologías que se presentan como opositoras se basa en una serie de principios y supuestos centrales. Las metodologías tradicionales se concentran en los siguientes:

  • Mejora de procesos.
  • Capacidad de procesos.
  • Madurez organizacional.
  • Gestión de riesgos.
  • Verificación.
  • Validación.
  • Arquitectura de software.
  • La documentación es central.

Por su parte, las metodologías ágiles hacen gala de los siguientes aspectos:

  • Abrazar el cambio.
  • Ciclos rápidos/entregas frecuentes.
  • Diseño simple.
  • Refactorización.
  • Pair programming.
  • Retrospectiva.
  • Conocimiento tácito.
  • Desarrollo basado en las pruebas.
  • Documentación y diseño mínimos.

En base a estos supuestos generales es muy usual encontrarse con interpretaciones erróneas y realidades concretas sobre ambos grupos de metodologías, como veremos.

Desde la perspectiva de las metodologías tradicionales:

Grafico Comparativo SCOR

Y desde la óptica de las metodologías ágiles:

Grafico Comparativo SCOR

(*) YAGNI: You Aren’t Going to Need It – No va a ser necesario

Recientemente han comenzado a emerger metodologías “híbridas” que intentan combinar las fortalezas de ambos mundos. En este sentido, también es común encontrarse con supuestos erróneos como los que se enuncian a continuación:

Grafico Comparativo SCOR

En base a una serie de factores es posible determinar el perfil de riesgo de un proyecto o grupo de proyectos que desempeña la organización de desarrollo y en función de ellos determinar el “mix” adecuado de ambos mundos. Los factores propuestos son:

  • Tamaño: Cantidad de personal involucrado
  • Criticidad: Impacto de las pérdidas por defectos
  • Dinamismo: % de cambio en los requerimientos por mes
  • Personal: Relación entre la proporción de personal junior y personal senior
  • Cultura: La gente se siente cómoda en un ambiente con muchos grados de libertad o donde hay roles, responsabilidades y políticas claramente definidas

La ponderación de estos factores permite elaborar un perfil de riesgo que permita luego desarrollar estrategias para combinar ambos mundos, mitigando las áreas riesgosas en forma preventiva.

Como conclusiones generales podemos enunciar que:

    1 – Ni las metodologías ágiles ni las tradicionales constituyen la panacea del mundo del     desarrollo de software.
    2 – Ambas poseen fortalezas donde dominan claramente a la otra.
    3 – Las tendencias apuntan a proyectos donde cada vez más se requiere combinar ambas.
    4 – Algunas metodologías híbridas están empezando a aparecer.
    5 – Es mejor construir la metodología desde abajo que customizar una existente top-down.
    6 – Las metodologías son importantes pero los elementos clave siguen siendo la gestión del      personal, valores, comunicación y expectativas de la dirección.

…Nosotros, e-STRATEGA, podemos ayudarlo a…

» Realizar un Assessment para establecer la madurez de sus procesos de Desarrollo

»  Diagnosticar, en base al perfil de sus proyectos, el “mix” recomendado de herramientas       provenientes de las Metodologías Tradicionales y de las Metodologías Ágiles

»  Diseñar un Plan de Acción para llegar de la situación actual a la potencial deseable

» Gerenciar el Proyecto de Implementación de la nueva Metodología de Desarrollo

»  Acompañar al equipo de trabajo durante el proceso de transformación organizacional..