
Hay muchas descripciones teóricas en libros, artículos y conferencias sobre cómo trabajar con la metodología Extreme Programming, pero muy pocos dando detalles. En este sentido un recurso excelente es el libro de Henrik Kniberg, Scrum and XP from Trenches. Al margen de ello, quiero compartir aquí algunos detalles de implementación de la forma en la que trabaja el equipo del cual soy parte actualmente.
Equipo (la gente está en todas las dailies):
- 5 Devs (skills de front, back, ci/cd, infra)
- 1 Tester
- 1 UX
- 1 facilitador
- 2 personas de negocio
Proceso:
- Duración de iteración: 2 semanas calendario, time-boxed
- Daily Stand-up: todos los días 9.15
- Revisión de iteración & Demo: Jueves de 10:00 a 10:30 (cada 2 semanas)
- Retrospectiva: Jueves de 10:30 a 11:30 (cada 2 semanas)
- Planificación estratégica: Jueves de 11:45 a 13:00 (cada 2 semanas)
- Planificación táctica: Jueves de 14:00 a 16:00 (cada 2 semanas)
- Refinamiento: por el no tiene un horario ni cadencia fija, viene variando de iteración en iteración
- Invision (el nombre aún no me cierra): martes de 11:00 a 12:00 tenemos esta reunión semanal donde coordinamos con otro equipo que desarrolla una API con la cual tenemos un importante dependencia
Prácticas de desarrollo:
- Trunk-based Development, todo el equipo, todo el tiempo trabajando en la misma rama
- Pair-Programming, todo el tiempo
- TDD todo el tiempo en el código server-side (C#)
- Test-Last en el código de client-side (angular)
- Despliegue automatizado a todos los ambiente
- Feature Toggling
Stack tecnológico:
- Net Core 3.1
- Angular 9
- Gitlab (versionado de fuentes & pipeline)
- Artifactory (versionado de binarios)
- RunDeck (deploy automation)
- Specflow, NUnit, Postman/Newman y Jess (test automation)
- Sonar (quality check)
- Docker, Docker Compose & Kubernetes (packaging & runtime)
- Visual Studio Code, Visual Studio, WebStorm & Rider (IDEs para todos los gustos pues tenemos gustos muy distintos)
Herramientas de gestión / colaboración
- Microsoft Teams (chat & calls)
- Miro & Zeplin (diseño & mockups)
- Jira (backlog)
- Confluence (wiki)
Algunas de estas cuestiones de esta forma de trabajo no me terminan de convencer (por ejemplo yo preferiría hacer iteraciones de 1 semana) pero por el momento nos viene funcionando bien, el negocio está contento y ningún miembro del equipo ha planteado desconformidades relevantes.
Hola Nico, veo que marcas el deseo de hacer Sprint de 1 semana. Cuál te parece que es el contexto ideal para hacerlo?
Participé de un proyecto donde, al comienzo del mismo, se implementaron Sprint semanales y era muy poco el tiempo que se tenía para poder agregar valor visible, ya que se ocupaba gran parte en Refinement que bloqueaba el desarrollo.