April 2021

4 min. de lectura

Metodologías Ágiles en desarrollo de software

Alberto Sanz García

Las metodologías Ágiles surgieron a mediados del siglo pasado en empresas japonesas del sector de la automoción al aplicar el concepto de agilismo en el marco de trabajo “Lean” sobre los procesos de manufacturación.


El objetivo era crear el máximo valor posible para el cliente, ajustando el uso de los recursos disponibles, evitando desperdicios, y optimizando conocimiento y habilidades durante la ejecución del trabajo.

Un cambio necesario en el desarrollo de software


La revolución industrial y tecnológica de finales del siglo pasado, donde la globalidad irrumpe con fuerza, el cambio continuo se convierte en una constante, Internet crece exponencialmente y la incertidumbre está presente en todos los ámbitos, hace necesario un cambio de paradigma también en el mundo del desarrollo de software.


En el año 2001 se reúne un grupo de expertos en metodologías y modelos de mejora que prepara el “Manifiesto Ágil”, un documento que recoge los principios para aplicar estos métodos alternativos en el ámbito del desarrollo software, frente a las metodologías tradicionales vigentes hasta el momento.


Principios básicos del agilismo


Este marco de trabajo ágil nos permite disponer de herramientas que aportan mayor control frente al cambio y la incertidumbre, variaciones de necesidades del cliente, velocidad de obsolescencia de los productos, evolución de tecnologías, continuidad económica del proyecto… incorporando este cambio como un elemento normal, habitual y esperable dentro del desarrollo del proyecto y asumiéndolo con total naturalidad.


Para integrar el cambio como un elemento positivo, el agilismo convierte a las personas en el centro de la metodología, más allá de procesos o herramientas, y prioriza la entrega de funcionalidades completas y operativas al cliente, estableciendo con ellos una relación de confianza y cooperación en la que, para satisfacer sus necesidades, deben participar activamente en la evolución del software que al final acabarán utilizando.


Al mismo tiempo que se integra el cambio como un proceso natural en el desarrollo, se implementan la detección temprana de errores o incidentes que afecten al proyecto, para solucionarlos lo antes posible y tomar las decisiones que permitan reconducir la situación hacia el objetivo que se quiere conseguir.


Nuevas metodologías


Estos principios de agilismo se materializan en la aparición de distintas metodologías ágiles que a menudo combinan diferentes métodos para complementarse y ser más efectivas. Algunas de ellas son Kanban, Lean Managment, Extreme Programming, Design Thinking, SAFE… pero quizás la más conocida y usada actualmente sea Scrum.




SCRUM

Dentro del contexto del software, Scrum aporta unos beneficios claros en el ciclo de desarrollo:


  • Anticipar cualquier error o problema y solucionarlo o reconducirlo cuanto antes.

Evitando así que los errores se arrastren en el tiempo e incluso que se puedan ir agrandando con el paso de las iteraciones, generando un problema mucho más serio o difícil de solucionar.

  • Generar equipos solidarios, productivos, autogestionados e implicados, creciendo cada día, tanto a nivel profesional como a nivel humano.

Se evalúan las áreas de mejora, potenciando lo que funciona bien, y se pone el foco en las cualidades de las personas, generando compañerismo para eliminar barreras y tender puentes que unen todo y a todos.

  • Entrega de valor al cliente de forma periódica, alineando activamente al cliente con el proyecto al recibir información de manera continua, y poder valorar y dar opinión sobre lo que va viendo.

De esta forma se aporta flexibilidad para corregir y adaptar el proyecto ante necesidades no entendidas, y mejoras o cambios que el cliente desea integrar, corrigiendo la planificación con la mayor antelación posible.

  • Mejora del Retorno de Inversión (ROI), respecto al presupuesto invertido, gracias a la entrega de funcionalidades operativas del software final.

Por ejemplo, hacer versiones lite de un sistema con unas funcionalidades reducidas para salir al mercado rápidamente, desarrollar las funcionalidades más críticas y ponerlas en producción mientras se evoluciona con otras funcionalidades menos importantes, o preparar el sistema en un idioma y ponerlo en producción para luego realizar las versiones en otros idiomas.

  • Reducción del Plazo de Lanzamiento (Time To Market), que es el tiempo que se tarda desde que un concepto es pensado hasta que se pone en producción y el usuario final tiene acceso al mismo.

Scrum trata de ceñirse a los plazos, marcando periodos de tiempo (iteraciones) para acometer, por prioridad, las necesidades más importantes para el cliente, desglosándolas en tareas y asignándolas a los miembros del equipo de desarrollo.


Durante este proceso se realiza un seguimiento diario para sincronizar a todo el equipo y detectar errores o impedimentos, hay una retroalimentación en cada iteración entre el equipo de desarrollo y el cliente, y se realizan evaluaciones del estado del propio equipo, buscando mejoras y estableciendo buenas prácticas.

Desde Mytra intentamos ser ágiles en todos los aspectos del desarrollo, tratamos de mejorar nuestros procesos en cada iteración, recibiendo retroalimentación de nuestros clientes, y buscando áreas de mejora interna.


Las sinergias de grupo nos permiten aprender, establecer buenas prácticas, y crear equipos cohesionados y motivados, que trabajan al unísono, en un ambiente laboral óptimo donde todos tenemos un espacio de seguridad para expresar nuestra opinión sabiendo que será considerada y tenida en cuenta.


Todo ello nos permite mejorar la operativa diaria para lograr un software útil, seguro, innovador, adaptable, de calidad, estable, trazable, y desarrollado con las últimas tecnologías.


Desarrollo de software
Ingeniería industrial

¿Te ha gustado?

Compártelo en redes sociales

Descubre más

Ver más contenido