¿Agile obliga a los desarrolladores a pasar más tiempo trabajando realmente?

25

Al observar las prácticas ágiles comunes, me parece que (¿intencionalmente o no?) Obligan a los desarrolladores a dedicar más tiempo a trabajar en lugar de leer blogs / artículos, chatear, tomar un café y simplemente postergar.

En particular:

1) Programación en pareja: el mayor forzador de trabajo, solo porque es inconveniente hacer toda esa procrastinación cuando hay dos de ustedes sentados juntos.

2) Historias breves: cuando tiene una ENORME porción de trabajo que debe realizarse, por ejemplo, en un mes, es bastante común que se relaje en las primeras tres semanas y cambie al modo OMG DEADLINE para la última.

Y con los pequeños trozos (que se deben hacer en un día o menos) es exactamente lo contrario: siente que el tiempo es escaso, no hay espacio para maniobrar y se le hará responsable de la tarea muy pronto, por lo que comienza trabajando de inmediato.

3) Comunicación y cohesión en equipo: cuando tiene un bajo rendimiento en un entorno lento, distante y silencioso, puede sentirse bien, pero cuando al final del día en la reunión de Scrum, todos se jactan de lo que han logrado y no tienen nada que decir que realmente pueden sentir avergonzado.

4) Pruebas y comentarios: una vez más, le impide mantener las tareas "99% listas" (cuando en realidad es alrededor del 20%) hasta que la fecha límite de repente ocurra.

¿Sientes que con Agile trabajas más que con metodologías "convencionales"? ¿Esta presión es compensada por el ambiente más cómodo y por la sensación de hacer las cosas bien rápidamente?

Punto fijo
fuente
3
Creo que ágil hace que los programadores sean más eficientes al hacerlo más feliz. De hecho, superó la dilación porque los dos programadores se ven, y la sensación de compartir ideas de códigos es mucho más gratificante que leer blogs o responder preguntas en SE.com
tacto
1
Entonces parece que la programación ágil es EPIC WIN, ¿estoy en lo cierto?
Adam Arold
2
¿Has oído hablar del "efecto de fecha límite"? La eficiencia casi se duplica cerca de la fecha límite: ¡ágil mantiene iteraciones de 2 semanas para equilibrar el aburrimiento (tiempo de inactividad) con la ansiedad que lo mantiene en la cúspide de ser productivo!
Doctorado
¡Agile simplemente te hace hacer tu trabajo con propiedad! Si es TUYO, pasarás más tiempo que café, navegación, blogs. Y como es SUYO, tendrá una razón positiva para reconocerlo y terminarlo, al igual que los demás. Por lo tanto, ¡mejores posibilidades de que el "equipo" alcance la meta! :)
PhD

Respuestas:

38

La idea principal detrás de los métodos ágiles es ayudarlo a ser productivo, en un sentido positivo. A nadie le importa si pasas una hora navegando todos los días si cumples con la fecha límite. Todos se enojan si navegas media hora todos los días, pero no cumples con tu fecha límite. La solución: facilitarle el cumplimiento de la fecha límite.

Como notó, la programación de pares asegura que se mantenga enfocado (entre todas las otras ventajas, como mejorar la difusión de habilidades / conocimientos, mejor código, menos errores, diseño uniforme, etc.).

Descubrí que la disciplina siempre es una lucha para mí. Si me emparejo con alguien, lo más probable es que uno de nosotros quiera que se haga un trabajo hoy y haga que el otro avance. Entonces, "trabajar por un mes" a menudo se convierte en "trabajar juntos durante una semana", sorprendiéndose de cómo esa gran cantidad de trabajo se resolvió al final, pasar un día más o menos recuperándose (refactorizando, arreglando TODOS en el código, agregando un un par de pruebas, navegando con la conciencia tranquila) y luego agarrando el próximo mes de trabajo.

Resultado neto: estoy mucho más relajado (más porque a pesar de la supervisión constante), la cohesión del equipo es mucho mejor, el trabajo se realiza más rápidamente, las personas no se quedan con algún problema menor durante horas o incluso días (porque alguien más puede detectar el problema mucho más rápido).

Cuando dices "puedes sentirte realmente avergonzado", ¿no es eso algo bueno? Significa que sientes que hiciste mal y deberías. No te pagan por no hacer nada. No hacer nada te hace sentir impotente, infeliz, indigno, miserable. En lugar de sentirte avergonzado, retrocede y piensa "¿Por qué no logré nada hoy?" ¿Necesitas ayuda? ¿Hay algo que no entiendas? ¿La tarea actual es demasiado difícil? No te gusta Tal vez puedas cambiar la tarea con otra persona. Quizás alguien más pueda ayudarte a superarlo. Ágil significa: asumir la responsabilidad en lugar de ser microgestionado como un títere con cuerdas. ¿Necesitas una herramienta? Ve a tu jefe y pídelo. Aprende a discutir. Aprenda a ponerse de pie y gritar cuando sea necesario.

En cuanto a las pruebas, hay un punto óptimo cuando su código colapsa repentinamente de "agradable" a "perfecto". Ese es el momento en que te das cuenta de que necesitas implementar la función X y crees que será una pesadilla y de repente te das cuenta de que el código está casi allí. Solo una pequeña refactorización aquí y allá. Una nueva clase y listo. Cuatro semanas de trabajo de repente se convirtieron en un día. ¡Victoria! ¡Triunfo!

Aaron Digulla
fuente
20

Estoy de acuerdo.

Programación en pareja

Es una forma de trabajo muy intensa y exhaustiva, y nunca la aplico a menos que tenga algunos desarrolladores que necesitan ser entrenados por otros (nuevos participantes, por ejemplo)

Cuentos cortos

Comunicación y cohesión del equipo.

Pruebas y comentarios

Sí Ágil y específicamente Scrum es un gran impulsor de productividad. Cuando se aplica correctamente, la rotación puede ser de hasta el 20% (1 desarrollador en 5 abandona la empresa).

La razón es simple: Scrum no proporciona más productividad it provides the whole company with much more visibility on what's going on(incluso en la gestión, por supuesto).

  • Hace imposible que un desarrollador solo haga lo mínimo. ¡El mínimo es ahora el promedio del equipo!

  • Hace imposible que la gerencia no colabore adecuadamente.

Es por eso que dije (en mis otras respuestas en preguntas similares), que Agile NO es para todas las organizaciones (y para todos).

Por ejemplo, el sector público realmente no es adecuado para Agile.

¿Ágil se utiliza como herramienta de presión? Por supuesto, lo he visto muchas veces. Simplemente empeora las cosas.


fuente
77
Re: agotador. Hacemos programación de pares en mi oficina. Son 8 horas de cosas súper intensas ... y luego puedes irte a casa. 40 horas de trabajo por semana en el corazón de Silicon Valley. (Ayuda a prevenir el agotamiento).
2
+1 para "Ágil NO es para todas las organizaciones".
Ryan Hayes
Buena respuesta. ¿También tiene una fuente para este "(1 desarrollador en 5 deja la empresa)". Sería interesante leer toda la historia.
Jan_V
@ Jan_V: Ken Schwaber mismo (en 2008). Lamentablemente, eso no fue grabado.
+1: Muy buena respuesta. Agile permite seguir el desarrollo con mucha más precisión, pero no necesariamente aumenta la productividad. Muchos programadores no necesitan programación de pares para estar motivados: un problema interesante puede ser suficiente para mantenerlos en funcionamiento durante 10 horas seguidas. En ciertas situaciones, SCRUM puede hacer que la productividad disminuya en un 50% o más. Pero todas estas historias siempre se explican con: "No lo estás haciendo de la manera correcta".
Giorgio
8

¿Sientes que con Agile trabajas más que con metodologías "convencionales"? ¿Esta presión es compensada por el ambiente más cómodo y por la sensación de hacer las cosas bien rápidamente?

Me hace trabajar más, pero, sobre todo, me hace trabajar en lo correcto. En cualquier momento sé lo que debería estar haciendo .

Es una especie de presión positiva. Eso es bastante diferente de algunos externos "ya está retrasado, ¡trabaje más, codifique horas extras!" -tipo de presión.

Joonas Pulakka
fuente
7

En realidad, soy mucho más productivo cuando uso los métodos convencionales. Con el método convencional, creo, por ejemplo, un análisis detallado de requisitos, un estudio de viabilidad, una especificación funcional, una especificación técnica y muchos protocolos de reunión, ¡todo en unos pocos meses! ¡Incluso podría crear algunas líneas de código una vez que se realiza el análisis de impacto!

Ágil, todo lo que creo son unos pocos entregables.

usuario281377
fuente
4

En nuestra compañía,

Programación por parejas: cuando algo realmente complejo requiere un análisis amplio, incluso podríamos reunir a dos personas excelentes y hacer la tarea en tiempo RÁPIDO. Aquí la complejidad de la tarea decide la necesidad de programar pares.

Relatos breves: luego, durante 3 semanas (aproximadamente 5-6 horas por día) y corriendo en el último momento (aproximadamente 12 a 14 horas por día) como desarrollador, no me gusta tener una oscilación en mi carga de trabajo. Trabaje alrededor de 8 horas por día y mantenga su horario estable y esto siempre se ve FRESCO.

Comunicación y cohesión del equipo: en la reunión scrum no solo compartimos el estado de la tarea sino también los obstáculos. Aquí, cuando alguien realmente necesita ayuda, a otros miembros se les ocurren ideas para ayudarlo. Pero ciertamente necesitas un excelente equipo para esto y estamos :)

Pruebas y comentarios: Ciertamente, como desarrollador, no quiero que me carguen de errores por fin, el siguiente momento después de que encuentre un error fue solucionarlo y nuevamente, esto me permitiría tener un buen pronóstico de lo que debería / puede A continuación, vuelva a programar la fecha límite (si es necesario).

Entonces, como desarrollador, estoy muy contento con el tipo de tarea que tomo y estoy seguro de que puedo decir que nunca sentí la presión REAL de la fecha límite.

Gopi
fuente
4

¿Sientes que con Agile trabajas más que con metodologías "convencionales"?

  • Si te refieres a si me siento más productivo con Agile, diría que depende .
     
    Usualmente pienso en términos de Ferrari (como convencional) vs Landrover (como Scrum). Cuando se conduce por una autopista, Ferrari supera a Landrover.
     
    Es todo terreno cuando se necesita un jeep, no un auto deportivo; quiero decir, si sus requisitos son irregulares y / o si el trabajo en equipo y la experiencia gerencial no son tan buenos, tendrá que elegir Scrum, simplemente porque tratar de hacerlo convencional obtendrá te atascaste, como Ferrari se quedará fuera de la carretera.

En cuanto a "trabajar más" , bueno, creo que uno que espera cosas así probablemente subestima el coeficiente intelectual del programador y su capacidad para adaptarse a diversas formas de gestión de la demencia .

Hasta ahora, participé en dos equipos Scrum haciendo proyectos bastante diferentes en diferentes compañías. En ambos equipos no noté ningún cambio en mis hábitos en comparación con, por ejemplo, cascada / iterativo.

Me enorgullecería afirmar que esto se debe a que soy tan especial e invencible, pero, francamente, también he visto que los hábitos de todos los demás miembros del equipo son invencibles.

mosquito
fuente
"En cuanto a" trabajar más ", bueno, creo que uno que espera cosas como esas probablemente subestima el coeficiente intelectual del programador y su capacidad para adaptarse a varias formas de demencia de gestión": Bueno, puede haber equipos que realmente necesiten ser monitoreados de cerca para manténgase enfocado en sus tareas. En mi opinión, esto es especialmente cierto para desarrolladores inexpertos y malos planificadores. Por supuesto, para los programadores más experimentados, estas prácticas parecen demencia administrativa , es decir, pueden obtener muy poco o ningún beneficio de ellas.
Giorgio
@Giorgio, sí, quise decir algo así cuando dije que "si el equipo trabaja ... no es tan bueno" puede ser una buena razón para preferir ser ágil. Solo quiero señalar que incluso entonces, esperar que Agile los obligue a "trabajar más" es una especie de utopía ... o más precisamente un poco demasiado directo para funcionar bien. He visto que se usaba con éxito para enseñar a desarrolladores inexpertos y malos planificadores a trabajar y planificar mejor / más
gnat
2
Además de eso, para los programadores experimentados, todos los rituales SCRUM podrían obstaculizar el pensamiento. Para continuar con su metáfora: si está conduciendo un Ferrari en una carretera recta, tener que detenerse cada 2 km aproximadamente para verificar si va en la dirección correcta solo lo hará más lento. Pero sí, ayudará a los gerentes (malos) tener una sensación de control.
Giorgio
@Giorgio está de acuerdo. Hasta donde puedo decir, tienes mi metáfora perfectamente correcta :)
mosquito
2

Agile obliga a los programadores a hacer un trabajo más útil, porque las diversas técnicas de desarrollo ágil eliminan el trabajo ocupado y el trabajo que simplemente no es necesario.

Jay Godse
fuente
2
Cita necesaria. Esa es una afirmación audaz; He visto mucho trabajo ocupado en entornos "ágiles".
2

Es inconveniente hacer toda esa procrastinación cuando hay dos de ustedes sentados juntos.

Estoy en desacuerdo. Trabajé con un grupo de fumadores y todos lograron tomarse un descanso juntos durante períodos prolongados porque "todos lo hacían".

Común para aflojar en las primeras tres semanas

Esta es una señal de mala gestión, independientemente de la metodología. Incluso si se espera una gran parte en un mes, esperaría ver algo al final de la primera semana.

no tiene nada que decir, puede sentirse avergonzado.

Si estás dispuesto a masturbarte durante tres semanas, pensarás en algunas tonterías que decir.

4) Pruebas y comentarios: una vez más, le impide mantener las tareas "99% listas" (cuando en realidad es alrededor del 20%) hasta que la fecha límite de repente ocurra.

Los proyectos en cascada pueden tener pruebas y construcciones diarias.

Personalmente, odiaría escribir código y no tener nada que hacer durante un mes. Prefiero el ciclo de retroalimentación más corto en mi código, ya sea una revisión codificada o el cierre de sesión del usuario. Hacer que otros aprueben mi trabajo es gratificante. Es como el gato que deja caer un mouse en tu puerta solo para hacerte saber que está haciendo su trabajo.

JeffO
fuente
1

Agile no obliga a los desarrolladores a trabajar más , sino a trabajar de manera más eficiente

greuze
fuente
1
y más productivo, lo que es semánticamente más importante.
¿Sin embargo?
Casey
0

Plantear la pregunta 'obligar a los desarrolladores a trabajar más' parece un poco negativo, pero seguramente es positivo si realmente hacemos más y postergamos menos.

Dicho eso, es un buen punto. Me he sentido un poco agotado con agilidad este año, pero este es un gran beneficio no escrito que no había reconocido.

Estoy de acuerdo en que ágil puede llevar a los desarrolladores a ser más productivos. Sus puntos sobre la visibilidad, la responsabilidad y la tendencia a posponer menos son todos muy ciertos.

Pero ágil puede y también debe llevar a los desarrolladores a trabajar más duro por razones positivas: la zanahoria frente al palo. Bien hecho, ágil dará a los desarrolladores más interacción con los usuarios, menos beuracracia, más control sobre su trabajo, todo lo cual puede llevar a obtener más de su equipo.

Benjamin Wootton
fuente
1
tienes razón, Agile no se trata de trabajar más duro , se trata de trabajar de manera más eficiente en las cosas más valiosas . En mis años de experiencia, hace que los desarrolladores realmente trabajen menos porque tienen plazos y entregables más realistas; siendo mucho más productivo en la misma cantidad de tiempo, esto conduce a * eficiencia *
No ágil no se trata de hacer que el trabajo sea más eficiente (y no lo hace, teniendo en cuenta todas las reuniones, revisiones de sprint, etc.) sino más predecible : no establece un plazo y luego trabaja eficientemente para cumplirlo, sino que supervisa el proceso para que los plazos establecidos sean más razonables. Por lo tanto, no se trata de productividad sino de previsibilidad .
Giorgio
0

más trabajo aún no es semánticamente correcto o relevante para Agile, el objetivo es ser más productivo . Se enfoca específicamente en trabajar menos en lo incorrecto y más en trabajar normalmente en lo correcto ; lo que no significa trabajar más , solo de manera más productiva .

Un efecto secundario es que expone a los holgazanes y a aquellos que son poco eficientes o poco competentes muy rápidamente. Lo que suena más a lo que estás llegando.

La metodología es irrelevante sobre si un desarrollador no funciona o no . El proceso es, incluso en cascada, las revisiones de gestión y las revisiones de código pueden exponer estas cosas que no hacen nada, solo que no son tan transparentes como la mayoría de las metodologías ágiles.


fuente
-2

"Las armas no matan a la gente. ¡La gente mata a la gente!" Es lo mismo con Agile. Agile no hace que las personas trabajen más, los gerentes hacen que las personas trabajen más.

DPD
fuente
2
Los gerentes no hacen que las personas trabajen más. La visibilidad clara y la retroalimentación rápida hacen que las personas quieran trabajar más, por eso lo hacen.
Sean McMillan
Sí, pero ¿hasta qué punto? En un sprint recoges 10 historias, el siguiente sprint: 15, el siguiente sprint: 20, el siguiente sprint: 25. Cuánto tiempo antes de que el equipo alcance su límite humano y el gerente no realmente ágil decida llevarlo más alto. Tal vez no has enfrentado tal situación. En un proyecto verdaderamente ágil, descubres la velocidad de tus equipos a medida que avanzan los sprints. Como máximo, puede trabajar con un margen del 10%. Nada mas.
DPD
2
En los proyectos ágiles exitosos que he realizado, utilizamos el "clima de ayer" para programar nuestras iteraciones. Sin embargo, muchos puntos que completamos la última iteración son cuántos programamos esta iteración. El gerente puede engatusar / gritar todo lo que quiera, pero el equipo decide con qué se siente cómodo y eso es lo que se programa. (Por supuesto, tuvimos una aceptación a nivel de director, lo que significa que si el gerente intentara forzar al equipo, se metería en problemas)
Sean McMillan
@Sean McMillan: tal vez un gerente no sea tan diferente cuando un director se convierte en ágil, pero ese rara vez es el caso.
JeffO