Agile
Qué es la metodología Agile
Agile es una metodología flexible de gestión de proyectos basada en la colaboración mutua con el equipo y las partes interesadas. Dentro de la definición de Agile, todos los procesos de trabajo se desglosan también en etapas, formando un único ciclo hasta que la mejora del producto está totalmente completada. Este ciclo incluye siempre la planificación, la ejecución y la evaluación de los resultados, que también se desglosan en iteraciones (un sinónimo popular es sprint), es decir, pasos secuenciales de desarrollo. Este enfoque proporciona al equipo una visión integral del producto final y una solución estable y organizada para determinadas tareas, desde las más sencillas a las más complejas.
Una de las características de Agile es que esta metodología garantiza un alto nivel de compromiso de los empleados, ya que el proceso de desarrollo Agile implica reuniones periódicas con el equipo, comunicación con el cliente y cobertura exhaustiva de todos los detalles del progreso. Además, Agile permite iterar más si es necesario, volver a iteraciones anteriores o establecer otras nuevas con nuevas tareas si surgen problemas o condiciones adicionales durante el desarrollo. Por eso la gestión Agile de proyectos está pensada principalmente para organizaciones de TI y desarrollo de software o productos tecnológicos.
Manifiesto Agile
En 2001, diecisiete profesionales de la informática viajaron a una estación de esquí de Utah, donde iban a divertirse esquiando y comiendo platos deliciosos. Sin embargo, al mismo tiempo, la empresa de aquellos especialistas se involucró de repente en el problema de la sistematización de enfoques para el desarrollo de software y, a raíz de ello, se autodenominaron grupo "Agile Alliance". Y aunque en aquel momento la metodología Agile aún no existía, (sólo existía su nombre) crearon Agile Manifesto: un breve documento que enumera 12 principios del desarrollo de software más eficaz. Era una respuesta a la creciente necesidad en la comunidad informática de un enfoque alternativo para trabajar con tecnología que facilitara la gestión de equipos y la documentación. El Manifiesto Agile dio cuerpo a las ideas de las que surgió la moderna metodología Agile.
12 principios Agile
El Manifiesto Agile incluye los siguientes principios
-
La primera prioridad de cualquier desarrollo es la satisfacción del cliente.
-
Los cambios son permisibles y bienvenidos, incluso en las últimas fases del desarrollo, si mejoran el producto y refuerzan la ventaja competitiva del cliente.
-
El producto debe demostrarse al cliente a intervalos regulares, por lo que es preferible dividir estas etapas en intervalos de tiempo lo más cortos posible.
-
Todas las partes implicadas en el proyecto deben trabajar en equipo a diario durante todo el periodo de desarrollo.
-
Hay que proporcionar al equipo un entorno de trabajo cómodo, confiar en que realice las tareas de forma independiente y proporcionarle todo el apoyo necesario.
-
La forma más eficaz de comunicarse es cara a cara.
-
El éxito de un proyecto viene determinado en gran medida por el software de trabajo utilizado para llevarlo a cabo.
-
El desarrollo del proyecto debe ser coherente y sostenible a un ritmo uniforme, con la posibilidad de ampliar los plazos.
-
Las continuas mejoras técnicas y de diseño permiten garantizar la máxima agilidad del producto.
-
Minimizar el trabajo innecesario también contribuye al éxito de un proyecto.
-
Las soluciones arquitectónicas y las ideas de diseño más épicas surgen de equipos autoorganizados.
-
El equipo debe ajustar su trabajo con regularidad y debatir en reuniones conjuntas formas de mejorar aún más el producto.
Componentes y herramientas clave de Agile
Las siguientes herramientas pueden utilizarse para implantar Agile de forma eficaz:
-
Las historias de usuario en Agile son descripciones simplificadas de usuarios potenciales, sus peticiones y necesidades, que se introducen en "bloques" y son la base para construir los siguientes "pisos" del marco. Las historias de usuario garantizan que el equipo alcance no sólo los objetivos del cliente, sino que también satisfaga a los futuros clientes del producto.
-
Un tablero Agile es una herramienta de colaboración en equipo que ofrece una representación visual de las tareas actuales, completadas y futuras, así como del nivel de progreso en su resolución. Todos los miembros del equipo pueden acceder a este tablero, que puede crearse en línea mediante un software basado en la nube o fuera de línea, directamente en la oficina.
-
Un backlog de producto es una lista de todas las características con una breve descripción de lo que debería tener el producto en el resultado final. También puede utilizarse posteriormente con fines de marketing.
-
Spike es un formato de actividad que utiliza un equipo Agile cuando se enfrenta a una tarea desconocida e inesperada durante un sprint. Esta actividad puede implicar diversas formas de analizar y debatir, desde una lluvia de ideas hasta la agrupación de la elección del equipo.
Ceremonias Agile
En un contexto Agile, las ceremonias o, más sencillamente, las reuniones de equipo son periódicas y suelen celebrarse todos los días para debatir sobre la preparación de las tareas y los problemas actuales. Sin embargo, en las reuniones más grandes, que se celebran dos veces por sprint (al principio y al final), también se hace una retrospectiva de los progresos realizados. Las reuniones cotidianas nunca duran más de 15 minutos y su único objetivo es que los miembros del equipo compartan las dificultades encontradas y, si es necesario, desarrollen conjuntamente una ruta de trabajo más cómoda y eficaz, lo que, además de mejorar la calidad del resultado, fomenta la implicación y refuerza las relaciones dentro del equipo.
Agile y Scrum
Agile y Scrum son dos conceptos que a menudo se consideran sinónimos y difíciles de contrastar, ya que son partes de un mismo todo. Por ejemplo, la definición de Agile es una metodología teórica, una especie de "filosofía de trabajo" que define valores y principios de trabajo. Scrum, por su parte, es un conjunto de herramientas que permite aplicar los principios Agile en la práctica.
Aunque Agile puede utilizar otros métodos como herramientas (por ejemplo, el Scaled Agile Framework o Kanban), la mayoría de las veces las herramientas prestadas son Scrum. La iteración o Sprint es solo uno de los componentes de Scrum, al igual que la designación de Master, Product Owner y otros roles.
Agile vs Waterfall
Agile y Waterfall representan dos enfoques completamente distintos de la entrega de proyectos. Mientras que la gestión Agile del producto es iterativa y flexible, se basa en ciclos y en una alianza de todos los participantes en el proceso empresarial entre sí, y permite cambios y nuevas tareas, Waterfall es su opuesto.
La metodología Waterfall es estrictamente secuencial, se basa en el principio del "tren de lanzamientos" y no permite volver a iteraciones pasadas ni añadir otras nuevas. Aunque sus participantes también trabajan juntos, carecen de autonomía y discreción. Por su linealidad y limitaciones condicionales, Waterfall es una metodología de trabajo más sencilla. Sin embargo, también incluye el diseño del proyecto y la planificación de la ejecución, la definición de los requisitos, el desarrollo de los elementos necesarios, la garantía de calidad y el mantenimiento.
Roles en Agile
Todos los miembros del equipo no sólo realizan tareas dentro de sus competencias, sino que también se les asignan funciones en consecuencia. Así, la estructura de equipo en Agile incluye necesariamente los siguientes roles:
-
Líder del equipo. Si los valores Agile se combinan con la metodología Scrum (y esta es la variedad más practicada), el líder del equipo recibe el título de "Scrum master". En combinación con otras metodologías, también se les puede denominar "coach del equipo" o "líder del proyecto". Actuando como líder formal e informal en Agile, el scrum master es responsable del suministro técnico del equipo, asignando recursos y tareas, haciendo un seguimiento del progreso y ayudando a resolver problemas. Las habilidades interpersonales, la capacidad de gestión de equipos, la planificación Agile de sprints, la capacidad de programación y los conocimientos específicos del sector son especialmente importantes para esta función. Mucho depende también de la mentalidad del master.
-
Desarrollador. Se trata de un miembro del equipo responsable de la ejecución del proyecto. Puede haber un número ilimitado de personas en el equipo de desarrolladores, pero si Agile utiliza los principios de Scrum, el equipo no debería superar las 7-8 personas. Los desarrolladores son los responsables del modelado, la programación, el diseño, las pruebas y todos los flujos de trabajo clave.
-
Propietario del producto. Se trata esencialmente del cliente del producto, que es el principal responsable y la persona más disciplinada del proyecto, define la lista de requisitos y elementos de desarrollo, toma decisiones empresariales vitales y proporciona información de mercado oportuna y relevante.
-
Partes interesadas. Esta categoría incluye a todas las personas relacionadas directa o indirectamente con el proyecto. Por ejemplo, usuarios potenciales, inversores, responsables de ventas, desarrolladores de sistemas relacionados e integrados, etc.
El ciclo de vida del desarrollo ágil de software y el flujo de trabajo Agile
El ciclo de desarrollo del modelo Agile consta de los siguientes pasos:
-
Desarrollo del concepto
En esta fase, mucho depende del propietario del producto, es decir, del cliente, ya que es él quien determina la escala y el alcance del proyecto. Si hay varios proyectos, se establece un orden de prioridad entre ellos. Todas las condiciones y requisitos se registran en un documento especial, así como los resultados esperados con las mejores prácticas Agile. Todo esto debe ser lo más breve posible, ya que el documento y los requisitos pueden complementarse durante el proceso de desarrollo. En esta fase, el propietario del producto sólo estima el tiempo necesario para ejecutar el proyecto y su coste, realiza un análisis detallado y evalúa la disposición del equipo para ponerse a trabajar mediante el póquer de planificación o cualquier otra técnica de estimación.
-
Inicio del trabajo
Una vez desarrollado el concepto, el equipo de desarrollo empieza a reunirse. El propio propietario del producto evalúa las competencias de los candidatos disponibles y selecciona a los mejores, para después proporcionar al equipo los recursos y herramientas necesarios. A continuación, el equipo empieza a diseñar el producto, es decir, a crear el diseño del producto y a construir su arquitectura. Mediante diagramas y análisis del público objetivo, se especifican los requisitos del producto y se detallan sus funciones obligatorias.
-
Iteraciones
A continuación, el trabajo sobre el producto se divide en fases cortas de 2 a 4 semanas, denominadas "iteraciones". Esta es la fase más larga del ciclo ágil, ya que implica realizar todo el trabajo principal. El líder del equipo, es decir, el Scrum master, asigna las tareas en función de las competencias de los especialistas contratados y se asegura de que, antes de que el equipo pase a la siguiente iteración con nuevas tareas, se hayan completado las tareas de la iteración anterior. El objetivo de esta etapa es crear un producto funcional básico que luego pueda perfeccionarse y mejorarse.
-
Pruebas
El producto básico acabado se prueba en términos de funcionalidad, diseño y usabilidad primero en el equipo de desarrollo y luego en una muestra del público objetivo. En el proceso, el equipo comprueba que el código está limpio, elimina los errores que se producen e identifica los puntos débiles del producto para realizar más ajustes. Una vez concluida esta etapa y perfeccionado el producto en función de los defectos detectados, el producto se pone en producción en la forma que adquirió durante la iteración final (correctiva).
-
Mantenimiento
Una vez que el software se pone a disposición de los clientes, el equipo se centra en su soporte técnico. Así, los desarrolladores rastrean y corrigen los errores identificados por los propios usuarios, garantizan la estabilidad del sistema y, al mismo tiempo, forman a los usuarios sobre cómo utilizar su producto. En esta fase, pueden lanzarse nuevas iteraciones adicionales para actualizar las características del producto, introducir nuevas funciones y eliminar errores no detectados anteriormente.
-
Desmantelamiento
Esta etapa se produce por dos motivos: o bien el software se sustituye por una versión más nueva y mejor, o bien el software se vuelve obsoleto e inutilizable para la empresa. En este caso, el equipo de desarrollo notifica a los usuarios que el software está a punto de ser retirado y, o bien traslada a los usuarios al nuevo producto, o bien pone fin a su disponibilidad tras un periodo de tiempo acordado.
Cada una de estas etapas puede implicar múltiples iteraciones, ya que Agile prohíbe pasar a la siguiente etapa hasta que la anterior haya alcanzado el resultado mínimo deseado.
Herramientas Agile
En la actualidad existen numerosos servicios y plataformas diseñados específicamente para poner en práctica el enfoque Agile. Los más conocidos y fiables son:
- ClickUp. Permite planificar sprints y cada proceso en Agile, establecer puntos de historia y seguir el progreso del trabajo del proyecto. Incluye gestión de datos, tareas, estados, documentos y automatización de todos los sprints.
- Jira. Se utiliza sobre todo para identificar y rastrear errores de software, pero también ofrece capacidades de autoconfiguración a través del lenguaje JQL. Prueba de forma independiente los productos, supervisa las tareas y los sprints, procesa los datos resultantes, genera estadísticas con informes y, literalmente, asume parte del trabajo del Scrum Master.
- GitHub. Un sistema que captura en tiempo real todos los cambios que tu equipo realiza en el producto y cada transformación Agile hasta el más mínimo detalle. Cualquier miembro del equipo, desde los desarrolladores hasta el propietario del producto, puede trabajar en el mismo código al mismo tiempo gracias a una tecnología en la nube sin fisuras, que también permite dar forma y realizar un seguimiento de los requisitos y las tareas.
- Lean Kit. Una aplicación basada en el principio de la "fabricación ajustada", es decir, la ejecución de proyectos en términos de ahorro de recursos mediante la identificación y eliminación a tiempo de defectos y procesos ineficaces. Desde un punto de vista visual, presenta tarjetas con elementos de trabajo y estados actuales de las tareas.
- Planbox. Una aplicación de control y optimización de la iteración que analiza la productividad de los empleados a la hora de completar las tareas y muestra métricas Agile en diversos formatos gráficos. Esto permite al equipo hacer un seguimiento visual de lo lejos que están de completar el sprint y el proyecto completo.
Certificación Agile
La obtención de una certificación para demostrar el dominio de la metodología Agile no se considera obligatoria. Por lo general, la certificación puede ser exigida por un profesional por dos motivos:
-
Poner a prueba su nivel de conocimientos en el contexto de los requisitos del mercado. Muchos profesionales y gestores de proyectos creen que son maestros de Agile porque ya tienen experiencia en gestión. Sin embargo, aprobar la certificación demuestra muy a menudo que esta experiencia no vale nada y que aún queda más por aprender y estudiar para obtener el título de maestría en Agile.
-
Con el fin de aumentar su valor profesional a los ojos de los empleadores. Muchas empresas y equipos de TI que practican Agile de forma habitual se toman muy en serio la formación básica y la documentación de las habilidades. Con mayor frecuencia, las certificaciones Agile son requeridas por empresas integradoras que desean demostrar su alto índice de personal externo, y por empresas corporativas, donde las certificaciones en los empleados son un accesorio esencial para el estatus de la empresa. La certificación también es necesaria para el coaching formal de Agile si espera convertirse en un consultor o formador muy bien pagado.
Por lo tanto, si ya te has establecido en el nicho, tienes habilidades Agile reales en la práctica y tienes casos en tu portafolio para probarlo, entonces no hay necesidad de preocuparse por obtener el certificado. Si eres nuevo en Agile y estás en el proceso de dominarlo, entonces tomar y certificarte en Agile sería un buen bono educativo y profesional al inicio.