Los roles de Extreme Programming son Tracker, Customer, Programmer, Coach, Manager, Tester. Cualquiera puede ser Doomsayer. También existen antiroles. Abajo son explicados cada uno.
Tracker
Es el encargado de seguimiento. Proporciona retroalimentación al equipo. Debe verificar el grado de acierto entre las estimaciones realizadas y el tiempo real dedicado, comunicando los resultados para mejorar futuras estimaciones.
Customer
También llamado cliente es quien escribe las historias de usuario y las pruebas funcionales para validar su implementación. Asigna la prioridad a las historias de usuario y decide cuáles se implementan en cada iteración centrándose en aportar el mayor valor de negocio.
Programmer
Es el programador considerado el mas importante miembro del equipo ya que escribe las pruebas unitarias y el código del sistema.
Coach
Es responsable del proceso global y se encarga de guiar a los miembros del equipo para seguir el proceso correctamente.
Tester
Ayuda al cliente a escribir las pruebas funcionales. Ejecuta pruebas regularmente, difunde los resultados en el equipo y es responsable de las herramientas de soporte para pruebas.
Big Boss
Es el dueño de la tienda y el vínculo entre clientes y programadores. Su labor esencial es la coordinación.
Consultor
Es un miembro externo del equipo con un conocimiento específico en algún tema necesario para el proyeco ayuda al equipo a resolver un problema específico y puede que no siempre haya un consultor como parte del equipo.
Manager
Se encarga de agendar las reuniones, se asegura de que el proceso de juntas sea seguido, registra los resultados de las reuniones para futuros reportes para el Tracker. Asiste a las reuniones y trae información importante, mantiene al equipo feliz y productivo.
Qué no hace:
- Lo que tienen que hacer. (El Cliente y el Plan de Iteración hacen eso.)
- Cuando deben terminar. (Release Plan hace eso.)
- Revisar como van. (Tracker)
Doomnsayer
- De que todo el mundo sabe los riesgos que algo implica.
- Que las malas noticias no se oculten ni sean pasadas por alto.
- Que las malas noticias no sean exageradas.
Este rol debe tener cuidado porque puede bajar la productividad del equipo pero será responsable de los cambios al proyecto gracias a los riesgos. Se debe ser constructivo al respecto.
Algunos roles pueden ser combinados en la misma persona; por ejemplo la misma persona puede ser el Manager y el Tracker y otros es recomendable que no sean combinados: Programmer-Tracker, Programmer-Tester, Customer-Programmer, Coach-Tracker, por mencionar algunos. El Manager no debería combinarse con algún otro rol ademas de Tracker. Ron Jeffries opina que el Coach no debería combinarse con el Programador, pero que podría terminar de una manera satisfactoria. Solo que no lo suficientemente buena.
También existen anti roles de Extreme Programming tienden a meterle ruido a la realización del proyecto.
If these people are on your project, remove them. If you can’t, remove yourself or prepare for pain. -Ron Jeffries
StandardsAndMetodologyGuy
Normalmente un ex-académico la clase de persona que nunca ha hecho que un día valga la pena, codigo dificil en su vida, pero tiene el poder de decirte que estas haciendo mal y por qué el emplear Extreme Programming puede no funcionar y no funcionará. Puede haber unas discrepancias con el Manager.
GodHead
El tipo de persona que quiere ser el ChiefArchitect (rol que no existe en esta metodología) o el Manager pero no lo es. Gusta de estar en el centro de todo. Memoriza suficientes detalles del sistema para abalanzarse dentro de cada discusión acerca del diseño. Toma responsabilidad en todo lo que ve. Y el resto del equipo teme tocar su código o el diseño sin el.