Introducción a Agile y Scrum: Principios y enfoques

Introducción a Agile y Scrum

Agile y Scrum son metodologías diseñadas específicamente para equipos de trabajo de alto rendimientos, con la finalidad de generar múltiples beneficios a nivel de productividad.

Para decirlo con palabras más simples, se trata de una metodología de trabajo en equipo.

Agile y Scrum son herramientas que permiten a las empresas apoyarse firmemente a la hora de abordar un problema de manera más global o particular según lo dicte el momento en el que se encuentre. En el siguiente post, te daremos una introducción a Agile y Scrum mucho más completa. 

El enfoque de estas metodologías de trabajo en equipo introdujo muchos beneficios que no eran posibles en el enfoque tradicional de desarrollo en cascada, como por ejemplo el tiempo de entrega y cumplimiento de cada meta.

En el caso de Agile, este ha ayudado a mejorar los niveles de satisfacción y retención de clientes. Las pruebas se integran con el desarrollo en Agile que ayuda a entregar software de alta calidad. Los muchos beneficios ofrecidos por Agile lo hicieron cada vez más popular y llevaron a una adopción generalizada.

Sin embargo, a pesar de que un gran número de proveedores de software están utilizando Agile, todavía hay ciertas nubes de confusión en torno a la diferencia que existe entre Agile Y Scrum.

Qué es Agile

Como lo dijimos al principio, Agile es una metodología para el desarrollo de proyectos, pero no como cualquier metodología, sino una que ha demostrado mucha más rapidez y flexibilidad que cualquier otra.

Se trata, en cierta forma, de una manera distinta para trabajar y llevar a cabo cualquier proyecto, y de organizarse.

Una de las cosas excepcionales que tiene Agile, es que divide un proyecto en pequeñas partes que permiten que los equipos de trabajo puedan irlos completando en pocas semanas y con completa eficiencia. 

En ágil, hay un enfoque de desarrollo incremental e iterativo. El trabajo se prioriza en función del valor del negocio o del cliente. Existen equipos multifuncionales que trabajan en las iteraciones del producto durante un período de tiempo.

Cada iteración se centra en la producción de un producto de trabajo. Agile es usado específicamente por equipos de trabajo de alto nivel, algo que es muy necesario si se quiere aprovechar al máximo esta herramienta.

El objetivo de Agile es desarrollar servicios y productos de alta calidad a una velocidad extrema, todo enfocado a responder las necesidades y prioridades de los clientes de manera más precisa y efectiva. 

Principios de Agile

Los siguientes son los 12 principios que definen y caracterizan a Agile fundamentalmente.

  • La satisfacción del cliente es de la más alta prioridad, que se logra a través de la entrega continua de software valioso.
  • Acomodar los requisitos cambiantes incluso en fases posteriores de desarrollo.
  • Entregar el software en funcionamiento con frecuencia en un plazo más corto.
  • El equipo de negocios y los desarrolladores deben colaborar diariamente a lo largo del proyecto.
  • Se otorga mayor autonomía a los miembros del equipo con mayor apoyo y confianza.
  • La interacción cara a cara es fundamental para transmitir información dentro de un equipo de desarrollo.
  • El progreso del proyecto se mide por el software de trabajo.
  • Promover el desarrollo sostenible manteniendo un ritmo constante por tiempo indefinido.
  • La excelencia técnica y el buen diseño deben ser el foco principal.
  • La simplicidad es esencial para el progreso.
  • Se requieren equipos auto organizados para las mejores arquitecturas y diseños.
  • Los equipos deben reflexionar sobre cómo ser más efectivos regularmente y adoptar los cambios para aumentar la efectividad.

Enfoques de implementación

Los siguientes son los enfoques de implementación que tiene Agile:

Kanban

En este enfoque, se utiliza un marco visual para implementar Agile. Este enfoque promueve cambios pequeños pero continuos en el sistema actual.

Los principios de Kanban incluyen visualizar el flujo de trabajo, limitar el trabajo en progreso, administrar y mejorar el flujo de trabajo y la mejora continua.

Melé

Es una de las formas más populares de implementar Agile. En este enfoque iterativo, hay sprints que duran de una a dos semanas y permiten que el equipo entregue software regularmente.

Scrum por otra parte, utiliza un modelo de software que sigue un conjunto de roles, responsabilidades y reuniones.

Programación Extrema (XP)

La programación extrema se centra en mejorar la calidad y la capacidad de respuesta a los requisitos cambiantes de los clientes.

Sus principios incluyen retroalimentación, simplicidad y cambio abarcador.

Desarrollo impulsado por características (FDD)

FDD involucra 5 actividades básicas: desarrollar el modelo general, construir una lista de características, planear por característica, diseño por característica y construir por característica.

FDD combina las mejores prácticas de la industria en un solo enfoque.

Desarrollo de sistemas adaptativos (ASD)

El enfoque ASD se enfoca en la idea de que el proyecto siempre debe estar en un estado de adaptación continua. Hay un ciclo de 3 series repetitivas: especular, colaborar y aprender en ASD.

Método de desarrollo de sistemas dinámicos (DSDM)

DSDM es un enfoque para abordar las fallas comunes de los proyectos de TI, como la falta de plazos, el presupuesto y la no participación del usuario.

Este enfoque se centra en el negocio, es estricto en cuanto a la puntualidad, la colaboración, nunca compromete la calidad, construye y desarrolla de forma iterativa, se comunica continuamente y demuestra control.

Desarrollo de Software Lean (LSD)

El enfoque de Lean Software Development (LSD) tiene 7 principios.

Estos principios incluyen la eliminación de cualquier desperdicio, centrándose en el aprendizaje, tomar decisiones lo más tarde posible, entregar lo antes posible, empoderar al equipo, construir integridad y ver el panorama completo.

Enfoque Crystal Crear

El enfoque Crystal Clear se utiliza con equipos de seis a ocho desarrolladores. Este se enfoca en las personas involucradas en el proyecto, no en procesos o artefactos.

En este proceso, la entrega de código utilizable al usuario es frecuente. La mejora de la eficiencia y la comunicación se logra mediante la co-ubicación.

Qué es Scrum

Por otra parte, Scrum es el enfoque más popular para implementar Agile. Ayuda a gestionar el desarrollo de software con un enfoque iterativo. Existen iteraciones de longitud fija conocidas como un sprint que permite enviar software con frecuencia.

Un sprint dura una o dos semanas y al final de cada sprint, las partes interesadas y los miembros del equipo llevan a cabo una reunión para planificar los próximos pasos.

Los roles, responsabilidades y reuniones se fijan en un Scrum. En cada sprint, hay planificación de sprint, stand-up diario, demostración de sprint y retrospectiva de sprint. Hay paneles de tareas y cuadros de quema para hacer un seguimiento del progreso del sprint, así como para recibir retroalimentación incremental.

Dicho de otra manera, Scrum es un proceso en donde aplicamos eficientes prácticas para trabajar colaborativamente en equipo para obtener el mejor resultado posible ante un proyecto.

Roles

Los diferentes roles que se manejan en Scrum son:

  • Product Owner o Dueño del producto
  • Scrum Master o Maestro de Scrum
  • Scrum Team o Equipo Scrum

Etapas de Scrum 

Por otro lado, las distintas etapas del Scrum son:

  • Backlog Product.
  • Planificación de sprint.
  • Refinamiento de backlog.
  • Scrum diario.
  • Reunión de revisión de Sprint.
  • Sprint reunión retrospectiva.

Más información en Cómo implementar Scrum

Más métodos y metodologías: