¿Cómo coordinar el tiempo de los desarrolladores entre dos proyectos diferentes en Scrum?

40

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?

Shadin
fuente
1
Priorice y resuelva el error crítico de producción primero y luego reanude el desarrollo normal. Ambos al mismo tiempo están pidiendo que se cometa un error.
Mark Rogers

Respuestas:

60

Este problema es tan antiguo como el scrum. Hay una solución, pero no te gustará.

  • Poner nuevas tareas en la cartera de pedidos.
  • No interrumpas a los desarrolladores.
  • Espera el próximo sprint.

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

  • El desarrollador tiene diez tareas sobre la marcha en cualquier momento. Nadie sabe en qué están trabajando ni cuándo terminará.
  • Tiempo desconocido para terminar el proyecto, porque depende de qué otros proyectos están sucediendo al mismo tiempo.
  • No hay una visión coherente de la prioridad del proyecto. Otros gerentes desvían a los desarrolladores a sus proyectos favoritos.

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.

Ewan
fuente
55
¿Cuánto dura tu sprint? Me gustaría ir a una sola semana
Ewan
3
Puede salirse con la suya sin hacer la revisión y retro, tal vez hacerlo una vez al mes. El diseño (¿diseño de interfaz de usuario?) Como equipo / sprint separado es una buena idea, creo. Con suerte, la mayoría de las veces el diseño se realiza antes de que el desarrollador comience y no cambie demasiado
Ewan
3
El propietario del producto quiere que los desarrolladores dejen todo y trabajen en errores de producción, detengan el sprint actual, arreglen el error y comiencen otro sprint cuando esté listo. Hay consecuencias para estas decisiones y esto hará que el propietario del producto se dé cuenta del impacto en las correcciones de errores inmediatas. Tendrán que usar más discreción cuando las cosas se consideren una emergencia. O puede esperar y dirigirse a ellos durante la próxima parada. De esta manera, puede ver quién tiene ancho de banda adicional y no interrumpe el flujo del desarrollador.
JeffO
55
Si omite la revisión y retro y hace el diseño en un sprint separado, realmente no queda ningún Scrum ...
Erik
66
¿Su solución es "obtener la máxima autoridad en la empresa y luego gastar mucho dinero creando tres equipos completamente nuevos"?
Lightness compite con Monica el
25

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.

  • Ejecución de pruebas para identificar cuellos de botella de rendimiento o problemas de escalabilidad
  • Mantenimiento del sistema de compilación
  • Reuniones con clientes.
  • Investigando nuevos marcos / bibliotecas
  • Explorando las características del lenguaje que te gustaría usar
  • Leer sobre problemas de seguridad
  • Mantenimiento de base de datos
  • El mantenimiento del servidor

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.

Doblado
fuente
3
Estaba pensando lo mismo: rotar a un desarrollador para que haga las "tareas" (problemas de producción) y como no va a hacer mucho trabajo real, déjelo hacer investigación / exploración / otras cosas irregulares también. Y haga un buen análisis de la causa raíz de cada problema de producción para que el número disminuya.
RemcoGerlich
1
¡Esa es realmente una muy buena idea! Voy a necesitar contratar uno o dos desarrolladores más, pero creo que vale la pena. ¡Muchas gracias!
Shadin
1
En nuestro proyecto, hemos formalizado esa posición hasta cierto punto. Tenemos un desarrollador senior en cada equipo que se designa Tech Lead para el equipo scrum. El TL hace una serie de cosas (mentor de desarrolladores junior, hace "4 + 1 planes" antes de la producción, resuelve problemas para otros desarrolladores a medida que surgen, etc.) pero una cosa que viene con ser TL es tratar con problemas de producción de papa caliente y Defectos de alta prioridad. Obviamente, MUCHO depende de su sistema / filosofía de producción, pero el TL puede intervenir para "proteger" al resto del equipo y dejar que se centren en las historias de los usuarios.
JBiggs
14

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.

StuperUser
fuente
¡Un enfoque muy interesante y creo que es aplicable en nuestra situación ahora! ¡Muchas gracias!
Shadin