Cuesta creer que la metodología ágil de desarrollo de software cumplió oficialmente 20 años el año pasado. Lo que alguna vez fue una práctica remota para las nuevas empresas que colaboraban en espacios compartidos con adhesivos y pizarras ahora es un conjunto sofisticado, escalable y ampliamente utilizado de procesos y herramientas de desarrollo de software ágiles.
¿Qué es la metodología ágil de desarrollo de software?
hay una rica historia detrás del desarrollo ágil de software y por qué las organizaciones utilizan métodos ágiles como scrum y kanban para modernizar aplicaciones, mejorar la experiencia del cliente y implementar transformaciones digitales. También existe un enorme conjunto de conocimientos sobre estas metodologías y sus intersecciones con el pensamiento de diseño, la gestión de productos y devops. Hoy en día, menos personas preguntan: «¿Qué es ágil?» Cada vez son más los que buscan orientación sobre cómo alinear a sus equipos con las mejores prácticas ágiles.
Este artículo es una introducción a las metodologías ágiles, comenzando con las personas, los equipos, los procesos y las herramientas. También aprenderá cómo lo ágil se conecta con Devops y sobre las mejores prácticas que ayudan a las organizaciones a cultivar una cultura ágil y ofrecer un mejor software.
Roles en la metodología ágil
Un proceso de desarrollo de software ágil siempre comienza definiendo los usuarios de un producto en particular y documentando un declaración de la visión para el alcance de los problemas, oportunidades y valores a abordar. El propietario del producto captura esta visión y trabaja con un equipo (o equipos) multidisciplinario para cumplirla. Varios roles están involucrados en un proceso de desarrollo ágil.
Usuarios
Un proceso ágil siempre comienza pensando en el usuario o cliente. Hoy en día, a menudo definimos user personas para ilustrar diferentes roles de flujo de trabajo o tipos de necesidades y comportamientos de los clientes.
Dueño del producto
El propietario del producto tiene la tarea de ser la voz del cliente, incluidas las partes interesadas internas. Esta persona extrae conocimientos, ideas y comentarios para crear una visión del producto. Las visiones de productos suelen ser breves y sencillas, pero aun así dan una idea de quién es el cliente o usuario, qué valores se abordan y una estrategia para abordarlos. Me imagino que la visión original de Google era algo así como: «Hagamos que sea fácil para cualquier persona con acceso a Internet encontrar sitios y páginas web relevantes con una interfaz simple basada en palabras clave y un algoritmo que clasifica las fuentes confiables en los primeros lugares de los resultados de búsqueda».
Cualquiera que sea la visión, el propietario del producto es responsable de definirla y luego trabajar con el equipo de desarrollo para hacerla realidad.
Para trabajar con el equipo de desarrollo, el propietario del producto divide la visión del producto en una serie de historias de usuarios. Cada historia de usuario debe identificar los usuarios objetivo, sus desafíos, por qué se necesita la solución y qué restricciones y criterios de aceptación definen la solución. El propietario del producto prioriza estas historias de usuarios y las revisa con el equipo para asegurarse de que tengan una comprensión compartida de lo que se les pide.
equipo de desarrollo de software
Los equipos deben ser multidisciplinarios e incluir un grupo diverso con las habilidades y la experiencia para realizar el trabajo. Además de los desarrolladores, los equipos de desarrollo ágiles deben incluir ingenieros de automatización de control de calidad, ingenieros de datos, diseñadores de experiencia de usuario (UX) y otros roles según el tipo de proyecto de software.
Agile enfoca a los equipos en la entrega de software funcional, por lo que deben completar aplicaciones, integraciones y otros entregables que funcionen de extremo a extremo que impacten a los usuarios, no solo los componentes técnicos. Los miembros del equipo deben alinearse en lo que están construyendo, quién está haciendo qué y cómo se desarrollará el software.
Los equipos ágiles suelen tener asignados otros roles, incluidos los siguientes:
- Líderes técnicos o de equipo asociarse con el propietario del producto en arquitectura, criterios de aceptación no funcionales, secuenciación, dependencias y otras consideraciones de tecnología y seguridad. Los líderes tecnológicos tienen amplias responsabilidades que podría incluir estimando historias y planificar los detalles de implementación con el equipo.
- Maestros del scrum a menudo entrenan a nuevos equipos sobre procesos, responsabilidades y herramientas ágiles. Responsabilidades del maestro scrum puede incluir resolver obstáculos que impiden el progreso, revisar enfoques para mejorar la velocidad del equipo ágily atrasos de preparación.
- Analistas de negocios asóciese con el propietario del producto. El responsabilidades de los analistas a menudo incluyen la creación de wireframes, documentar historias de usuarios y revisar los resultados de las pruebas. Los analistas de negocios son especialmente útiles cuando los equipos de desarrollo de software están desarrollando microservicios y otros productos técnicos, y cuando el analista de negocios tiene más conocimientos de desarrollo de software que el propietario del producto.
Depende de los líderes organizacionales decidir cómo dotar de personal a los equipos ágiles y qué tan grandes deben ser. Muchos siguen las mejores prácticas de construcción de Jeff Bezos. dos equipos ágiles del tamaño de una pizza para maximizar la colaboración entre compañeros de equipo.
¿Qué son scrum y kanban?
Una vez que la visión del producto y el equipo (o equipos) adoptan principios ágiles, comenzando con los identificados en el manifiesto ágil, la organización debe seleccionar una metodología de proceso. Scrum y kanban son los principales procesos ágiles.
Algunas organizaciones comienzan con kanban porque es relativamente fácil de explicar e implementar. Kanban funciona como un proceso de entrada y salida en el que el equipo extrae historias de usuarios de un tablero de admisión y las canaliza a través de un flujo de trabajo hasta que se marcan como terminadas.
Pero muchas organizaciones implementan meléque organiza el trabajo en cadencias llamadas carreras de velocidad, que suele durar una o dos semanas. El propietario del producto escribe los requisitos como historias de usuario y luego los prioriza en un trabajo pendiente en función de su valor comercial. El equipo revisa el trabajo pendiente y se compromete con las principales historias de usuarios que pueden completar durante el sprint.
Scrum incluye varias reuniones estándar (a veces llamadas ceremonias de scrum o rituales de scrum) para ayudar a los equipos a comprometerse con las prioridades del sprint, completar el trabajo durante el sprint y finalizar cada sprint con éxito. Estas reuniones suelen incluir algunos elementos comunes:
- Planificación de sprints Es donde el propietario del producto comparte las prioridades y el equipo decide cuánto trabajo puede completar durante el sprint.
- Stand-up diario las reuniones ayudan a los equipos a discutir el estado de las historias de los usuarios; Los compañeros de equipo comparten sus objetivos diarios y cualquiera puede escalar los bloqueos que impiden el progreso del equipo.
- Revisiones de velocidad Son reuniones de demostración al final del sprint, donde se muestra la funcionalidad al propietario del producto para obtener la aceptación del trabajo completado.
- Reuniones retrospectivas son donde el equipo analiza qué salió bien y qué necesita mejorar en sus procesos ágiles y de desarrollo de software.
Cabe señalar que estas prácticas son adaptables a modelos de trabajo híbridos ágiles.
Scrum mejora el desempeño de un equipo al permitirle comprometerse con una cantidad de trabajo alcanzable en lugar de que un gerente de producto, programa o proyecto especifique el cronograma y el alcance esperados. La historia de usuario forma un microcontrato que separa la necesidad empresarial, los criterios de aceptación (o lo que los equipos ágiles a veces llaman el definicion de hecho), y luego permite que los equipos se autoorganicen en cómo para implementar. Las revisiones de Sprint son un tipo de Bucle de retroalimentacióny se anima a los propietarios de productos a realinear las prioridades y redefinir los requisitos antes de cada sprint. Las retrospectivas de Sprint ayudan al equipo a mejorar la colaboración e iniciar mejoras en los procesos.
Mejores prácticas técnicas para organizaciones ágiles
Scrum constituye el proceso básico para que los equipos colaboren, planifiquen y realicen entregas, pero no habla de las mejores prácticas técnicas, estándares organizacionales ni de definir e impulsar culturas ágiles.
Hoy en día, muchos Las mejores prácticas técnicas incluyen la definición del ciclo de vida de desarrollo de software (SDLC). e implementar procesos devops. El SDLC proporciona pautas sobre cómo escribir código, administrar activos de software y desarrollar estándares técnicos. Automatizaciones Devops como CI/CD, Infraestructura como código (IaC) y las pruebas continuas permiten un camino más confiable hacia la producción. Otras prácticas, incluidas prácticas de seguridad de desplazamiento a la izquierda, microservicios observables, marcado de características, lanzamientos canariosy AIOpsproporcionar un modelo de entrega más flexible y confiable.
La combinación de empoderamiento de equipos autoorganizados, metodologías ágiles, automatizaciones devops y modernización a arquitecturas en la nube ayuda a las organizaciones tecnológicas a evolucionar su cultura. Los ciclos de desarrollo más largos son reemplazados por modelos de entrega continua que permiten lanzar funciones y mejoras más rápidamente. Las automatizaciones abordan muchas brechas entre los desarrolladores que buscan autonomía y velocidad con responsabilidades operativas en torno al rendimiento, la confiabilidad y la seguridad. La combinación de estas prácticas ayuda a los equipos ágiles a tomar decisiones de arquitectura más inteligentes, impulsar la experimentación, basarse más en los datos y corregir errores rápidamente.
Otras prácticas como la integración pensamiento de diseño con scrumimplementar flujos de valordesarrollando practicas de gestion de productosy la implementación planificación continua Ayude a los equipos ágiles a colaborar con clientes, usuarios finales y partes interesadas del negocio.
Los equipos ágiles suelen implementar herramientas como Jira Software, Azure DevOps y Digital.ai para colaborar en trabajos pendientes ágiles y tableros kanban. Estas herramientas ayudan a los equipos ágiles a priorizar el trabajo, capturar requisitos, completar historias de usuarios, revisar informes de quemadoy automatice los flujos de trabajo utilizando control de versiones, CI/CD y otras herramientas.
Marcos conceptuales y guías como SAFe, Enterprise Scrum, LeSS (Large-Scale Scrum), Spotify Model y StarCIO Agile pueden ayudar a impulsar principios, estándares y prácticas ágiles en muchos equipos colaboradores.
La mayoría de los coaches recomiendan iniciar prácticas ágiles con objetivos comerciales bien definidos, unos pocos equipos seleccionados y herramientas limitadas y elegidas de manera óptima. El desafío para los líderes de las organizaciones es encontrar el equilibrio adecuado entre equipos diversos, principios de autoorganización, estándares, herramientas e integraciones que permitan a sus organizaciones construir, ampliar, escalar y mantener capacidades tecnológicas.
Copyright © 2024 IDG Communications, Inc.