Llegamos a ustedes gracias a:



Columnas de opinión

Ser ágiles ¿Cómo y por qué?

Por: Juan Mestas, gerente de Tecnología de la integración de Deloitte Perú

Deloitte Juan Mestas Desarrollo gil

[12/11/2014] En el contexto económico actual, las empresas se encuentran enfocadas en el crecimiento controlado, lo cual hace que las organizaciones deban responder de manera eficiente a los requerimientos del mercado y frente a las estrategias de los competidores. Los CIO, no son ajenos a dicho contexto; existe una exigencia fuerte a la función de TI para la entrega de soluciones de calidad y de manera oportuna.

Vemos con mayor frecuencia publicaciones en revistas especializadas, e incluso a través de foros y redes sociales, mucha información acerca de los denominados "métodos ágiles", los cuales se presentan como una alternativa a las metodologías tradicionales de desarrollo de soluciones de software, con la promesa de ser una mejor forma de implementar sistemas; sin embargo, surgen dudas respecto a quétan aplicables son en una empresa o qué tipo de preparación se requiere para que su adopción sea exitosa y la promesa de entregar un mayor valor en el contexto de los objetivos del negocio se vuelva realidad.

¿Qué es Agile?

Agile es un conjunto de métodos para construir productos de forma iterativa e incremental buscando responder con flexibilidad al cambio de las necesidades del negocio a lo largo del tiempo; a través de la conformación de equipos multi-disciplinarios. El principal objetivo que buscan estos métodos es gestionar la complejidad e incertidumbre a través de la aplicación de principios que promueven un incremento de la visibilidad, a través de la constante inspección y permitiendo una rápida adaptación; lo cual demanda una mayor disciplina que los enfoques tradicionales.

Su enfoque es iterativo dado que las actividades son ejecutadas en pequeños ciclos, e incremental porque considera la entrega de productos en cada iteración, que en conjunto integran la solución final.

Deloitte Juan Mestas Desarrollo gil

Los principales beneficios de la aplicación de métodos ágiles son los siguientes:

Beneficios para el negocio: Las organizaciones que adoptan métodos ágiles buscan mejorar la capacidad de respuesta ante los cambios del negocio, proveer mayor visibilidad e implementar soluciones de manera más efectiva. A partir del enfoque iterativo e incremental, los métodos ágiles buscan adoptar los cambios propios del entorno de negocio y TI obteniendo los siguientes beneficios:

  • Reducir el time-to-market entre la solicitud del negocio y la entrega de la solución en base a la re-priorización continua de funcionalidades.
  • Eliminar la "grasa" a partir de la construcción únicamente de componentes de software que el negocio necesita.
  • Incrementar la calidad a partir de la ejecución de pruebas integrales y solicitud de feedback constante.
  • Mejorar la predictibilidad y alineamiento en base a revisiones periódicas de los incrementos de funcionalidad con los usuarios de negocio.

Beneficios para la organización de TI: Por otro lado, la aplicación de métodos ágiles impactan positivamente en la ejecución de proyectos de TI en tres aspectos principales: flexibilidad frente a los requerimientos, involucramiento de los usuarios de negocio y entrega ágil de productos funcionales.

  • Mejorar la productividad del equipo, logrado a partir de la limitación de tiempos destinados en actividades exhaustivas de análisis (parálisis por análisis).
  • Reducir la cantidad de errores en base a la ejecución de pruebas en cada iteración orientadas a identificar y resolverlos los defectos antes de continuar con otras funcionalidades.
  • Poner en evidencia el éxito de los proyectos en términos de productos funcionales, donde todos los stakeholders pueden observar la salud del proyecto con el propósito de tomar decisiones informadas respecto a las funcionalidades desarrolladas.

Enfoque de la adopción

No se recomienda utilizar métodos ágiles en los proyectos por el simple hecho de buscar una nueva forma de hacer las cosas, es importante evaluar la naturaleza del proyecto con el objetivo de identificar las características que permitan aplicar el método idóneo. A continuación se presentan las características más relevantes para la aplicación de métodos ágiles y tradicionales:

Usar métodos ágiles para... Usar el enfoque cascada para...
Proyectos cuyo alcance puede estar sujeto a cambios a lo largo del tiempo. Proyectos que requieren definir un alcance cerrado desde el inicio.
Contratos que permitan enfocar la entrega de productos iterativos. Contratos de costo fijo y basado en entregables que tengan procesos y periodos de revisión establecidos.
Organizaciones en donde se pueden conformar equipos multidisciplinarios. Organizaciones con equipos especializados (por ejemplo: analistas de negocios, arquitectos, desarrolladores, analistas de calidad)
Proyectos con un único responsable empoderado para evaluar el alcance de la solución y la prioridad de las funcionalidades. Proyectos que cuenten con un comité de cambios, responsable de la evaluación y aprobación de las solicitudes de cambio.
Proyectos donde la documentación puede ser presentada al final de la iteración. Proyectos donde el cierre de las fases de diseño, desarrollo o pruebas requieren resultados documentados antes de continuar con la siguiente etapa.

Es importante resaltar que un cambio de esta naturaleza impacta en la cultura organizacional. Por lo tanto para lograr una adopción exitosa de estos métodos es importante contar con patrocinio gerencial que busque impulsar el interés y entusiasmo necesario para desarrollar y ejecutar las prácticas ágiles. Entre las principales consideraciones para lograr la adopción de métodos ágiles podemos mencionar los siguientes:

  • Promover la comunicación continua entre los usuarios de la solución de software y el equipo de trabajo durante los proyectos.
  • Empoderar a los recursos responsables de la priorización y definición de funcionalidades.
  • Establecer un ambiente de compromiso y colaboración conjunta.
  • Contar con las habilidades técnicas y el grado de conocimiento suficiente en los métodos ágiles en roles clave del equipos.
  • Disponer de capacidades requeridas y recursos dedicados para realizar construcciones diarias, validaciones continuas de los desarrollos, ejecución de pruebas unitarias y de regresión, así como el despliegue de nuevas funcionalidades de manera periódica.
  • Definir ciclos de mejora continua para contrarrestar los retos identificados durante su adopción.
  • Adoptar progresivamente métodos ágiles en base a pilotos.
  • Mantener niveles consistentes de compromiso y dedicación a lo largo del ciclo de vida de desarrollo de soluciones.

Finalmente lo importante es validar que los beneficios que promueven los métodos ágiles y las consideraciones estén alineadas con las expectativas de la organización, con el propósito de determinar si los métodos ágiles son la herramienta adecuada para los proyectos de acuerdo al contexto del negocio. En aquellos casos que no sea factible implementar un método ágil en particular, es posible adoptar ciertas prácticas que permitan entregar funcionalidades de forma iterativa e incremental.

CIO, Perú