Revista Tecnología

Introducción a las Metodologías Ágiles

Publicado el 14 junio 2015 por Instintobinario

Hoy voy a hablaros sobre unas metodologías para desarrollar software. Se trata de las metodologías ágiles o el desarrollo ágil.

Introducción

En los años 80 y principios de los 90 existía la opinión general de que la mejor forma de desarrollar software era planificando cuidadosamente el proyecto y utilizando métodos de análisis y diseño rigurosos. Sin embargo esta opinión provenía de los ingenieros implicados en el desarrollo de sistemas muy grandes y complejos. Estos enfoques, vamos a llamarlos pesados, dejan de ser efectivos si los utilizamos en sistemas de tamaño pequeño y medio, ya que el esfuerzo invertido es demasiado grande, hasta tal punto que se pasa más tiempo planificando cómo se debía desarrollar el sistema que programando y realizando las pruebas. Muchos desarrolladores, descontentos que estos métodos pesados, propusieron en los 90 métodos ágiles. Estos métodos están pensados para entregar software funcional de forma rápida a los clientes. Son especialmente útiles para sistemas en los que los requisitos cambian rápidamente durante el proceso de desarrollo, ya que una vez que se le ha entregado al cliente algo que funciona, éste puede proponer que se incluyen nuevos requisitos en iteraciones posteriores (cada entrega funcional cierra una iteración). Algunas metodologías ágiles son: programación extrema (Beck, 1999); Serum (Schwaber y Beedle, 2001); Cristal (Cockburn, 2001); Scrum (Ikujiro Nonaka e Hirotaka Takeuchi).

Metodologías Ágiles, Cristal

Funcionamiento de la metodología ágil Cristal.

Principios de las metodologías ágiles

Estos principios son a veces difíciles de realizar, por eso explico también los problemas que puede haber para que no se cumpla el principio.

  • Participación del cliente: Los clientes deben estar fuertemente implicados en todo el proceso de desarrollo. Su papel es proporcionar y priorizar nuevos requisitos del sistema y evaluar las iteraciones. Sin embargo, el éxito depende de que el cliente esté dispuesto y puedo pasar tiempo con el equipo de desarrollo.
  • Entrega incremental: El software se desarrolla en incrementos o iteraciones, donde el cliente especifica los requisitos a incluir en cada incremento.
  • Personas, no procesos: Se deben reconocer y explotar las habilidades del equipo de desarrollo. Se les debe dejar desarrollar sus propias formas de trabajar, sin procesos formales. Esto puede ser un problema si los miembros del equipo no tienen la personalidad apropiada y eso resulte en que no se relacionen adecuadamente con los otros miembros del equipo.
  • Aceptar el cambio: Se debe contar con que los requisitos del sistema cambian, por lo que el sistema se desarrollará para dar cabida a esos cambios.
  • Mantener la simplicidad: El equipo de desarrollo se debe centrar en la simplicidad tanto en el software a desarrollar como en el proceso de desarrollo. Donde sea posible, se trabaja activamente para eliminar la complejidad del sistema. El problema de esto es que lleva tiempo, y si existe presión por las entregas puede que no haya tiempo para realizar estas tareas.

Conclusiones

Si bien es cierto que existe cierta controversia con el uso de este tipo de metodologías, en parte debido a que los partidarios de las mismas las han promocionado tendiendo a pasar por alto sus deficiencias, son las metodologías más recomendables para desarrollar software de pequeño y mediana tamaño en los que los requisitos pueden cambiar rápidamente a lo largo del proceso de desarrollo.

El artículo Introducción a las Metodologías Ágiles apareció por primera vez en Instinto Binario.


Volver a la Portada de Logo Paperblog

Revista