Teléfono (+34) 91 632 4662 PIDA UN PRESUPUESTO ONLINE

Noticias y Artículos

Ágil vs pesado

El poder ágil frente al pesado. Un poder innato que, con el paso del tiempo, ha ido madurando hasta convertirse en un referente a la hora de construir software. Así es, en mi opinión, como se podría definir rápidamente la agilidad en el desarrollo software sin entrar en detalles donde los términos de esta dualidad fueron acuñados a consecuencia del nacimiento de la metodología ágil.

Las metodologías ágiles nacieron con el propósito de cambiar algunos aspectos del desarrollo pesado, también llamado convencional. Aspectos tan importantes como, no generar mucha documentación en el comienzo sino repartirla durante el desarrollo y la flexibilidad ante cambios, fueron los que decantaron a muchos desarrolladores a emplear el modelo ágil.

El no generar mucha documentación en el comienzo no implica gestionar un proyecto sin documentación. En todo proyecto basado en metodologías ágiles, al igual que en pesadas, se genera documentación tal como:

  • Especificación de requisitos: se recogen y analizan las inquietudes técnicas del cliente. Se detallan los casos de uso desde el punto de vista de actores y funcionalidades
  • Prototipos de UI: se realizan mapas de navegabilidad de cada una de las partes que implican el proyecto
  • Plan de gestión del proyecto: aunque depende del método utilizado (ver métodos más abajo) en todo proyecto se gestiona los miembros que lo llevarán a cabo e interacciones de que va a constar: número, organización y estimación temporal de cada una de ellas
  • Diagramas UML y modelos conceptuales: se realizan el modelo Entidad-Relación, diagramas de estructura como el diagrama de clases, diagramas de comportamiento como el diagrama de estados y diagramas de interacción como el diagrama de secuencia
  • Gestión de cambios: Al principio de cada interacción se realizan los cambios de la anterior, planificados inicialmente en la organización del plan de gestión del proyecto

Generar mucha documentación al principio sólo hace retrasar el desarrollo, ya que hay que emplear bastante tiempo en su redacción, con la consecuencia que pueda sufrir cambios en un futuro. La poca flexibilidad ante cambios, tanto en la documentación como durante el desarrollo del proyecto, fue una piedra en el camino de los desarrolladores y para el cliente, debido a la pérdida de tiempo y esfuerzo en los cambios, y al crecimiento económico que conlleva. Dado que un proyecto está en constante cambio y modificación, la agilidad ante estos factores era algo esencial que el desarrollo llevaba pidiendo a gritos desde hacía tiempo.

Otros aspectos también importantes tanto para los propios desarrolladores como para las demás partes involucradas en un proyecto son mayor implicación del cliente durante todo el proceso, división del proyecto en interacciones y mejora de la comunicación

Implicar al cliente durante el proceso mejora las relaciones y comunicaciones. El cliente además puede estar al corriente de la evolución del proyecto casi en tiempo real. Debido a la gran flexibilidad, el cliente puede solicitar cambios durante el desarrollo del proyecto, siempre al finalizar cada interacción. La comunicación adquiere un papel muy importante tanto entre los miembros del equipo como el quipo con el cliente.

El manifiesto ágil

El manifiesto ágil, creado por las figuras más importantes de la comunidad ágil, promueve cuatro principios fundamentales:

  • Individuos e interacciones sobre procesos y herramientas
  • Software que funciona sobre documentación exhaustiva
  • Colaboración con el cliente sobre negociación de contratos
  • Responder ante el cambio sobre seguimiento de un plan

Métodos ágiles

La aparición de esta metodología dio a lugar a la creación de métodos para el desarrollo ágil, tales como Scrum, Kanban, Xtreme Programing (XP), Adaptative Software Development (ASD), Crystal Clear, DSDM, Feature Driven Development, Lean software development. Cada uno de estos métodos apuntan a una organización y desarrollo propio pero todos tienen un mismo objetivo: la agilidad.

PUBLICADO POR: Andrés Crespo Matamala 15/04/2011