Implementación de prácticas ágiles que se escalan

Azure DevOps Services | Azure DevOps Server 2022: Azure DevOps Server 2019 | TFS 2018

Las organizaciones empresariales adoptan prácticas ágiles por muchas razones. Entre estas razones se incluyen:

  • Reducir el tiempo de comercialización, acelerar la entrega de productos
  • Mejorar la eficacia de la organización para administrar las prioridades cambiantes
  • Mejorar la previsibilidad de la calidad y la entrega de software
  • Mejora de la visibilidad del proyecto y reducción del riesgo del proyecto

A medida que crece su organización, querrá escalar sus prácticas para seguir siendo ágiles y cumplir los objetivos cambiantes. Para ello, tenga en cuenta estos dos principios rectores:

  • ¿Qué aspecto tiene el éxito para usted, sus equipos y su organización? ¿Cuál es el más interesante: Entrega a tiempo? ¿Calidad del producto? ¿Previsibilidad? ¿Satisfacción del cliente?
  • Vuelva a los primeros principios, vuelva a los principios y los valores compartidos enumerados en el manifiesto agile , tal y como ha indicado Ken Schwaber, uno de los fundadores de Scrum:
    • "Los valores y los principios se escalan, pero las prácticas son contextuales".
    • "Mantenga los valores, mantenga los principios, piense por sí mismo. Una premisa básica de Agile es que las personas que realizan el trabajo son las personas que mejor pueden averiguar cómo hacerlo".

Crear ritmo y flujo

Al adoptar una cadencia compartida y un conjunto de comunicaciones periódicas, se crea un flujo constante de actividad en toda la organización. Entre las prácticas que ayudan a crear ritmo y flujo dentro de organizaciones más grandes se incluyen las siguientes:

  • Cadencia compartida: los sprints y las versiones regulares establecen el ritmo de la empresa. Tener todos los equipos trabajando en una cadencia compartida ayuda con todas las actividades de coordinación y colaboración.
  • Correos electrónicos de sprint: para mantener la organización y todos los equipos informados sobre el progreso y los planes de los equipos de características, cada equipo de características puede enviar por correo electrónico un resumen de sus resultados de sprint anteriores y los planes de sprint actuales.
  • Demostraciones de sprint: un vídeo rápido de 2 a 3 minutos que ilustra una nueva característica que produjo el equipo. Los vínculos a estos vídeos se pueden incluir en los correos electrónicos de sprint.
  • Presentación de reuniones: para informar a otros equipos y pedir comentarios sobre el software en desarrollo, los equipos muestran el trabajo que han realizado. Realice estas reuniones a intervalos regulares durante todo el ciclo de vida del proyecto y ábralas a todas las partes interesadas.
  • Correos electrónicos de resumen de errores: para admitir información sobre la calidad del producto y fomentar el mantenimiento de la materia de errores, comparta periódicamente métricas de calidad con la organización. Estas métricas pueden incluir errores activos por equipo de características, tendencias de errores y errores por ingeniero.
  • Reuniones de coordinación: mantenga reuniones que coordinan los equipos a intervalos regulares o con la frecuencia necesaria para abordar objetivos, dependencias y riesgos superpuestos.

Interacción con clientes

La participación de los clientes a lo largo de todo el ciclo de vida del producto es un principio ágil fundamental. Permita a cada equipo interactuar directamente con los clientes en los conjuntos de características que poseen.

  • Comentarios continuos: cree bucles de comentarios de clientes. Estos bucles pueden tener muchas formas:
    • Voz del cliente: facilita a los clientes que envíen comentarios, agreguen ideas y voten sobre las características de próxima generación. La entrega de comentarios se realiza a menudo a través de un sitio web dedicado.
    • Comentarios del producto: los botones de comentarios en el producto son otra manera de solicitar comentarios sobre la experiencia del producto o características específicas.
    • Demostraciones de clientes: demostraciones programadas periódicamente que solicitan comentarios de sus clientes pueden ayudar a dar forma a los productos de próxima generación y mantenerle al día para crear aplicaciones que los clientes quieren consumir.
  • Programas de adopción temprana: estos programas deben desarrollarse con la idea de que todos los equipos puedan querer participar como algún punto. Los usuarios pioneros obtienen acceso a las primeras versiones del software de trabajo, que luego pueden proporcionar comentarios. A menudo, estos programas funcionan activando las marcas de características para una lista de usuarios pioneros.
  • Decisiones controladas por datos: busque formas de instrumentar el producto para obtener datos útiles y que puedan probar varias hipótesis. Ayude a impulsar una cultura amigable con el experimento que celebra el aprendizaje.

Mejora de la visibilidad del proyecto

Cuanto más información tenga usted y sus equipos en el objetivo, la visión y el progreso del trabajo que se realiza, mejor habilitado estará para reducir los riesgos y administrar las dependencias.

  • Estructura del equipo: independientemente de la tamaño que obtiene su organización, estructurando su organización en torno a pequeños equipos de 6 a 9 escalas. Cree equipos de características verticales y autónomos agrupados en áreas de administración de carteras.
  • Estructura de desglose del trabajo: desglosar grandes objetivos, características o requisitos en otros más pequeños sigue siendo estable de administración de proyectos. Al dividir el trabajo en tareas de tamaño similar, los equipos pueden realizar mejores estimaciones e identificar riesgos y dependencias.
  • Vistas consolidadas: use las herramientas de seguimiento en línea para agregar trabajo para obtener conocimientos en todos los equipos. Cree paneles para mostrar el progreso y las tendencias.
  • Revisiones de experiencia: estas reuniones, celebradas antes de que el desarrollo comience en una característica, se usan para educar al liderazgo en escenarios y prioridades, recopilar comentarios, establecer expectativas y exponer cualquier problema entre equipos sobre la característica.

Capacitación de una fuerza de trabajo productiva

Algunas prácticas de Agile específicas que se escalan bien y conducen a empleados más felices, comprometidos y productivos incluyen:

  • Liderazgo integrado: permita a los equipos y líderes de la organización organizarse y administrarse de forma automática tanto como sea posible. La autonomía del equipo aumenta la eficacia del equipo de agilidad organizativa. Asegúrese de que los equipos tengan el patrocinio corporativo necesario para tener éxito.
  • Stand-ups diarios: o bien, las reuniones de Scrum ayudan a mantener a los equipos centrados en lo que necesitan hacer diariamente para maximizar su capacidad de cumplir sus compromisos de sprint. A medida que crecen las organizaciones, deben considerar la posibilidad de escalonar estas reuniones para que la participación entre equipos pueda producirse según sea necesario.
  • Scrum of scrums: diariamente se levantan los miembros de diferentes equipos ágiles para informar del trabajo completado, los pasos siguientes y los problemas o bloques que se producen dentro de sus equipos representativos.
  • Comunicaciones de equipo: proporcione y anime a los equipos a compartir sus prácticas e instrucciones, a las que ellos y otros equipos pueden acceder a través de la red corporativa. Entre las herramientas comunes que se usan para este propósito se incluyen wikis de equipo, OneNotes o sitios de Markdown.
  • Colaboración: fomente comunicaciones informales entre equipos y colaboración dentro del equipo. Las prácticas de institucionalización, como las revisiones de código, las revisiones de diseño, las especificaciones, no solo aumentan la colaboración en equipo, sino que ayudan a desarrollar competencias corporativas individuales y generales.

Mejora de la cultura de la organización

Para mejorar la eficacia de la organización, asista a la cultura que desea crear. Los cambios en la cultura se producen cuando las personas, los equipos y las organizaciones adoptan una o varias prácticas de mejora continua. Entre los procedimientos ágiles escalables se incluyen:

  • Retrospectivas: al formular preguntas como "¿Qué ha ido bien?", "¿Qué debemos hacer de manera diferente?", y "¿Qué debemos dejar de hacer?" ayudan a los equipos a reflexionar sobre cómo pueden mejorar sus procesos y prácticas. Las retrospectivas ayudan a los equipos a exponer lo que funciona bien y qué necesita mejorar. Las retrospectivas se pueden llevar a cabo en cualquier momento y lugar. Sin embargo, la institucionalización de ciertas retrospectivas en una cadencia regular ayuda a institucionalizar las prácticas de mejora continua. Por ejemplo:

    • Las retrospectivas de sprint pueden ayudar a los equipos a identificar áreas para mejorar con una cadencia regular.

    • Las retrospectivas de lanzamiento pueden ayudar a las organizaciones a identificar áreas para mejorar las comunicaciones y las prácticas internas y mejorar el combustible de la próxima versión.

    • Revisiones operativas: normalmente se mantienen mensualmente e incluyen representantes de un flujo de valor completo. La expansión de una cartera de proyectos y otras iniciativas y el uso de datos cuantitativos objetivos, diseña estas retrospectivas para provocar discusiones sobre la dinámica que afecta al rendimiento entre los equipos.

      Consulte la Wiki de recursos retrospectivas de Agile para obtener ideas, sugerencias y herramientas para planear y llevar a cabo retrospectivas. Consulte también la extensión Retrospectivas de Marketplace.

  • Panel de seguimiento de mejoras: las buenas ideas para mejorar los procesos pueden surgir de cualquiera en cualquier momento. Capturar esas ideas para discutir y decidir cómo actuar sobre ellas rápidamente es una clave para apoyar los esfuerzos de mejora de procesos.

    Una pizarra proporciona cualquier medio fácil y visual con el que capturar ideas. Además, puede crear un equipo de seguimiento de mejoras y capturar ideas que realice en un panel kanban electrónico.

  • Institucionalizar el uso compartido: compartir procedimientos recomendados y comunicar ideas ayuda a todos los equipos de una organización a crecer y mejorar. El desarrollo de una cultura de aprendizaje es fundamental para apoyar esta y otras actividades de mejora continua. Algunas ideas que se deben tener en cuenta:

    • Wikis internos

    • Listas de distribución interna

    • Semanas de Hackathon o 10% tiempo de hack

    • Equipo de soporte técnico interno de Agile para apoyar a los equipos que adoptan prácticas de Agile

      El juego de cultura proporciona un buen recurso para que los administradores de Agile ayuden a los equipos a adoptar Agile y compartir procedimientos recomendados.

  • Comunidades de práctica: admite disciplinas comunes internas (por ejemplo, DBA, arquitectos de SW, diseño de experiencia de usuario)

Software de trabajo

"Entregar software de trabajo con frecuencia, de un par de semanas a un par de meses, con una preferencia a la escala temporal más corta".
"El software de trabajo es la medida principal del progreso".
- Manifiesto ágil

A medida que aumente la cantidad de software, características y complejidad, deberá adoptar prácticas que le ayuden a producir soluciones consumibles.

  • Marcas de características: use marcas de características para habilitar o deshabilitar el acceso a diferentes características. Proporcionar soporte técnico para activar las características a los usuarios pioneros para obtener comentarios de trabajo.
  • Trenes de lanzamiento: proporcione otro tipo de cadencia para entregar una o varias características. Los equipos de características entienden la programación planeada previamente de la inserción de nuevas características y planean correctamente. Los trenes de lanzamiento pueden corresponder a la misma cadencia de sprint que se establece para la organización o se producen con una cadencia diferente. Consulte Scaled Agile Framework para obtener información sobre cómo configurar sprints y liberar trenes.
  • Integración continua: adopte procesos que eliminen el trabajo manual y, en su lugar, automaticen el flujo de software a través de los ciclos de prueba, compilación e implementación.
  • Código abierto interno: incorpore el valor y los valores que se desarrollan en la comunidad de software de código abierto a los equipos de desarrollo internos.

Junto con los procedimientos anteriores, encontrará más instrucciones sobre el escalado de las herramientas de Agile en los artículos siguientes:

Recursos del sector

Prácticas que no se escalan

  • Estimación de grandes iniciativas: parte de los métodos de proyecto en cascada implicados en la estimación de recursos y programaciones. Cuanto mayor sean las iniciativas, menos probables son que estas estimaciones sean de cualquier valor. A medida que crecen los proyectos, los riesgos y los problemas imprevistos y los impedimentos pueden surgir, invalidando muchas estimaciones.
  • Velocidad: aunque la velocidad del equipo puede proporcionar una métrica útil para obtener información sobre cuánto trabajo puede completar cada equipo durante un ciclo de sprint, no puede agregar velocidades de equipo para obtener métricas significativas o útiles. Además, el uso de la velocidad obtenida de muchos equipos para completar de forma confiable las previsiones de largo alcance es problemático. Los equipos varían en la forma en que calculan su trabajo y esas variaciones aumentan con el tiempo.
  • Soluciones prescriptivas de arriba abajo: un tamaño no se ajusta a todos y una solución normalmente no se ajusta a todos los equipos. Apoyar la autonomía del equipo significa permitir que los equipos encuentren sus propias soluciones.