17 Ene

Por estar especialmente orientadas para proyectos pequeños, las Metodologías Ágiles constituyen una solución a medida para ese entorno, aportando una elevada simplificación que, a pesar de ello, no renuncia a las prácticas esenciales para asegurar la calidad del producto.

Métodos Ágiles

Se enfocan en el código más que en el diseño. Se basan en un enfoque iterativo para el desarrollo de software. Están destinados a ofrecer software de trabajo rápidamente y evolucionar para satisfacer las necesidades cambiantes.

El objetivo de los métodos ágiles es reducir los gastos generales en el proceso de software (por ejemplo, mediante la limitación de la documentación) y ser capaces de responder rápidamente a las necesidades cambiantes sin necesidad de una revisión excesiva.

Aplicaciones de los Métodos Ágiles

  • Desarrollo evolutivo e iterativo “timeboxed”.
  • Planeación adaptativa.
  • Promueven entregas evolutivas.
  • Incluyen otros valores y prácticas que motivan la agilidad-respuestas rápidas y flexibles al cambio.
  • Iteraciones pequeñas “timeboxed”.
  • Refinamiento adaptativo y evolutivo de planes y objetivos.

Prácticas y Principios de los Métodos Ágiles

  • Simplicidad.
  • Ligereza.
  • Comunicación.
  • Equipos autodirigidos.
  • Programación sobre documentación.

Manifiesto Ágil y Preferencias de la Gestión Ágil

  • Individuos e interacciones sobre procesos y herramientas.
  • Software funcionando sobre documentación extensiva.
  • Colaboración con el cliente sobre negociación contractual.
  • Respuesta ante el cambio sobre seguir un plan.

Principios del Manifiesto Ágil

  1. Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor.
  2. Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
  3. Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.
  4. Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.
  5. Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo.
  6. El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara.
  7. El software funcionando es la medida principal de progreso.
  8. Los procesos ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
  9. La atención continua a la excelencia técnica y al buen diseño mejora la agilidad.
  10. La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
  11. Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.
  12. A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia.

Objetivos de la Gestión Ágil

  • Valor: Dar el mayor valor posible al producto y en el mercado en el que trabaja. Este valor es directamente proporcional a la respuesta que puede ofrecer en innovación y flexibilidad.
  • Reducción del tiempo de desarrollo: Es una fortaleza competitiva muy importante en determinados sectores. Las estrategias usadas en la gestión ágil para producir resultados en menos tiempo son el solapamiento de las fases de desarrollo y la entrega temprana de los primeros incrementos funcionales.
  • Agilidad: Capacidad para adaptar el curso del desarrollo a la evolución de los requisitos y a las circunstancias del entorno.
  • Fiabilidad: El objetivo es el valor del resultado y el tiempo de salida al mercado, esto es, lograr entregar de forma repetible valor innovador.

Fases del Desarrollo Ágil (Estructura del Desarrollo Ágil)

  1. Concepto (Visión): Se crea la visión del producto que se quiere obtener, se decide y selecciona al equipo de desarrollo. Esto es, se necesita tener la visión de lo que se quiere, conocer el alcance del producto y compartir esta información con todos los integrantes del equipo.
  2. Especulación: En esta fase se determinan las limitaciones impuestas por el entorno de negocio (costos y agendas principalmente) y se realiza la primera especulación de lo que se puede producir. Esta fase se repite en cada iteración del desarrollo y consiste en:
    • Desarrollo/revisión de los requisitos generales del producto.
    • Desarrollo de una lista de funciones esperadas.
    • Construcción de un plan de entregas: fechas de las versiones, hitos e iteraciones.
    • Estrategias o planes para la gestión de riesgo.
  3. Exploración: Se desarrollan las funcionalidades de un incremento del producto, que han sido determinadas en la fase anterior.
  4. Revisión: El equipo y los usuarios revisan las funcionalidades construidas hasta ese momento. Trabajan y operan con el producto real para determinar su alineación y dirección con el objetivo.
  5. Cierre: Al llegar a la fecha de entrega de una versión de producto, se obtiene el producto esperado.

Tipos de Procesos en el Desarrollo de Software

  • Procesos definidos (o prescriptivos): Tienen un conjunto ordenado de actividades predefinidas a seguir durante el desarrollo.
  • Procesos empíricos (promovidos por los métodos ágiles): Usados para dominios inestables y de alto cambio. En lugar de sustentarse en muchas actividades, se basan en mediciones frecuentes y respuestas dinámicas a eventos variables.

Los creadores de algunos métodos ágiles reconocen que factores humanos como el disfrute, la simplicidad, el estímulo a corto plazo, etc., son ingredientes para crear un suelo fértil para la auto-disciplina sostenible en las prácticas. Por ejemplo, el desarrollo dirigido por pruebas revela sus ventajas rápidamente a aquellos que lo usan. Los desarrolladores disfrutan la “pequeña victoria” de pasar una prueba y la clarificación en el diseño que viene a partir de escribir las pruebas antes de escribir el código que será probado.

Deja un comentario