Desarrollo Ágil (I): Introducción

Todo aquel que se dedique al desarrollo de software sabrá que no es un campo ni fácil ni simple y, que en cuanto un proyecto empieza a tomar grandes dimensiones el hacerlo en modalidad ASM (a salto de mata) no es viable. Es más, en cualquier tipo de empresa, este método es inviable ya que se deben perseguir unos plazos fijos, no superar unos costes establecidos y, por supuesto, entregar un producto de calidad.

Cuando hablamos del desarrollo de software y de todos los procesos implicados en él, hablamos de algo complejo y difícil de manejar salvo que se tenga algún tipo de metodología. Por esta razón, desde que se empezó con el desarrollo de software, se han intentado crear diferentes métodos, algunos más afortunados que otros, para manejar todas las complejidades que se dan en el proceso de desarrollo de software.

Inicialmente, la mayoría de los métodos que aparecieron estaban o bien enfocados a la documentación y generar entregables ajenos a la tarea de desarrollo para poder controlar en mayor o menor medida la evolución del desarrollo, o estaban enfocados en que los desarrolladores siguieran de forma rígida ciertos procesos que no siempre se adaptaban al tipo de desarrollo y hacían a veces, más compleja o desesperante la tarea del desarrollador.

Frente a estos métodos “tradicionales” o “pesados”, en los últimos años están surgiendo una serie de métodos “ágiles”, que tratan de flexibilizar todos los procesos asociados al desarrollo de una aplicación sin ser el desarrollo propiamente dicho. Estas metodologías ágiles, tratan de centrarse en cuatro puntos básicos:

–       Individuos e iteraciones frente a procesos y herramientas.

–       Software funcionando sobre documentación excesiva.

–       Colaboración con el cliente sobre negociación contractual.

–       Respuesta ante el cambio sobre seguir un plan.

Para el que quiera más información sobre esto, os dejo el enlace al Manifiesto para el desarrollo ágil del software.

Los métodos “tradicionales” han demostrado ser efectivos  y necesarios en proyectos de gran tamaño tanto temporal como a nivel de recursos, pero no son el enfoque más adecuado cuando se trata de proyectos más pequeños y en entornos o sistemas muy cambiantes. La utilización de estos métodos tradicionales en este tipo de entornos provocaba que, en muchas ocasiones, se dejaran de lado las buenas prácticas de ingeniería de software asumiendo con ello riesgos innecesarios. En este tipo de escenarios y situaciones, es donde tienen cabida las metodologías ágiles.

Ejemplos de estas metodologías ágiles son:

–       Scrum

–       Crystal Clear

–       Extreme Programming

–       Adaptative Software Development

–       Feature Driven Development

–       Dynamic Systems Development method

Nos vemos en la próxima entrega.

[Nota] La idea de esta serie de post, será la de introducir lo que es el desarrollo ágil y comentar algunas de sus metodologías.

Desarrollo Ágil (I): Introducción

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.