Caracteristicas de un gran Equipo de Desarrollo en Scrum

Extracto traducido al castello del whitepaper “Characteristics of a Great Scrum Team” escrito por Barry Overeem.

El Equipo de Desarrollo

De acuerdo con la Guía de Scrum, el Equipo de Desarrollo está compuesto por profesionales que realizan el trabajo de lograr un Incremento de producto “Terminado” (Done) potencialmente entregable al final de cada Sprint.

Solo los miembros del Equipo de Desarrollo crean el Incremento. Los equipos de desarrollo están estructurados y empoderados por la organización para organizar y gestionar su propio trabajo. La sinergia resultante optimiza la eficiencia y eficacia de todo el Equipo de Desarrollo.

Los Equipos de Desarrollo tienen las siguientes características:

  • Autoorganizacion. El equipo decide cómo convertir los Ítems del Product Backlog en soluciones que funcionan.
  • Cross-funcional. En general, tienen todas las habilidades necesarias para crear el Incremento del producto.
  • No hay títulos. Todo el mundo es un desarrollador, nadie tiene un título especial.
  • No existen sub-equipos en el Equipo de Desarrollo.
  • Estan comprometidos con lograr el objetivo del Sprint y entregar un incremento de alta calidad.

UN GRAN EQUIPO DE DESARROLLO …

  • Persigue la excelencia técnica. Un gran Equipo de Desarrollo utiliza la Programación Extrema (XP) como fuente de inspiración. XP proporciona prácticas y reglas que giran en torno a la planificación, el diseño, la codificación y las pruebas. Los ejemplos son refactorización (optimización continua del código), programación en pares, integración continua (los programadores combinan (merge) su código en una linea base de código (code baseline) cada vez que tienen una compilación limpia que haya superado las pruebas unitarias), pruebas de unidad (código de prueba a nivel de desarrollo) y pruebas de aceptación (estableciendo pruebas de aceptación específicas).
  • Aplica “equipo de enjambre”. Un gran Equipo de Desarrollo domina el concepto de ‘equipo de enjambre’. Este es un método de trabajo en el que un equipo trabaja solo con unos pocos Ítems a la vez, preferiblemente incluso con un Ítem a la vez. Cada Ítem se termina lo más rápido posible haciendo que muchas personas trabajen de manera conjunta, en lugar de tener una serie de transferencias.
  • Utiliza soluciones Spike. Un Spike es una actividad concisa y con duración fija que se utiliza para descubrir el trabajo necesario para completar una tarea grande y ambigua. Un gran Equipo de Desarrollo utiliza Spike de experimentos para resolver problemas técnicos, arquitectónicos o de diseño desafiantes.
  • Refina el Product Backlog como un equipo. Un gran Equipo de Desarrollo considera el refinamiento del Backlog como un esfuerzo de equipo. Comprenden que la calidad del Product Backlog es la base para un ritmo de desarrollo sostenible y la creación de excelentes productos. Aunque el Product Owner es responsable del Product Backlog, depende de todo el equipo para refinarlo.
  • Respeta la Regla de los Boy Scouts. Un gran Equipo de Desarrollo utiliza la Regla de Boy Scout: “siempre dejar el campamento más limpio de lo que lo encontró”. Traducido al desarrollo de software: siempre dejar el código base en un estado mejor del que lo encontró. Si encuentras código desordenado, limpialo, independientemente de quién podría haber causado el desastre.
  • Critica a las ideas, no a las personas. Un gran Equipo de Desarrollo critica las ideas, no las personas.
  • Comparten experiencias. Un gran Equipo de Desarrollo comparte experiencias entre sus compañeros. Esto podría ser dentro de la organización, pero también los seminarios y conferencias son una excelente manera de compartir experiencias y recopilar conocimientos. Por supuesto escribiendo y compartiendo tus lecciones aprendidas también es muy apreciado.
  • Entiende la importancia de tener algo de holgura. Un gran Equipo de Desarrollo tiene cierta holgura en el Sprint. Los seres humanos no pueden ser productivos todo el día. Necesitan tiempo para relajarse, charlar en la máquina de café o jugar al futbolín. Necesitan algo de holgura para ser innovadores y creativos. Necesitan tiempo para divertirse. Al hacerlo, aseguran una alta motivación y la máxima productividad. Pero la holgura también es necesaria para manejar las emergencias que puedan surgir; no se desea que todo el Sprint este en problemas cuando necesita crear un hot-fix. Por lo tanto: construir bajo alguna holgura! Y cuando el Sprint no contenga ninguna emergencia: ¡genial! Esto le da al equipo la oportunidad para alguna refactorización y diseño emergente. ¡Es un win-win!
  • Se divierte el uno con el otro. Un gran Equipo de Desarrollo asegura que una dosis saludable de diversión esté presente todos los días. ¡Fomentar la diversión, la energía, la interacción y la colaboración crea una atmósfera en la que el equipo florecerá!
  • No tiene “reuniones” de Scrum. Un gran Equipo de Desarrollo considera los eventos Scrum como oportunidades para realizar conversaciones. Tobias Mayer lo describe perfectamente en su libro “The Peoples Scrum”: “Scrum se centra en las personas, y las personas tienen conversaciones. Hay conversaciones para planificar, alinear y reflexionar. Tenemos estas conversaciones en el momento adecuado y durante el tiempo adecuado para informar nuestro trabajo. Si no tenemos estas conversaciones, no sabremos lo que estamos haciendo (planificación), no sabremos a dónde vamos (alineación) y seguiremos repitiendo los mismos errores (reflexión)“.
  • Conoce a su cliente. Un gran Equipo de Desarrollo conoce a su verdadero cliente. Ellos están en contacto directo con su cliente. Comprenden realmente lo que desean y, por lo tanto, pueden tomar las decisiones correctas (técnicas).
  • Puede explicar el valor (a nivel de negocio) de los requisitos no-funcionales. Un gran Equipo de Desarrollo entiende la importancia de los requisitos no-funcionales como, por ejemplo, rendimiento, seguridad y escalabilidad. Pueden explicar el valor (a nivel de negocio) al Product Owner y al cliente y, por lo tanto, garantizar su inclusioón en Product Backlog.
  • Confia uno en el otro. En un gran Equipo de Desarrollo se confía uno en el otro. Sí, esto es obvio. Pero sin confianza es imposible que un equipo alcance la grandeza.
  • Mantiene la retrospectiva divertida. Un gran Equipo de Desarrollo piensa en los formatos de las retrospectivas. Colaboran al Scrum Master con formatos creativos, divertidos y útiles, y se ofrecen para facilitar las sesiones.
  • Entrega Features durante el sprint. Un gran Equipo de Desarrollo entrega Features continuamente. Básicamente ya no necesitan Sprints. La retroalimentación se recopila y procesa cada vez que un Ítem se completa (Done); Esto crea un flujo de entrega continua.
  • No necesita un sprint 0. Un gran Equipo de Desarrollo no necesita un “Sprint 0” antes que comiencen los Sprints “reales”. Son capaces de entregar valor de negocio en el primer Sprint.
  • Actua verdaderamente multifuncional. Un gran Equipo de Desarrollo no solo tienen una composición multifuncional y actúan verdaderamente de manera multifuncional. No hablan de diferentes roles dentro del equipo, en cambio se centran en entregar, como equipo, un producto cada Sprint. Todo el mundo está haciendo lo que sea necesario para cumplir el objetivo del Sprint.
  • Actualiza el tablero de Scrum por el mismo. Un gran Equipo de Desarrollo asegura que el tablero de Scrum/equipo esté siempre actualizado. Es un fiel reflejo de la realidad. No necesitan un Scrum Master para animarlos; en su lugar, colaboran con el Scrum Master para actualizar el tablero.
  • Pasa tiempo innovando. Un gran Equipo de Desarrollo entiende la importancia de la innovación técnica/arquitectural. Sabe que es necesario mantenerse al día con el entorno y la tecnología que cambian rápidamente. Se aseguran de que tengan tiempo para la innovación durante las horas de trabajo regulares, y que es divertido y emocionante.
  • No necesita una Definición de Terminado. Un gran Equipo de Desarrollo entiende profundamente lo que ‘terminado’ significa para ellos. Para los miembros del equipo, ya no es necesario escribir la Definición de Terminado. Ellos saben. La única razón para usarlo es hacer que el “estado terminado” sea transparente para sus Stakeholders.
  • Sabe cómo dar feedback. Un gran Equipo de Desarrollo ha aprendido a intercambiar opiniones de manera honesta y respetuosa. Comprende el concepto de la ‘Herramienta de retroalimentación de la situación – Comportamiento – Impacto’ y por este medio proporcionan una retroalimentación clara y procesable. Da retroalimentación cuando es necesario, y no posponen la retroalimentación hasta la retrospectiva.
  • Gestiona la composición de su equipo. Un gran Equipo de Desarrollo gestiona la composición de su propio equipo. Cada vez que se necesitan habilidades específicas, colabora con otros equipos para discutir las oportunidades de “contratar” habilidades específicas.
  • Practica el empoderamiento colectivo. Un gran Equipo de Desarrollo comprende la importancia del empoderamiento colectivo. Por lo tanto, rotan a los desarrolladores a través de diferentes módulos de las aplicaciones y sistemas para fomentar el empoderamiento colectivo.
  • Arregla dependencias con otros equipos. Un gran Equipo de Desarrollo es consciente de las posibles dependencias con otros equipos y las administran por sí mismos. Asegurando así un ritmo de desarrollo sostenible para el producto.
  • No necesita puntos de historia. Un gran Equipo de Desarrollo ya no se centran en los puntos de la historia. Ha refinado el Product Backlog para que el tamaño de los Ítems principales no varíen mucho. Saben cuántos elementos pueden realizar en cada sprint. Contar el número de historias es suficiente para ellos.

Leave a Reply

Your email address will not be published. Required fields are marked *