Ingeniería de Software | Modelos de desarrollo ágiles

En días anteriores, el modelo Iterative Waterfall era muy popular para completar un proyecto. Pero hoy en día los desarrolladores enfrentan varios problemas al usarlo para desarrollar software. Las principales dificultades incluyeron el manejo de las requests de cambio de los clientes durante el desarrollo del proyecto y el alto costo y tiempo requerido para incorporar estos cambios. Para superar estos inconvenientes del modelo Waterfall, a mediados de la década de 1990 se propuso el modelo Agile Software Development. 

El modelo ágil se diseñó principalmente para ayudar a un proyecto a adaptarse rápidamente a las requests de cambio. Entonces, el objetivo principal del modelo Agile es facilitar la finalización rápida del proyecto. Para realizar esta tarea se requiere agilidad. La agilidad se logra adaptando el proceso al proyecto, eliminando actividades que pueden no ser esenciales para un proyecto específico. Además, se evita todo lo que sea una pérdida de tiempo y esfuerzo. 

En realidad, el modelo Agile se refiere a un grupo de procesos de desarrollo. Estos procesos comparten algunas características básicas pero tienen ciertas diferencias sutiles entre ellos. A continuación se proporcionan algunos modelos Agile SDLC: 

  • Cristal
  • Atern
  • Desarrollo basado en características
  • Melé
  • Programación extrema (XP)
  • desarrollo esbelto
  • Proceso unificado

En el modelo Agile, los requisitos se descomponen en muchas partes pequeñas que se pueden desarrollar de forma incremental. El modelo ágil adopta el desarrollo iterativo. Cada parte incremental se desarrolla en una iteración. Cada iteración está diseñada para ser pequeña y fácilmente manejable y puede completarse en solo un par de semanas. A la vez, se planifica, desarrolla y despliega una iteración para los clientes. No se hacen planes a largo plazo. 

El modelo ágil es la combinación de modelos de procesos iterativos e incrementales. Los pasos involucrados en los modelos SDLC ágiles son: 

  • recopilación de requisitos
  • Análisis de requisitos
  • Diseño
  • Codificación
  • Examen de la unidad
  • Test de aceptación

El tiempo para completar una iteración se conoce como Time Box. Time-box se refiere a la cantidad máxima de tiempo necesaria para entregar una iteración a los clientes. Por lo tanto, la fecha de finalización de una iteración no cambia. Aunque el equipo de desarrollo puede decidir reducir la funcionalidad entregada durante un Time-box si es necesario para entregarla a tiempo. El principio central del modelo Agile es la entrega de un incremento al cliente después de cada Time-box. 

Principios del modelo Agile: 

  • Para establecer un contacto cercano con el cliente durante el desarrollo y obtener una comprensión clara de los diversos requisitos, cada proyecto Agile suele incluir un representante del cliente en el equipo. Al final de cada iteración, las partes interesadas y el representante del cliente revisan el progreso realizado y vuelven a evaluar los requisitos.
  • El modelo ágil se basa en la implementación de software en funcionamiento en lugar de una documentación completa.
  • Entrega frecuente de versiones incrementales del software al representante del cliente en intervalos de pocas semanas.
  • Las requests de cambio de requisitos del cliente se fomentan y se incorporan de manera eficiente.
  • Se enfatiza en tener miembros de equipo eficientes y se le da más importancia a mejorar la comunicación entre ellos. Se sabe que se puede lograr una mejor comunicación entre los miembros del equipo de desarrollo a través de la comunicación cara a cara en lugar de mediante el intercambio de documentos formales.
  • Se recomienda que el tamaño del equipo de desarrollo se mantenga pequeño (de 5 a 9 personas) para ayudar a los miembros del equipo a participar de manera significativa en la comunicación cara a cara y tener un entorno de trabajo colaborativo.
  • El proceso de desarrollo ágil generalmente implementa la programación en pares. En la programación en pareja, dos programadores trabajan juntos en una estación de trabajo. Uno hace la codificación mientras que el otro revisa el código a medida que se ingresa. Los dos programadores cambian sus roles cada hora más o menos.

ventajas:  

  • Trabajar a través de la programación en pares produce programas compactos bien escritos que tienen menos errores en comparación con los programadores que trabajan solos.
  • Reduce el tiempo total de desarrollo de todo el proyecto.
  • Los representantes de los clientes tienen la idea de productos de software actualizados después de cada iteración. Por lo tanto, es fácil para él cambiar cualquier requisito si es necesario.

Desventajas:  

  • Debido a la falta de documentos formales, crea confusión y las decisiones importantes tomadas durante las diferentes fases pueden ser malinterpretadas en cualquier momento por diferentes miembros del equipo.
  • Debido a la ausencia de la documentación adecuada, cuando el proyecto se completa y los desarrolladores se asignan a otro proyecto, el mantenimiento del proyecto desarrollado puede convertirse en un problema.

Publicación traducida automáticamente

Artículo escrito por SAYAN KUMAR PAL y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *