Metodologías Ágiles en el desarrollo de Software
“Una forma de obtener Éxitos en tus proyectos”
La metodologías ágiles son una forma de trabajo que permite
desarrollar software rápidamente y con la particularidad de responder
eficientemente ante los cambios que pueden surgir a lo largo del proyecto,
ofreciendo una nueva alternativa a los procesos de desarrollos de Software
tradicionales, caracterizados por ser rígidos y dirigidos por la documentación
que se genera en cada una de las actividades desarrolladas. El término ágil
nace en febrero de 2001 en una reunión celebrada en Utah-EEUU, en la cual participó
un grupo de 17 expertos de la industria del software, incluyendo algunos de los
creadores de metodologías de software.
El objetivo principal de la reunión fue esbozar los principios y valores que
debieran permitir a los equipos de desarrollo de software obtener logros de
manera rápida y eficiente, considerando las modificaciones y mejoras que pueden
surgir a lo largo del proyecto. Para ello se creó una organización denominada
“The Agile Alliance”, sin ánimos de lucro, dedicada a promover los conceptos
relacionados con el desarrollo ágil del software, y ayudar a las organizaciones
para que adopten dichos conceptos. La metodología ágil se fundamenta en doce
principios plasmados en el “Manifiesto Ágil”, los cuales surgen de los cuatro
que se nombran a continuación:
Valorar a los individuos e interacciones sobre procesos y
herramientas:
En este principio se hace notar que las personas son el
principal factor de éxito de los proyectos. Es más importante construir un buen
equipo, que construir un buen entorno.
Valorar
al Software funcionando sobre documentación extensiva:
Destacar más lo práctico y funcional que la producción
extensiva de documentación, muchas veces innecesarias y nunca utilizadas. La
regla a seguir es documentar lo necesario para tomar una decisión importante.
Los documentos deben ser cortos y centrarse en lo fundamental.
Valorar
la colaboración con el cliente sobre la negociación contractual:
Debe existir una colaboración entre las partes involucradas
conformando un equipo de desarrollo. La colaboración es lo que marca la marcha
del proyecto y asegura su éxito.
Valorar
la respuesta ante el cambio sobre el seguimiento de un plan:
Siempre a lo largo del desarrollo de un proyecto surgen
cambios imprevistos, por lo tanto es importante que la planificación no sea
estricta sino flexible y abierta.
A través de estos principios se desprenden diversos métodos
de trabajos que utilizan las metodologías ágiles, entre ellos encontramos: Programación Extrema (extreme programming),
Scrum, Desarrollo de Software Adaptativo, entre otros.
En el desarrollo de Software existe una amplia gama de
proyectos destinados a diferentes campos, como lo son la entretención, la
ciencia, la contabilidad, las presentaciones, etc. Entonces ¿Cuándo las
metodologías ágiles pueden ser una opción frente a las metodologías
tradicionales y estructuradas?
Debido a la amplia gama de proyectos informáticos que pueden
existir en la actualidad, se debe identificar y tener presente cuando las
metodologías ágiles cumplen con su objetivo, o simplemente se vuelven
ineficientes y poco prácticas. Siempre se debe tener en consideración los
factores y condiciones del proyecto, ya que todos son diferentes y necesitan que se le adapte una metodología adecuada
que garantice el éxito según las características que presente.
Si se posee un grupo de trabajo con experiencia, pequeño y
cohesionado, donde el proyecto
presenta diversos puntos divergentes, condiciones dinámicas y el cliente tiene
disponibilidad y tiempo de involucrarse, conformando en conjunto (cliente -
desarrolladores) un equipo de trabajo, entonces nos encontramos ante un
proyecto en donde utilizar las metodologías ágiles será muy beneficioso.
En la actualidad se encuentran diversas empresas que a pesar
de que poseen grandes grupos de trabajos, utilizan las metodologías ágiles con
muy buenos resultados. Entre las empresas más conocidas se encuentran: Google,
Toyota, Oracle, 3M, Honda, Epson, etc. Esto denota que las condiciones
nombradas anteriormente no son totalmente necesarias para el éxito, ya que a
medida que disminuya una, como en este caso la
desventaja de la cantidad de personal, otras pueden aumentar
significativamente, como la experiencia y la trayectoria.
Si se desea utilizar las metodologías ágiles para lograr el
éxito en un determinado proyecto es necesario conocer las capacidades del grupo
de trabajo involucrado (su experiencia, disponibilidad, capacidad de
integración, capacidad de adaptación al cambio, entre otras), la disponibilidad
y el compromiso del cliente y las características generales del software a
desarrollar. La comunicación en este tipo de metodología es primordial, ya que
es necesario plasmar los requerimientos del cliente, muchas veces de un área
diferente de la informática, en un software computacional.
Es importante mencionar, para las personas ajenas al
desarrollo de software, que las metodologías ágiles, en la actualidad se
utilizan en diversas áreas como la administración de clínicas, organización de
los niños mediante Scrum, etc. Por lo tanto si se presenta algún desafío ya sea
laboral o no, quizás la utilización de las metodologías ágiles pueden ser de
gran ayuda.
Gustavo Salvo Lara
Ingeniería Civil en Informática
Universidad de Santiago de Chile