Medologías Ágiles

Las metodologías ágiles son una filosofía de trabajo que facilita el proceso de creación y entrega de valor continuo en proyectos de desarrollo de software.

¿Qué es Agile?

El principio de Agile se basa en la habilidad para crear productos que responden a las necesidades específicas de un cliente, tomando en cuenta un escenario particular: si las necesidades o los requerimientos del cliente, el negocio o el mercado cambian, el producto se adapta.

Esta capacidad de adaptación al cambio y la entrega de valor constante forman parte de los principios de las metodologías ágiles.

Marcos de trabajo y metodologías ágiles

Estos son algunos de los marcos de trabajo ágiles más conocidos:

  • Kanban

  • XtremeProgramming

  • Scrum

Por su parte, existen metodologías que se adaptan a estos marcos de trabajo agile, pero no son exclusivas del entorno ágil. Algunas de ellas son:

  • Pair to pair programming

  • Test Driven Development (TDD)

Características de las metodologías ágiles

La metodología agile tiene que ver con una mentalidad acerca del desarrollo de software, la cual está fundamentada en el Manifiesto Ágil (2001):

  • Agile se centra en las personas y en sus interacciones antes que en los procesos y las herramientas.

  • La colaboración con el cliente está por encima de acuerdos y negociaciones.

  • Lo importante es que el software funcione, más allá de las documentaciones y reportes.

  • La capacidad para responder al cambio prima sobre un plan definido y concreto.

Diferencias entre el desarrollo ágil y el desarrollo tradicional

Frente a las prácticas de desarrollo tradicionales, el desarrollo ágil plantea tres enfoques claves:

Grupos de trabajo

  • Equipos de trabajo pequeños

  • Tiempos de iteración cortos (dos semanas)

Requerimientos

  • Definición de una lista de requerimientos

  • División de los requerimientos en listas más pequeñas para trabajar durante cada iteración

  • Objetivos de desarrollo claros

Generación de valor

Al trabajar mediante iteraciones cortas es posible hacer entregas paulatinas y constantes, por lo cual es más factible realizar ajustes, en caso de que sean necesarios y el cliente percibe más fácilmente el valor generado.

12 Principios Agile:

1. Satisfacción al cliente. La prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor.

2. Cambios. Los cambios son bienvenidos en cualquier etapa del proyecto. Los procesos ágiles aprovechan el cambio para adaptarse a las necesidades del negocio y para proporcionar ventaja competitiva al cliente.

3. Software funcional. Entrega de software funcional en un periodo corto (entre dos semanas y dos meses).

4. Colaboración. Los responsables del negocio y los desarrolladores trabajan juntos durante todo el proyecto. La colaboración facilita la comunicación del equipo de trabajo con el cliente y esto también beneficia al usuario final del producto.

5. Individuos motivados. El éxito de los proyectos está determinado, en gran medida, por individuos que se sienten motivados. Se debe garantizar un buen entorno de trabajo y dar al equipo independencia para tomar decisiones y ejecutar las actividades relacionadas con el proyecto.

6. Comunicación cara a cara. Es el método más eficiente y efectivo de comunicar información al equipo.

7. Progreso. El software funcionando es la principal medida de progreso.

8. Desarrollo sostenible. El ritmo de desarrollo debe ser constante a lo largo de las iteraciones.

9. Mejora continua. Está determinada por la excelencia técnica y el buen diseño a lo largo del proceso, en cada una de las iteraciones, el equipo puede identificar fácilmente qué hizo bien y qué puede mejorar.

10. Simplicidad. El arte de maximizar la cantidad de trabajo no realizado es esencial. Se deben contemplar requerimientos bien definidos y un alcance claro para aprovechar al máximo los resultados de las tareas ejecutadas.

11. Autoorganización. Las mejores arquitecturas, requisitos y diseños emergen de equipos autoorganizados.

12. Autoevaluación. El equipo tiene la capacidad de ajustar y perfeccionar su comportamiento.

Last updated