Desarrollo de Software Adaptable

Las metodologías tradicionales para el desarrollo de software imponen un proceso disciplinado con el objetivo de hacer el trabajo más predecible, eficiente y planificado.

Han estado presente durante mucho tiempo y la crítica más frecuente ha estas metodologías es que son burocráticas.

Como una reacción a las fallas de las metodologías tradicionales y a la numerosa cantidad de pasos que se debe seguir, han surgido las metodologías ágiles que están  basadas en la adaptabilidad, más que en el comportamiento predictivo.

El desarrollo de software adaptable (Adaptive Software Development - ASD) es una metodología de desarrollo impulsado por Jim Highsmith y Sam Bayer que hace énfasis en aplicar las ideas que se originaron en el mundo de los sistemas complejos, adaptación continua del proceso al trabajo.

Entre sus principales características tenemos:
 
Iterativo
Orientado a los componentes de software (la funcionalidad que el producto va a tener, características, etc) más que a las tareas en las que se va a alcanzar dicho objetivo.
 
Tolerante a los cambios.
La revisión de los componentes sirve para aprender de los errores y volver a iniciar el ciclo de desarrollo

A diferencia de los ciclos de vida de metodologías tradicionales el ciclo de vida adaptable se basa en los siguientes estados o procesos:
  1.     Especulación.- Es donde se inicia y se planifican las características del Software.
  2.     Colaboración.- Se desarrollan las características del software.
  3.     Aprendizaje.-  Se revisa la calidad, y si no se tiene errores se entrega al cliente.
Ventajas
  • La tercera fase del ciclo de vida, revisión de los componentes, sirve para aprender de los errores y volver a iniciar el ciclo de desarrollo.
  • Apunta hacia el Rapid Application Development (RAD),  el cual enfatiza velocidad de desarrollo para crear un producto de alta calidad, bajo mantenimiento involucrando al usuario lo más posible.
  • Utiliza información disponible acerca de cambios para mejorar el comportamiento del software.
  • Promulga colaboración, la interacción de personas.
  • Anticipa cambios y trata automáticamente con ellos dentro de un programa en ejecución, sin la necesidad de un programador.

Desventajas
  • Aunque el ciclo entre el aprendizaje y la especulación es bueno permitiéndonos entregar productos con alta calidad, la prolongación de dicho ciclo por errores o cambios que no son detectados en reuniones anteriores afecta tanto a la calidad del producto como a su costo total.
  • Dado a que es una metodología ágil implica no realizar procesos que son requeridos en las metodologías tradicionales o por lo menos no realizarlos en procesos diferentes, lo cual implica que empresas grandes las cuales necesitan llevar un mayor control a procesos y personas, tener tareas asignadas a un estado o proceso especifico, y en las cuales dicho incremento de procesos no afectan en gran medida al costo final del producto, para dichas empresas el elegir una metodología tradicional resulta mucho mas rentable tanto por el gran volumen de personal, de productos, y de costos que se manejan y para los cuales se tendrá un mayor control.

Usado de manera adecuada esta metodología (Adaptive Software Development) se puede alcanzar excelentes resultados pero debido a las características que maneja es mas factible usarla para proyectos pequeños y medianos, para adquirir practica y experiencia para así poder llegar al Rapid Application Development (RAD) en donde tendremos productos de alta calidad.

No hay comentarios.:

Publicar un comentario