Metodologías de desarrollo Agile. Desarrollo de software Ágil.

Desarrollo de software agil
Tiempo de lectura: 4 minutos

Si fuiste programador en los años 80 y 90 del siglo pasado, sabrás que los desarrollos se realizaban en grandes bloques. La actualización de un software suponía, en la mayoría de casos, el borrado y reinstalación de la nueva versión. Y esto era así para el Word de tu PC y para el ERP de toda la empresa.

Cambia el siglo, el milenio, y se replantea el modelo de trabajo con clientes y el modelo de desarrollo. Aparecen nuevos medios, la era Internet está arrancando, que ayudan a pensar out of the box.

En 2001 aparece el manifiesto Agile en el que se recogen 12 puntos que son la base de una nueva metodología de gestionar proyectos.

Metodología Agile

Posiblemente los 17 creadores del manifiesto sentían que el modelo anterior se había hecho demasiado pesado, estaba caducado y que debían establecer una nueva relación con el cliente, basada en la generación de valor de forma flexible y rápida.

Así, el manifiesto se sostiene en cuatro pilares que fueron su declaración de intenciones

  • Los individuos y las interacciones por encima de los procesos y las herramientas. Los procesos y las herramientas son importantes, pero más importante es el talento de las personas.
  • El software de trabajo por encima de la documentación exhaustiva. Documentar es importante, pero el objetivo es desarrollar software.
  • La colaboración con el cliente por encima de la negociación de contratos. El contrato fija los términos del acuerdo, pero lo realmente importante es trabajar de forma cercana y flexible con el cliente.
  • Responder al cambio en lugar de seguir un plan. El cambio es continuo e inevitable, por lo que es mejor aceptarlo y prepararse para responder de forma ágil y efectiva.

¿Deseas contactar con un especialista en desarrollo de software?

Los 12 principios del desarrollo de software Ágil

Estos cuatro pilares tiene un desarrollo en 12 principios, que son los siguientes.

  • Satisfacción del cliente mediante la entrega temprana y continua de software valioso.
  • Acepta los cambios en los requisitos, incluso en el desarrollo tardío.
  • Entregar software funcional con frecuencia (semanas en lugar de meses).
  • Cooperación estrecha y diaria entre el personal de la empresa y los desarrolladores.
  • Los proyectos se construyen en torno a personas motivadas en las que se debe confiar.
  • La conversación cara a cara es la mejor forma de comunicación (co-localización).
  • El software en funcionamiento es la principal medida de progreso.
  • Desarrollo sostenible, capaz de mantener un ritmo constante.
  • Atención continua a la excelencia técnica y al buen diseño.
  • La simplicidad -el arte de maximizar la cantidad de trabajo no realizado- es esencial.
  • Las mejores arquitecturas, requisitos y diseños surgen de equipos autoorganizados.
  • Periódicamente, el equipo reflexiona sobre cómo ser más eficaz y se ajusta en consecuencia.

Desarrollo basado en iteraciones

A diferencia del modelo tradicional de desarrollo, en el que el conjunto del proyecto era lineal – definición, desarrollo, pruebas, instalación – se validaba cada fase a su final y no se admitía vuelta atrás, el desarrollo ágil divide el proyecto en pequeñas unidades funcionales denominadas iteraciones.

De esta forma, el equipo en su conjunto trabaja para completar ciclos de desarrollo en el que al punto final se le denomina hito.

Ya no hay grandes entregas finales. Las entregas se realizan de forma constante a lo largo del proyecto y el cliente puede validarlas y beneficiarse de incrementos de valor que le proporciona cada iteración.

Los beneficios de esta forma de trabajo son la entrega pronta de valor, mayor implicación del cliente en el proyecto, respuesta ágil a los cambios en los requerimientos de las unidades de negocio y personal de desarrollo más motivada.

Las Épicas

Cuando la solicitud de un usuario es lo suficientemente grande para que no se pueda completar mediante una iteración, se denomina Épica.

Una historia de usuario es la descripción de una función de software realizada por un usuario utilizando el lenguaje del usuario y describiendo por qué y de qué modo le ofrece valor.

En ese caso, dividiremos la Épica en numerosas historias de usuario que a su vez se dividirán en tareas que serán las que el equipo de desarrollo ejecutará durante las iteraciones.

Desarrollo de software ágil
Desarrollo de software ágil

Scrum y Kanban

Metodología Scrum

Scrum es la metodología ágil más extendida. Scrum utiliza iteraciones llamadas sprints cuya duración máxima es de 30 días.

Los sprints en Scrum se planifican durante la fase de Product Backlog según prioridades definidas en función del beneficio que aportan dichas entregas a los receptores del proyecto. Es una metodología especialmente indicada para proyectos complejos, cuyos requisitos son cambiantes y en los que la innovación y la flexibilidad son protagonistas.

Metodología Kanban

Del japonés Kan (visual) y Ban (tarjeta), la metodología ágil KanBan basada en tableros que llevan el mismo nombre en los que se encuentran las tareas a realizar en cada etapa de producción.

En la metodología KanBan se priorizan las tareas que se están realizando en cada momento frente a las que entran nuevas, ya que el objetivo principal es la calidad del producto frente a la rapidez.

Los tableros Kanban son elementos visuales de gestión de proyectos que permite a los equipos tener siempre presente sus flujos de trabajo y la carga de trabajo. En un tablero Kanban, la información se organiza en forma de columnas, en el que cada columna representa una etapa del trabajo a realizar. Las tareas individuales se representan mediante tarjetas visuales que van moviéndose en las columnas del tablero hasta que estén finalizadas.

Metodologías ágiles y JIRA

Como bien sabe el lector, 3digits es Atlassian Gold Solution Partner, lo que le certifica para asumir proyectos de alta complejidad en el ecosistema de Jira.

Jira tiene una fuerte conexión con metodologías ágiles de gestión de proyecto. Jira es una herramienta que se adapta a equipos Scrum o Kanban según sea la metodología ágil que la empresa ha implantado.

En un próximo artículo hablaremos de la relación entre Jira Work Management y Jira Software con las metodologías ágiles y cómo utilizar la herramienta junto a la metodología.