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 periférica 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 de desarrollo de software ágil? Hay una rica historia detrás del desarrollo de software ágil y por qué. Las organizaciones utilizan métodos ágiles como scrum y kanban para modernizar aplicaciones, mejorar la experiencia del cliente e 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 el desarrollo. 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 los devops y sobre las mejores prácticas que ayudan a las organizaciones a cultivar una cultura ágil y ofrecer 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 una declaración de 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. En un proceso de desarrollo ágil intervienen varios roles. Usuarios Un proceso ágil siempre comienza con el usuario o cliente en mente. Hoy en día, a menudo definimos personas de usuario para ilustrar diferentes roles de flujo de trabajo o tipos de necesidades y comportamientos del cliente. Propietario 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 los 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 softwareLos 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 entregar software funcional, por lo que deben completar Aplicaciones, integraciones y otros entregables que funcionan de extremo a extremo que impactan a los usuarios, no solo a 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 a menudo tienen otras funciones asignadas, incluidas las siguientes: Los líderes técnicos o de equipo se asocian con el propietario del producto en arquitectura no funcional. criterios de aceptación, secuenciación, dependencias y otras consideraciones de tecnología y seguridad. Los líderes tecnológicos tienen amplias responsabilidades que pueden incluir la estimación de historias y la planificación de detalles de implementación con el equipo. Los scrum masters a menudo entrenan a nuevos equipos sobre procesos, responsabilidades y herramientas ágiles. Las responsabilidades de Scrum Master pueden incluir resolver bloques que impiden el progreso, revisar enfoques para mejorar la velocidad del equipo ágil y preparar los trabajos pendientes. Los analistas de negocios se asocian con el propietario del producto. Las responsabilidades de los analistas a menudo incluyen la creación de esquemas, 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 la mejor práctica de Jeff Bezos de construir dos equipos ágiles del tamaño de una pizza para maximizar la colaboración entre los 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 scrum, que organiza el trabajo en cadencias llamadas sprints, generalmente durando 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 usuario 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 finalizarlo. cada sprint con éxito. Estas reuniones suelen incluir algunos elementos comunes: la planificación del Sprint es donde el propietario del producto comparte las prioridades y el equipo decide cuánto trabajo puede completar durante el sprint. Las reuniones diarias 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. Las revisiones de sprint 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. Las 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 se adaptan 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 del usuario forma un microcontrato que separa las necesidades comerciales, los criterios de aceptación (o lo que los equipos ágiles a veces llaman la definición de hecho) y luego permite a los equipos autoorganizarse sobre cómo implementar. Las revisiones de sprint son un tipo de circuito de retroalimentación y 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 forma 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 la metodología ágil. culturas.Hoy en día, muchas mejores prácticas técnicas incluyen la definición del ciclo de vida de desarrollo de software (SDLC) y la implementación de procesos devops. El SDLC proporciona directrices sobre cómo escribir código, gestionar activos de software y desarrollar estándares técnicos. Las automatizaciones de 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 las prácticas de seguridad de desplazamiento a la izquierda, microservicios observables, marcado de funciones, lanzamientos canary y AIOps, proporcionan 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 la nube Las arquitecturas ayudan a las organizaciones tecnológicas a desarrollar su cultura. Los ciclos de desarrollo más largos se reemplazan 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 arquitectónicas más inteligentes, impulsar la experimentación, centrarse más en los datos y corregir errores rápidamente. Otras prácticas, como integrar el pensamiento de diseño con scrum, implementar flujos de valor, desarrollar prácticas de gestión de productos e implementar una planificación continua, ayudan 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 trabajo y automatizar flujos de trabajo mediante control de versiones, CI/CD y otras herramientas. Los marcos y guías conceptuales 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 entrenadores recomiendan comenzar prácticas ágiles con personas bien objetivos comerciales 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.

Source link