Me convertí en el maestro scrum de un equipo recién establecido, que es responsable de crear un software Y mantener otra aplicación implementada. Básicamente, cada miembro del equipo tiene tareas de desarrollo y operaciones.
He estado observando cómo funcionan las últimas dos semanas y noté que el equipo está teniendo problemas para coordinar estas tareas. cuando un desarrollador se concentra en la codificación, lo interrumpen para solucionar un problema que se plantea en la producción, y le resulta difícil concentrarse nuevamente en la tarea anterior.
Intenté asignar el% de tiempo de desarrollador para el trabajo de operaciones, pero aparentemente esto no resuelve el problema. Estoy interesado en escuchar a los maestros de scrum que se encontraron con esta situación antes, ¿cómo lo manejaste y cuáles son tus recomendaciones?
fuente
Respuestas:
Este problema es tan antiguo como el scrum. Hay una solución, pero no te gustará.
Poner a sus desarrolladores en más de un scrum, tener dos trabajos atrasados separados o asignar solo un porcentaje de su tiempo al sprint, todo funciona en contra de lo que scrum está tratando de lograr, es decir, un flujo constante de tareas completadas.
Si prueba ese tipo de cosas, básicamente volverá a las metodologías de desarrollo 'caos' o 'JFDI' con todos sus problemas concomitantes, por ejemplo
Por supuesto, la respuesta habitual a este consejo es "¡Pero no puedo hacer eso! ¡El negocio necesita que esos errores de producción se corrijan CUANTO ANTES!"
Pero eso no es realmente cierto.
Si realmente tiene tantos errores reales que están afectando al negocio hasta este punto, entonces necesita ser profesional y mejorar sus pruebas. Simplemente trabaje en errores y pruebas automatizadas hasta que los haya solucionado todos. Contrata un equipo de control de calidad y prueba todos los nuevos lanzamientos.
Sin embargo, lo más probable es uno de los siguientes:
Los errores son problemas operativos, quedarse sin espacio en disco, sin DR, sin copias de seguridad, sin conmutación por error, etc. Obtenga un equipo de OPS.
Los errores son usuarios que no entienden cómo debería funcionar el sistema "¡Esto sucedió! ¿Es un error?". Obtenga un servicio de asistencia y capacite a sus usuarios, escriba documentación.
Miedo a retroceder. Lanzaste una nueva función y rompió algo, no intentes apresurarte a solucionarlo. Regrese a la versión anterior y coloque los errores en la cartera.
fuente
Solo trato de pensar fuera de la caja aquí.
Como podría no ser posible lograr que el propietario del producto vea las cosas a su manera. Todavía puede haber errores críticos que simplemente no pueden esperar, reunirse con clientes donde se necesita asistencia del desarrollador, etc., donde debe sacar a un desarrollador del sprint por un tiempo.
¿Por qué no tratar de anticipar esto y usarlo para su ventaja?
Necesitarás un equipo de 5+ para que sea realista, tal vez.
Pero, ¿por qué no sacar a un desarrollador cada sprint? (Rotando entre los desarrolladores, cada uno tiene su turno).
Como lo más probable es que no haya suficientes errores para usar un desarrollador completo para las correcciones, hay otros problemas o tareas que se pueden hacer.
La velocidad del equipo puede aumentar, el estrés puede disminuir, los conflictos con la administración pueden disminuir, usted realmente tiene tiempo para mejorar su conocimiento.
fuente
Una "solución eficaz para gestionar el esfuerzo del desarrollador para problemas de producción verdaderamente esenciales que he usado es el" enfoque de Batman ".
El aspecto costoso de la responsabilidad de soporte de producción mientras se desarrolla una nueva funcionalidad es el cambio de contexto, por lo que debe intentar limitar eso.
Con la aceptación del equipo, cree una lista de los miembros del equipo y realice un ciclo, de modo que cada día, una nueva persona sea declarada "Batman" en la reunión de pie y responda a problemas de producción esenciales ese día. El resto del equipo puede concentrarse en el desarrollo sin tener que cambiar de contexto y todos tienen una parte justa del dolor del apoyo. Con un equipo de 5, es un día a la semana en el que un desarrollador puede ser interrumpido y 4 días de tiempo de desarrollo ininterrumpido y predecible.
Esto tiene el beneficio de compartir el conocimiento / experiencia entre el equipo, por lo que no tiene una persona responsable de solucionar problemas particulares y convertirse en un punto único de falla y una división justa de los problemas de soporte.
fuente