lunes, 1 de julio de 2013

"Una forma de obtener Éxitos en tus proyectos”

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