SM_T006 Metodologías Ágiles

Plataformas de Aprendizaje Autodirigido

Metodologías Ágiles.

Un proyecto es un esfuerzo temporal que utiliza recursos limitados para crear un resultado único.

Dentro de los proyectos existe el concepto triple restricción, la cual está conformada por el Alcance del proyecto (lo que se va a hacer) el tiempo (lo que tardará en hacerse) y el costo (lo que se gastará en hacerse).

  • En los métodos basados en el plan (tradicionales) el alcance es fijo, y se negocian el tiempo y el costo.
  • En los métodos basados en los cambios (ágiles) el tiempo y el costo son fijos y lo que se negocia es el alcance.

Para decidir el enfoque que debe tener el proyecto se debe considerar el nivel de incertidumbre (lo que no conocemos).

Los proyectos tradicionales también llamados en cascada o guiados por el plan, son aquellos donde se conocen todos los requerimientos con anticipación, y no se esperan muchos cambios.

Ejemplo: Un proyecto de construcción de un edificio de oficinas, donde se conocen exactamente las especificaciones de los arquitectos antes de comenzar el proyecto, y donde una vez hecha la estructura, los cambios serían demasiados costosos.

Los proyectos ágiles o guiados por el cambio, son aquellos donde los requerimientos se van descubriendo a la par del desarrollo, por lo que se esperan muchos cambios.

Ejemplo: La construcción de una plataforma tecnológica bancaria, donde se comercializan productos y servicios de un Banco a través de dispositivos móviles, este proyecto es muy complejo para abarcar todas las variedades de productos y servicios del banco en un periodo de tiempo razonable; por lo que se debe planificar de manera progresiva, a la par que se va construyendo. Los cambios serían muy costosos si se detectarán al final de proyecto; por lo que se deben hacer entregas más rápidas, para detectar los cambios más rápido y responder a ellos.

Por definición, las metodologías ágiles son aquellas que permiten adaptar la forma de trabajo a las condiciones del proyecto, consiguiendo flexibilidad e inmediatez en la respuesta para amoldar el proyecto y su desarrollo a las circunstancias específicas del entorno.

En esencia, las empresas que apuestan por esta metodología consiguen gestionar sus proyectos de forma flexible, autónoma y eficaz reduciendo los costes e incrementando su productividad.

Ventajas de la gestión ágil de proyectos.

A continuación enumeramos algunas de las ventajas que nos brinda la gestión ágil de proyectos:

  • Mejora de la calidad del producto: Estas metodologías fomentan el enfoque proactivo de los miembros del equipo en la búsqueda de la excelencia del producto. Además, la integración, comprobación y mejora continúa de las propiedades del producto mejora considerablemente el resultado final.
  • Mayor satisfacción del cliente: El cliente está más satisfecho al verse involucrado y comprometido a lo largo de todo el proceso de desarrollo. Mediante varias demostraciones y entregas, el cliente vive a tiempo real las mejoras introducidas en el proceso.
  • Mayor motivación de los trabajadores: Los equipos de trabajo autogestionados, facilitan el desarrollo de la capacidad creativa y de innovación entre sus miembros.
  • Trabajo colaborativo: La división del trabajo por distintos equipos y roles junto al desarrollo de reuniones frecuentes, permite una mejor organización del trabajo.
  • Uso de métricas más relevantes: Las métricas utilizadas para estimar parámetros como tiempo, coste, rendimiento, etc. son normalmente más reales en proyectos ágiles que en los tradicionales. Gracias a la división en pequeños equipos y fases podemos ser más conscientes de lo que está sucediendo.
  • Mayor control y capacidad de predicción: La oportunidad de revisar y adaptar el producto a lo largo del proceso ágil, permite a todos los miembros del proyecto ejercer un mayor control sobre su trabajo, cosa que permite mejorar la capacidad de predicción en tiempo y costes.
  • Reducción de costes: La gestión ágil del proyecto elimina prácticamente la posibilidad de fracaso absoluto en el proyecto, porque los errores se van identificando a lo largo del desarrollo en lugar de esperar a que el producto esté acabado y toda la inversión realizada.

Los métodos populares incluyen Scrum, Lean, DSDM y eXtreme Programming (XP).

Otros métodos ágiles

Lean Product Development (LPD): LPD es la aplicación de los principios lean al desarrollo de productos. Esta es una actividad multifuncional que busca descubrir el conocimiento del producto oculto dentro del flujo de producción de extremo a extremo, generalmente en los puntos de entrega entre unidades funcionales.

Desarrollo Kanban: Kanban es un método para desarrollar productos y procesos de software con énfasis en la entrega justo a tiempo sin sobrecargar a los desarrolladores de software. Los desarrolladores extraen el trabajo de una cola, y el proceso, desde la definición de una tarea hasta su entrega al cliente, se muestra para que los participantes lo vean.

Proceso unificado ágil (AUP): El proceso unificado ágil es un enfoque simple para desarrollar software de aplicación empresarial utilizando técnicas y conceptos ágiles, pero aún así se mantiene fiel al proceso unificado racional. La AUP aplica técnicas ágiles que incluyen desarrollo basado en pruebas (TDD)modelado ágil, gestión ágil de cambios y refactorización de bases de datos para mejorar la productividad.

Proceso Unificado Esencial: El Proceso Unificado Esencial para el desarrollo de software, o EssUP, fue inventado por Ivar Jacobson como una mejora en el Proceso Unificado Racional. Identifica prácticas, como casos de uso, desarrollo iterativo, desarrollo basado en arquitectura, prácticas de equipo y prácticas de proceso, que se toman prestadas de RUP, CMMI y desarrollo ágil. La idea es que pueda elegir las prácticas que son aplicables a su situación y combinarlas con su propio proceso. Esto se considera una mejora con respecto a RUP, porque con RUP las prácticas están todas entrelazadas y no se pueden tomar de forma aislada. EssUP se apoya en un conjunto de naipes, cada carta describe una práctica.

Proceso Unificado Abierto: OpenUP conserva las características esenciales de RUP/Unified Process, que incluyen desarrollo iterativo, casos de uso y escenarios que impulsan el desarrollo, la gestión de riesgos y un enfoque centrado en la arquitectura. La mayoría de las partes opcionales de RUP han sido excluidas, y muchos elementos han sido fusionados. El resultado es un proceso mucho más simple que sigue siendo fiel a los principios de RUP. OpenUP se dirige a equipos pequeños y ubicados interesados en el desarrollo ágil e iterativo. Los proyectos pequeños constituyen equipos de tres a seis personas e implican de tres a seis meses de esfuerzo de desarrollo.