El proceso del desarrollo ágil

            El modelado ágil aprovecha la oportunidad de crear modelos que pueden ser lógicos, como los dibujos de los sistemas, o maquetas de tamaño natural, Un proceso ordinario de modelado ágil podría ser el siguiente:

  1. Escuchar las historias de los usuarios por medio del cliente.
Fuente: Comment, 2014

2. Crear historias de usuarios con base en el modelo lógico. Las prácticas básicas están interrelacionadas con los recursos, actividades y valores del modelado ágil.

Fuente: Kendall&Kendall, 2011

3. Dibujar un modelo del flujo de trabajo lógico para apreciar las decisiones de negocios representadas en la historia de un usuario.

4. Usar la retroalimentación de los prototipos y los diagramas del flujo de trabajo lógico para desarrollar el sistema hasta crear un modelo físico de datos.

El modelado ágil se enfoca directamente en la palabra ágil. Ágil implica capacidad de maniobrar. Los sistemas actuales, en especial los que están basados en Web, imponen demandas gemelas: entregar el software tan pronto como sea posible y seguir mejorándolo para agregar nuevas características. El analista de sistemas necesita tener la capacidad y los métodos para crear aplicaciones dinámicas, sensibles al contexto, escalables y evolutivas. El modelado ágil como tal es un método que adopta el cambio.

Fuente: Mota, 2017

Modelo de Metodología Ágil utilizados más para desarrollo del proceso ágil

SCRUM los equipos de desarrollo empiezan el proyecto con un plan de alto nivel que se puede modificar al instante, a medida que avanza el “juego”. Los miembros del equipo de desarrollo de sistemas deben tener en cuenta que el éxito del proyecto es lo más importante y que su éxito individual es secundario. El líder del proyecto tiene sólo un poco de influencia sobre los detalles.

Fuente: School, 2019

Lecciones aprendidas del modelado ágil

La primera lección es que las entregas pequeñas permiten a los sistemas evolucionar. Las actualizaciones de los productos se realizan con frecuencia y los cambios se incorporan con rapidez. De esta forma, el sistema puede crecer y expandirse en formas útiles para el cliente.

La segunda lección es que la programación en pareja mejora la calidad en general. Aunque este tipo de programación es controversial, en definitiva, promueve otras actividades positivas necesarias en el desarrollo de sistemas: una buena comunicación, lograr identificarse con el cliente, enfocarse en los aspectos más valiosos del proyecto

primero, evaluar todo el código a medida que se desarrolla e integrar el nuevo código una vez que pase las pruebas con éxito.

La tercera lección es que los clientes en el sitio son benéficos tanto para la empresa como para el equipo de desarrollo ágil. Los clientes actúan como una referencia preparada y una comprobación de la realidad; además siempre se mantiene el enfoque del diseño del sistema a través de su presencia.

La cuarta lección es que la semana de trabajo de 40 horas mejora la efectividad. Incluso los desarrolladores más resistentes son susceptibles a errores y agotamiento si trabajan demasiado por un periodo muy extenso. Sin embargo, cuando el equipo de desarrollo está unido, cada momento cuenta.

La quinta lección que obtenemos de la metodología ágil es que los recursos y las actividades equilibradas apoyan los objetivos del proyecto.

La última lección que obtenemos de las metodologías de modelado ágil es que los valores ágiles son imprescindibles para el éxito. Es esencial para el éxito en general del proyecto que los analistas adopten sin reservas los valores de comunicación, simpleza, retroalimentación y valentía en todo el trabajo que realicen.

Desarrollo Rápido de Aplicaciones

Es una metodología orientada a objetos para el desarrollo de sistemas denominado RAD (Rapid Application Development) el cual es un proceso de desarrollo de software, este método comprende la construcción de prototipos y el uso de herramientas CASE.

Esta metodología incluye el uso de técnicas de modelado de procesos y datos, usa evolución de prototipos y que al final se convertirán en el producto final, paralelamente a ello se producen entrevistas cortas de trabajo entre desarrolladores, diseñadores, usuarios.

El objetivo de otorgar resultados rápidos se trata de un enfoque que está destinado a proporcionar un excelente proceso de desarrollo, pero, además, está diseñado para aumentar la viabilidad de todo el procedimiento de desarrollo de software para resaltar la participación de un usuario activo.

Fuente: iWorth.org

Fases de RAD

  • Planeación de los requerimientos

Los usuarios y analistas se reúnen para identificar los objetivos de la aplicación o el sistema, y para identificar los requerimientos de información que surgen a partir de estos objetivos. En esta fase se requiere una participación intensa de ambos grupos, y no consiste sólo en la firma de una propuesta o documento, es probable que se involucren usuarios de distintos niveles de la organización.

La orientación en esta fase es hacia la solución de problemas de negocios. Aunque la tecnología de información y los sistemas puedan incluso impulsar algunas de las soluciones propuestas, el enfoque siempre permanecerá en alcanzar los objetivos de negocios.

  • Taller de diseño RAD:

La modelación de datos y procesos se lleva a cabo a través de talleres construyendo paralelamente prototipos funcionales que se van probando, detallando, perfeccionando con el mismo usuario, siempre ayudados por herramientas CASE.

Durante el taller de diseño RAD, los usuarios responden a los prototipos funcionales reales y los analistas

refinan los módulos diseñados.

  • Implementación:

Tan pronto como se llega a un consenso sobre estos aspectos, y se crean y refinan los sistemas, se prueban los nuevos sistemas o las nuevas partes de los mismos y después se introducen a la organización. Como RAD se puede usar

para las nuevas aplicaciones de comercio electrónico para las cuales no hay un sistema anterior, a menudo no hay necesidad ni posibilidad de ejecutar los sistemas anterior y nuevo en paralelo antes de la implementación.


Fuente: Kendall, K. & (1988).Análisis y diseño de sistemas

En la anterior figura se muestra un esquema de cómo es que están constituidas las fases de RAD y como es el flujo de información.

Se puede notar que en la fase de taller de diseño RAD es el centro de las tres fases y es muy importante porque allí es como de diseñan y construyen los sistemas con ayuda de los usuarios.

Comparación entre RAD y SDLC

Hay que tener en cuenta que el propósito primordial de RAD es acortar el SDLC y de esta forma responder más rápido a los requerimientos dinámicos de información de las organizaciones. El SDLC requiere un enfoque más metódico y sistemático que asegure la integridad y precisión, además tiene como intención la creación de sistemas que integren bien a los procedimientos de negocios estándar y a la cultura.

En la siguiente figura veremos 2 esquemas que se puede notar las diferencias que tiene estos 2 modelos en el desarrollo de aplicaciones.


Fuente: Kendall, K. & (1988).Análisis y diseño de sistemas

Fuente: Kendall, K. & (1988).Análisis y diseño de sistemas

Comparación entre el modelado ágil y los métodos estructurados

Hoy en día en muchas organizaciones adoptan un modelo para poder llegar a cumplir los objetivos propuestos y evitar el mayor número  de problemas, riesgos o amenazas para ello es obligatorio que el conjunto de empleados que conforman la organización tenga el conocimiento y las herramientas necesarias para poder usar de manera adecuada el sistema que esta implementado, cumplir estos requisitos los analistas de las organizaciones hacen un previo análisis para obtener las conclusiones necesarias utilizando diferentes técnicas y realizando una comparación entre los dos modelos  para obtener el más convincente en este caso destacamos El Modelado Ágil y Métodos Estructurados.

Modelado Ágil

El analista debe reconocer que algunas veces las organizaciones se benefician mejor de una metodología alternativa esto se da porque la metodología estructurada no se acopla a lo que el proyecto del sistema requiere. El modelado ágil se basa en valores, principios y practicas básicas. Las metodologías ágiles nacen como respuesta a los problemas que se presentan en las metodologías tradicionales y se basa en dos aspectos fundamentales, retrasar las decisiones y la planificación adaptativa. las metodologías están basadas en adaptabilidad de los procesos de desarrollo. Las metodologías ágiles ven más importante la capacidad de adaptarse a los cambios que el seguir un plan estricto de desarrollo.

Fuente: Northware

Métodos Estructurados

Este método busca siempre llevar una documentación exhaustiva de todo el proyecto y en cumplir con un plan de proyecto al pie de la letra, definido todo esto, en la fase inicial del desarrollo del proyecto. Otra de las características importantes dentro de este las tradicionales, es el alto costos que significaría realizar un cambio a nuestro proyecto y la falta de flexibilidad en proyectos donde el entorno es cambiante. Las metodologías tradicionales centran su atención en la documentación, planificación y procesos. El modelo tiene siete fases del desarrollo del sistema que son:

Fuente: Yourdon, E. (1982). Analisis Estructurado . México : PRENTICE HALL HISPANOAMERICANA S.A.

Diferencias entre Modelado Ágil y Métodos Estructurados 

Modelado Ágil Métodos Estructurados
Están preparadas para cambios durante el proyecto. Son poco flexibles a los cambios.
Proceso menos controlado, con pocos principios. Proceso mucho más controlado, con numerosas normas.
No existe contrato tradicional o al menos es bastante flexible. Existe un contrato prefijado.
El cliente es parte activa en el proceso de desarrollo. El cliente interactúa con el equipo solo mediante reuniones de entregas.
Grupos pequeños, 10 integrantes o menos y trabajando en el mismo sitio en el cual todos tienen conocimiento sobre todo el proceso de desarrollo. Grupos grandes y posiblemente distribuidos donde a cada integrante se le asignan tareas específicas.
Menos énfasis en la arquitectura del software. La arquitectura del software es esencial y se expresa mediante modelos.

Ciclo de vida de las metodologías tradicionales y agiles

Fuente: iWith.org

Ventajas y Desventajas de los Modelos Estructurados

Ventajas

  1. Centran su atención en llevar una documentación exhaustiva de todo el proyecto.
  2. Llevan un plan de proyecto.
  3. Se definen las etapas claramente definiendo los roles.

Desventajas

  1. Altos costos al implementar un cambio
  2. No ofrecer una buena solución para proyectos donde el entorno es volátil.
  3. Ejecuta las etapas una sola vez, lo que se define en cada etapa es inamovible y hasta que no finaliza con éxito una etapa no se pasa a la siguiente
  4. El usuario no ve el producto hasta el final.

Ventajas y Desventajas de los Modelado Ágil

Ventajas

  1. Rápida respuesta a los cambios.
  2. Intervención del cliente en el proceso.
  3. Entregas del producto a intervalos.
  4. Eliminación de tareas innecesarias.

Desventajas

  1. Fuerte dependencia de los líderes
  2. Falta de documentación.
  3. Soluciones erróneas en etapas largas