Metodología Agile

Últimamente, se habla mucho de desarrollos ágiles, y de la metodología “Agile Development”, pero, qué es esto? en este post, quisiera presentar una introducción a la metodología Agile. Según la wikipedia:

Se entiende como Desarrollo ágil de software a un paradigma de Desarrollo de Software basado en procesos ágiles. Los procesos ágiles de desarrollo de software, conocidos anteriormente como metodologías livianas, intentan evitar los tortuosos y burocráticos caminos de las metodologías tradicionales enfocándose en la gente y los resultados.

Esto a que se debe? a que en un principio los desarrollos de software seguían las normas de la ingeniería clásica, lo cual resultaba como un completo desastre, ya que no es comparable hacer un puente, que diseñar y poner en funcionamiento el sistema de facturación de una empresa, a que no? El software, o al menos, su desarrollo, se ha de definir sobre unas reglas que no tienen nada que ver con las anteriores, provocando retrasos y fallos graves.

Por esta razón, los métodos clásicos, muy estrictos y cerrados, tuvieron que ser abandonados a favor de otras metodologías llamadas livianas, agile es una de ellas, aunque también nos podemos encontrar con otras como Scrum, o XP (Programación Extrema), aunque suena divertido, no tiene nada que ver con picar código encima de una montaña, o hacer un diagrama de flujo haciendo rafting, ok?, estos procesos se merecen un tema entero.

En la ingeniería clásica, tu redactas un proyecto, paso a paso, y lo llevas a cabo mediante un plan, se calcula un presupuesto y una duración, para posteriormente llevarse a cabo, por ejemplo en una casa, cimientos, estructura externa, canalización, electricidad, estructura interna, etc… todo en un órden, con lo cual, cuando una fase termina comienza la siguiente sin que exista relación aparente entre ellas.

Esto, aplicado al software viene a ser Análisis, Diseño, Implementación, y Pruebas, sin embargo tiene fallos, ya que un análisis erróneo, que suele suceder, puede dar como resultado que un proyecto se vaya al traste, esta metodología se enseña actualmente en las universidades, con lo cual podemos ver que la base teórica no es errónea en absoluto, la cuestión es que el desarrollo ágil, es, digamos, mejor desde el punto de vista práctico.

En los proyectos de desarrolo ágil, de alguna manera se realizan todas las fases al mismo tiempo, con lo cual todos los elementos de un equipo están implicados desde el primer momento, tanto los programadores, los diseñadores, los ingenieros, publicistas, contables, etc, para poder personalizar la herramienta de cara a lo que quiera el cliente, y conseguir así concenso entre todos los grupos, un mayor feedback, (al contable se le puede ocurrir una idea que el programador ni imaginaba).

El otro elemento importante en este aspecto es el cliente, en un desarrollo clásico, el cliente recibe un producto final, completamente cerrado basado en las exigencias iniciales, que pueden haber quedado claras o no, esto es peligroso, ya que en el momento de la entrega pueden ocurrir cosas del estilo “Lo que yo quería decir era…”

Con esta metodología, el cliente, cada cierto tiempo, va recibiendo una parte del producto, con lo cual puede evaluar su desarrollo, aportar sus ideas, o desaprobar una función que, a tiempo, puede ahorrar dinero y esfuerzo a la empresa desarrolladora.  Esto lo estamos viendo en el mundo real, cuando el gigante Google, lanza sus servicios en fase beta, nos hace formar parte de esta metodología de desarrollo, para que escribamos en blogs, foros y demás nuestras experiencias, que de cara a las versiones finales, serán escuchadas de una u otra manera.

Como característica global, cada poco tiempo se hace un análisis del estado global del proyecto, con lo cual, se puede ver que en la segunda semana, hay características que no se podrán implementar en un proyecto que dura 6 meses, y se pueden tomar decisiones como retrasar el proyecto o eliminar características, algo impensable en una metodología clásica, basada en fases.

Espero que esto os ayude a comprender a qué se refiere la gente cuando habla de metodologías ágiles, y desarrollo ágil de software, aunque parezca caótico, es una manera muy eficaz de llevar a cabo un proyecto, y que actualmente se emplea en muchas empresas del gremio.

Para más información:

Wikipedia: Qué es agile, y qué tipos hay.

Desarrollo ágil de software: Una guía muy interesante, donde he tomado muchos datos para este post.

Un pensamiento en “Metodología Agile

  1. Pingback: Hablando de metodologías con los chicos de Mad.Nug | [email protected]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s