Durante la reunión de pie diaria en medio de un sprint, el administrador de proyecto de facto / scrum master generalmente pregunta a los desarrolladores alguna versión de:
"Entonces, ¿cuándo se hará esto?"
"Entonces, ¿puedes comprometerte a hacer esta tarea antes de las 4pm hoy?"
"¿Cuántas horas te quedan en esta subtarea?"
Francamente, esto es muy molesto y no hace que las cosas se hagan más rápido. El resultado es que los desarrolladores a menudo se sienten bajo mucha presión y las standups a menudo se sienten más como un campo de batalla que como una colaboración.
Como desarrollador, ¿cuál es una forma sólida de manejar esto?
agile
scrum
user-story
sdlc
Derek
fuente
fuente
Respuestas:
"Al final del sprint".
Me doy cuenta de que es una respuesta sarcástica, pero hay algo de verdad escondido allí. Depende de quién hace la pregunta y por qué hacen esa pregunta.
El gerente de proyecto realmente no tiene nada que ver con hacer esas preguntas: deben preguntarle al scrum master si necesitan información detallada sobre las tareas en progreso, y deben hacerlo fuera del stand-up diario.
Si es el scrum master quien está preguntando, tal vez están preguntando para que puedan estar preparados para los próximos bloqueos de carreteras. Si ese es el caso, solo sé honesto.
En scrum, el equipo no tiene la obligación de terminar una tarea o historia en particular hasta el final del sprint, suponiendo que estén preguntando sobre una historia relacionada con el sprint actual (en comparación con un arreglo fuera de banda). Los plazos para las tareas dentro de una historia son propiedad del equipo, y no deberían sentir la presión de un gerente de proyecto.
Sin embargo , el desarrollo de software es un proceso colaborativo, por lo que es razonable dar cabida a tales preguntas, dentro de lo razonable.
¿La solución? Desde su perspectiva: responda lo más honestamente que pueda, tan brevemente como pueda si es durante el stand-up. Si está trabajando activamente en la tarea sobre la que se le pregunta, siempre puede decir algo como "se estima que tomará un par de horas, por lo que podría terminarlo hoy". Si no está trabajando en ello, un simple "No sé, no he comenzado a trabajar en él. Creo que la estimación todavía parece bastante precisa".
Desde su perspectiva: necesitan aceptar su respuesta.
La respuesta a eso casi siempre debería ser "no". Simplemente no hay necesidad de comprometerse con un entregable al final del día para una tarea en medio de un sprint. Si la tarea finaliza hoy a las 4 p.m. o mañana a las 9 a.m. es irrelevante siempre que la historia en su conjunto esté terminada al final del sprint.
Esa es una pregunta razonable para hacer. Solo responde honestamente. Me doy cuenta de que eso es muy difícil de hacer. He estado allí. Creo que los desarrolladores son inherentemente optimistas. Analizaremos una tarea y pensaremos "eso solo me llevará un par de horas" y, antes de que te des cuenta, ha pasado todo el día. Por eso funciona ágil: admitimos nuestras limitaciones en la estimación y hacemos nuestro mejor esfuerzo para dividir las cosas en los trozos más pequeños posibles.
fuente
Pídale a Scrum Master que aclare el propósito de una reunión de Sprint y Stand Up. Casi cualquier persona que trabaje con Scrum diría que el propósito de un Sprint es decidir qué se hace durante la duración del Sprint y nunca he oído hablar de que algo se deba durante un sprint.
Tal vez tenga que atender emergencias que realmente no tengan nada que ver con un sprint. Los equipos / desarrolladores que tienen estas tareas fuera del sprint, deben asegurarse de no incluir el tiempo para hacer esto como parte de la planificación del sprint. Tal vez tenga un día laboral de 8 horas, pero si pasa 1-2 horas apagando incendios, no puede esperar incluirlo como parte de la estimación.
En lo que respecta a las reuniones standup, puede sugerir algún otro sistema para rastrear cuándo se realizarán ciertas tareas inmediatas como algún tipo de sistema de tickets de soporte. Estos ni siquiera deberían discutirse durante el standup.
Parece que tu scrum master necesita ser reentrenado o repensar por qué estás haciendo Scrum en primer lugar. No es adecuado para todos los grupos y situaciones. Alguien en la cima no lo ha comprado.
fuente
He experimentado una microgestión como esta y la forma en que la he manejado con éxito es siendo muy transparente y comunicativa. No toma mucho tiempo ganar la confianza del gerente; construyes confianza y ellos retroceden. A veces incluso te da más espacio y latitud. Es posible que su gerente se sienta inseguro o fuera de control, por lo que esto se lo facilitará. Obviamente no es lo ideal, pero ustedes son un equipo y todos deberían querer el mismo resultado. Buena suerte.
fuente
"Se hará cuando se haga".
No tiene ningún valor intentar obtener estimaciones de finalización de los desarrolladores. Las estimaciones son inexactas, especialmente si se basan en el tiempo. Además, las personas en roles gerenciales tienden a interpretar esas estimaciones como compromisos, lo que resulta en los efectos perjudiciales que sienten los desarrolladores.
Una opción sería evitar responder la pregunta en términos de compromisos de tiempo.
"Esta tarea se realizará después de que haga las cosas A, B y C."
"Está bien. ¿Y cuánto tiempo llevará eso?"
"Lo veremos al final del día".
Cambiar la conversación de los compromisos de tiempo a lo que hay que hacer puede ayudar a tomar ventaja y mostrar que "cuánto tiempo se llevará a cabo" es menos importante que "qué se necesita para hacerlo".
fuente
No te dejes intimidar por el maestro scrum. Habla abierta y francamente sobre el trabajo por delante. Haga preguntas de él / ella como cuál es la urgencia. ¿Por qué tiene que ser hecho por 4? Si realmente se necesita hacer otras tareas, puede que sea necesario empujarlas hasta más tarde. Es tu oportunidad de construir braguero. Las respuestas de Frank son mejores temprano que excusas después.
fuente
Cuanto más "micro" sea la gestión, más difícil será hacer predicciones precisas. Si tengo 20 tareas de ocho horas, es decir, tareas que se estiman razonablemente que toman ocho horas cada una, eso debería hacerse en cuatro semanas, o tal vez unos días más o menos. Si tengo una de esas tareas, hay mucha más variabilidad.
Tal tarea puede llevar 10 minutos si el problema a resolver resulta ser mucho más fácil de lo que pensaba. (Me ha sucedido, calculé que necesitaba escribir bastante código, y resultó que alguien ya había escrito exactamente lo que necesitaba). O puede llevar una semana (mi código no funciona debido a un error en una biblioteca que necesita ser reparado, lo que tiene todo tipo de malas consecuencias). Para veinte tareas, estas cosas se equilibran. No es para una tarea.
Alguien te pide que predigas el futuro. No puedes hacer eso. Y si se le pide que prediga un solo evento, las estadísticas no lo ayudan. El tipo de persona que hace estas preguntas no entiende el significado de "estimar". Por lo tanto, si se le pregunta "se hará esto en cuatro horas", las posibles respuestas son "muy probable", "tal vez, tal vez no" y "muy improbable".
fuente
Esta es una buena pregunta. Contestaré desde la perspectiva de alguien con 30 años de experiencia con una década como gerente de proyectos dedicado en todas las áreas, excepto el desarrollo de software, pero recientemente tropecé con el desarrollo de software del área sin querer. Independientemente de la metodología utilizada en su equipo y de cómo se llama, al final del día, los proyectos de desarrollo son los mismos que cualquier otro en el sentido comercial de que los objetivos deben cumplirse dentro de las limitaciones de tiempo, presupuesto y calidad: - y mientras los proyectos se ejecutan, el negocio continúa moviéndose y evolucionando y tiene una buena posibilidad de inyectar cambios en su proyecto. Por lo tanto, es necesario establecer y comprometerse con objetivos y plazos, y poder proporcionar actualizaciones con frecuencia y cuando se le solicite. Yo no'
Dicho esto, en mi experiencia, lo que hace que las estimaciones de tiempo en el desarrollo de software sean particularmente desafiantes es que los proyectos de desarrollo implican muchos territorios desconocidos. La definición técnica de un "proyecto", según el Cuerpo de Conocimientos de Gestión de Proyectos del Project Management Institute, es que un proyecto debe ser único. Sin embargo, la gran mayoría de los "proyectos" en TI son meras re-ejecuciones de planos y diseños previamente diseñados y libros de ejecución. En el desarrollo de software, tenemos marcos y varios patrones de diseño genérico que hacen que gran parte del desarrollo sea reutilizable, pero aún así, el núcleo de cada proyecto es completamente único.
Además, la mayoría de los proyectos de desarrollo implican la integración con otros sistemas y la rapidez con que se puede hacer es una gran suposición. Estoy trabajando en un proyecto en este momento en que mis estimaciones de tiempo originales se basaron en el supuesto de que los 4 sistemas con los que necesito interactuar programáticamente tendrían API, y resulta que ninguno lo hace. Además, uno de los sistemas está alojado en la nube, y mi organización tiene políticas que prohíben el trabajo realizado. ¿Quién podría haber predicho eso?
A medida que se hacen descubrimientos que ponen en peligro los plazos, es importante comunicar bien por qué se produjo el retraso, por qué no se pudo prever, etc.
También me han pasado que me dijeron que el plazo dado no funcionaría y que sucedería mucho más "rápido". A otra variación se le está dando una gran cantidad de cambios para inyectar en el desarrollo sin que también se le otorgue el tiempo adicional. Hay una ley en física que dice que la materia no puede ser creada o destruida, y esto viene a mi mente porque me parece que el tiempo tampoco puede ser creado de la nada. Acelerar el desarrollo probablemente tendrá un impacto negativo en la calidad del lanzamiento, la capacidad de soporte del producto y / o la evolución futura del producto.
Las solicitudes sobre el cronograma deben responderse en términos comerciales generales. "Sí, estamos en camino de cumplir con los plazos previamente comprometidos, y no hay problemas que lo pongan en peligro". Las solicitudes para agregar un alcance significativo sin más tiempo, o simplemente para acelerar la entrega, deberían ser una forma de "podemos hacer eso, pero para que todos sepan que conlleva un riesgo inherente de errores porque gran parte del tiempo de desarrollo se hace para ser proactivo. para no introducir errores y también para realizar pruebas exhaustivas ". Cuando responden con "así que solo prueben más rápido", eso obtiene una respuesta que explica que las pruebas de desarrollo no implican tiempo de inactividad y pueden acelerarse sin introducir algún riesgo de defectos faltantes.
En resumen, simplemente sugiero que todos los desarrolladores, no solo los leads, scrum master o gerente de proyecto, estén preparados para discutir sus tareas en un contexto comercial y para tener discusiones sobre los parámetros cambiantes del proyecto al tomar en cuenta las compensaciones que puede resultar.
fuente
- Guía Scrum , página 15
Cada desarrollador debe actualizar su estado de tarea y las horas restantes estimadas cada día en cualquier herramienta de productividad que utilice su equipo (por ejemplo, TFS).
Entonces, la respuesta simple a su gerente es dirigirlo a la columna "horas restantes" en la lista de tareas. Con suerte, aprenderá que puede acceder a estos números él mismo y dejar de hacer preguntas estúpidas.
fuente
Al hacer cualquiera de las preguntas anteriores, lo que el scrum master está tratando de decidir es si estamos en camino para este sprint y si hay algún problema de bloqueo para que puedas competir en esta tarea.
Los puntos de la historia no se correlacionan con las horas hombre, no están destinados a hacerlo, pero al preguntarle si puede hacer algo antes de una fecha, ¿realmente le pregunta qué le impide competir en esta tarea? Si necesita algo, pregunte, en mi opinión, su función es asegurarse de que pueda competir el sprint, eso es lo que realmente está preguntando ...
fuente