lunes, 28 de septiembre de 2020

Modelos Ágiles

 

Modelos Ágiles

Las metodologías ágiles son métodos de desarrollo de software en los que las necesidades y soluciones evolucionan a través de una colaboración estrecha entre equipos multidisciplinarios. Se caracterizan por enfatizar la comunicación frente a la documentación, por el desarrollo evolutivo y por su flexibilidad.


Características

- Basadas en heurísticas provenientes de prácticas de producción de código

- Especialmente preparados para cambios durante el proyecto - Impuestas internamente (por    el equipo) - Proceso menos controlado, con pocos principios

- No existe contrato tradicional o al menos es bastante flexible

- El cliente es parte del equipo de desarrollo

- Grupos pequeños (<10 integrantes) y trabajando en el mismo sitio

- Pocos artefactos

- Pocos roles

- Menos énfasis en la arquitectura del software

Descripción

Un proceso es ágil cuando el desarrollo de software es:

  • Incremental. Entregas pequeñas de software, con ciclos rápidos.
  • Cooperativo. Cliente y desarrolladores trabajan juntos constantemente con una cercana comunicación. 
  • Sencillo. El método en sí mismo es simple, fácil de aprender y modificar. Está bien documentado y es adaptable. Permite realizar cambios de último momento.    
    Sus elementos claves son:
  •      Poca documentación.
  •      Simplicidad. 
  •          Análisis como una actividad constante. 
  •      Diseño evolutivo. 
  •      Integraciones 
  •      Testeos diarios

Ventajas

  • El cliente, si quiere colaborar, puede observar cómo va avanzando el proyecto, y por supuesto, opinar sobre su evolución gracias a las numerosas reuniones que realiza el equipo con el cliente. Esto le da tranquilidad.
  • Su ciclo de vida es simple y fácil de entender: captura de requisitos, diseño de la solución, configuración / desarrollo, test, implementación y mantenimiento.
  • Su aproximación es “disciplinada”: Basada en una definición exhaustiva del trabajo, una revisión sistemática en hitos y énfasis en el control y la documentación del proyecto. 
  •  Importancia de la simplicidad al eliminar trabajo innecesario
  • Atención continua a la excelencia técnica y al buen diseño.
  •  Mejora continua de los procesos y el equipo de desarrollo.
  • Evita malentendidos de requerimientos entre el cliente y el equipo.
  •  Cada componente del producto final ha sido probado y satisface los requerimientos.

Desventajas

  • Problemas derivados de la comunicación oral. No hace falta decir que algo que está escrito “no se puede borrar”, en cambio, algo dicho es muy fácil crear ambigüedad.
  •  Fuerte dependencia de las personas.
  •  Falta de reusabilidad derivada de la falta de documentación
  •  Restricciones en cuanto a tamaño de los proyectos
  • Problemas derivados del fracaso de los proyectos ágiles. Si un proyecto ágil fracasa no hay documentación o hay muy poca; lo mismo ocurre con el diseño. La comprensión del sistema se queda en las mentes de los desarrolladores. 
  • Cuanto más tarde se descubren este tipo de faltas de alineamiento entre necesidades y soluciones aportadas, más complejo  es reconducirlas y más tiempo se tarda en hacerlo.
  • Fuerte dependencia de las personas. Como se evita en lo posible la documentación y los diseños convencionales, los proyectos ágiles dependen críticamente de las personas.
  • En consecuencia, en este tipo de proyectos la planificación puede ser engañosa y se corre el riesgo de que aparezca lo que se conoce como “deuda técnica”.
  • Cambios. Los modelos de datos son “pesados” y no pueden cambiarse así como así solo porque el cliente que ira incorporar más funciones al sistema.
  • Problemas derivados del fracaso de los proyectos ágiles. Si un proyecto ágil fracasa no hay documentación o hay muy poca; lo mismo ocurre con el diseño. La comprensión del sistema se queda en las mentes de los desarrolladores.

Como funciona

    El término general desarrollo ágil de software se refiere a métodos y prácticas de desarrollo de software que brindan soluciones a través de la colaboración entre equipos auto-organizados y multifuncionales. 

     Los métodos ágiles de desarrollo de software promueven:

  •     Gestión disciplinada del proyecto.
  •     Filosofías de liderazgo que fomentan el trabajo en equipo, la auto-organización y la responsabilidad.
  •     Buenas prácticas de ingeniería que permiten una entrega rápida de software de alta calidad
  •     Un enfoque empresarial que alinea las necesidades de sus clientes con los objetivos de su empresa. 
  •     Cualquier proceso de desarrollo que alinee su metodología con el Manifiesto Ágil es un desarrollo ágil.

El Manifiesto Ágil  

   En febrero de 2001, diecisiete profesionales del software con mentalidad independiente se reunieron para acuñar El Manifiesto Ágil. Esta proclamación del desarrollo ágil de software destaca los valores y principios fundamentales que los programadores deben cumplir al crear software ágil.

4   Valores del Manifiesto Ágil

  •      En lugar de centrarse principalmente en procesos y herramientas, los programadores deberían prestar más atención a los individuos y las interacciones. 
  •       Un software en funcionamiento se valora más que una documentación completa del proceso de desarrollo. 
  •       La negociación del contrato es menos vital que la colaboración del cliente
  •       En lugar de seguir estrictamente un plan, los programadores deben responder a cualquier cambio que se produzca   

      12 Principios del Manifiesto Ágil

1.    Satisfacer al cliente mediante la entrega temprana y continua de un software valioso.

2.  Acoger con beneplácito los requisitos cambiantes, incluso en la etapa tardía en el desarrollo.

3.  Entregar el trabajo del software con la mayor frecuencia posible y en un plazo de tiempo más corto.

4.    Los empresarios y desarrolladores deben trabajar juntos a lo largo de todo el proyecto.

5.    Construir proyectos en torno a personas motivadas.

6.    El método más eficiente y efectivo para transmitir información al equipo de desarrollo y dentro del mismo es la conversación cara a cara.

7.    La medida principal del progreso es un software en funcionamiento.

8.    Los procesos ágiles promueven el desarrollo sostenible.

9.    La atención continua a la excelencia técnica y al buen diseño aumenta la agilidad.

10.  La simplicidad, el arte de maximizar la cantidad de trabajo no realizado, es esencial.

11.  Las mejores arquitecturas, requisitos y diseños surgen de equipos auto-organizados.

12.  A intervalos regulares, el equipo reflexiona sobre cómo ser más eficaz, luego sintoniza y ajusta su comportamiento en consecuencia.

     

     Metodologías Ágiles 

     Cuando se trata de adherirse a estos valores y principios del manifiesto, los métodos Scrum y XP son los dos métodos comúnmente más utilizados.

     Scrum

    Este es un marco de gestión de proyectos que pone más énfasis en el progreso iterativo, el trabajo en equipo y la responsabilidad.

     Programación extrema (XP)

     El marco de desarrollo de software XP tiene como objetivo mejorar la calidad del software y la capacidad de respuesta a los requisitos cambiantes de los clientes. Trabaja para producir software de alta calidad y aumentar la calidad de vida de los miembros del equipo.

   La metodología Ágil trabaja dando protagonismo a la entrega de un software en funcionamiento de forma iterativa e incremental, en lugar de crear requisitos rígidos a través de una gran planificación inicial. A cada fase del proyecto de desarrollo de software se le asigna un período de tiempo (sprint) en el que la tarea debe completarse. La tarea se considera completa una vez transcurrido el período asignado.

 

No hay comentarios.:

Publicar un comentario

Importancia de la Calidad en el desarrollo de Software

Qué papel tiene la calidad en el desarrollo de aplicaciones de software. la calidad del software es “la concordancia con los requisitos func...