¿Cómo hacer que Scrum funcione para un equipo con roles definidos?

13

Alguna información de fondo

Soy parte de un equipo interno de desarrollo de software. Consiste en

  • 5 desarrolladores (con experiencias que van de 2 a 5 años, soy uno de ellos)
  • 3 personal de implementación (realizan la implementación y capacitación del software)
  • y 1 gerente de proyecto.

Desarrollamos muchos proyectos pequeños y medianos, y sus líneas de tiempo generalmente se superponen. El desarrollo es así:

  1. "Cliente" nos da un conjunto de requisitos iniciales
  2. Desarrollamos el sistema a dicha especificación
  3. Presente dicho sistema al "cliente"
  4. "Cliente" nos da requisitos adicionales basados ​​en dicha presentación
  5. Repita 2-4 hasta que el "cliente" se haya quedado sin nuevos requisitos o la fecha objetivo de implementación esté cerca
  6. Configurar e implementar el sistema

Esto, junto con el hecho de que es el "cliente" el que maneja los plazos la mayor parte del tiempo (que es una señal de alerta, por lo que veo aquí en Programadores y PM.SE) y no seguimos una metodología de desarrollo definida. a la codificación del vaquero, el código casi imposible de mantener y los errores que pasan por la producción, entre otras cosas. Es por eso que optamos por adoptar una metodología basada en Agile como Scrum.

¿Por qué scrum?

Fue la iniciativa de nuestro gerente, y todos parecen estar de acuerdo, dada nuestra situación actual.

El problema con Scrum

Algunos de los elementos de Scrum tienen conflictos con nuestra configuración actual que no podemos abordar fácilmente, en particular la naturaleza de "Jack-of-All-Trades" de los desarrolladores de Agile. El equipo de implementación no sabe cómo programar, y los desarrolladores tienen habilidades de comunicación y capacitación por debajo del promedio. Y esta alineación realmente no cambiará en el corto plazo.

La pregunta

¿Afectaría la efectividad de Scrum como metodología? ¿Serían necesarios otros cambios para compensar? ¿O sería mejor abandonar el pensamiento por completo y pensar en una metodología diferente?

Revenant
fuente
17
Tu "¿Por qué Scrum?" El párrafo es bastante importante, y está esencialmente vacío en este momento. Parece que a su gerente no le gusta lo que está haciendo actualmente y, por lo tanto, decidió aleatoriamente Scrum porque Scrum.
RemcoGerlich
44
Existe un rol / lugar definido para los especialistas en un entorno ágil (scrum o de otro tipo). No confunda el hecho de que se espera que las personas intervengan en cosas que no son su especialidad para una "prohibición" de especialistas. Además de eso, ¿podrías explicar por qué elegiste scrum y no kanban? me sorprende, dada la reiteración constante de requisitos, un mejor ajuste que uno con sprints predefinidos que funcionan mejor con requisitos fijos ...
Elias Van Ootegem
12
¿5 desarrolladores pero no un solo probador?
Apfelsaft
8
@Revenant estás confundiendo el jack de todos los oficios (individual) con cross -unctional (equipo).
guillaume31
66
Popularidad. Siempre la mejor manera de elegir cualquier cosa.
Robert Harvey

Respuestas:

17

En realidad, su forma actual de trabajar no está tan alejada de Scrum como podría pensar.

En Scrum, también obtiene un conjunto inicial de requisitos, los implementa y demuestra el resultado, y en función de la demostración, se le pueden dar nuevos requisitos o las partes interesadas pueden decidir que el producto es lo suficientemente bueno como para que no se necesite más desarrollo.
En su situación, el "cliente" del que habló podría recibir el rol de Propietario del producto en Scrum (ya parece que cumplen ese rol estableciendo las prioridades dentro de un proyecto y decidiendo cuándo está listo para implementarse).
Un gran cambio podría ser la duración de una iteración. En Scrum, una iteración debería durar entre 1 y 4 semanas.

En cuanto a la composición del equipo y la falacia de Jack-of-All-Trades: Scrum no requiere que todos sean un Jack-of-All-Trades. Scrum solo requiere que el equipo en su conjunto tenga todas las competencias requeridas para obtener el producto de una lista de requisitos a algo que ha sido / puede implementarse.
En su situación, podría ver fácilmente un equipo por proyecto que consta de uno o más desarrolladores (que realizan principalmente el trabajo de implementación y prueba) y un miembro del "personal de implementación" que se centra principalmente en la creación de manuales y material de capacitación para las características que los desarrolladores ahora están implementando.

Después de que el cliente / propietario del producto haya dado luz verde para la implementación, el trabajo para el equipo scrum se realizará en su mayoría, por lo que los desarrolladores pueden ir a otro proyecto (y estar disponibles solo a pedido para solucionar los problemas posteriores a la implementación) y la implementación el personal puede pasar a realizar la capacitación y apoyar el despliegue.

El hecho de que haya una fecha límite no es un problema real, siempre y cuando haya suficiente flexibilidad en la funcionalidad que debe existir en esa versión.

Bart van Ingen Schenau
fuente
2
Un cambio que introducirían Scrum y otras metodologías ágiles es que el producto / todas las características deben "hacerse", en un estado de envío, al final de cada iteración.
stannius
5

Piden alternativas, así que voy a decir eXtreme Programming (XP). Específicamente, creo que la programación de pares podría ayudarte aquí.

Al unir a personas con diferentes habilidades, no importa en qué habilidad: hacer café, probar, entrenar, etc., puede difundir las habilidades en todo el equipo.

Pero para ser sincero, no parece que SCRUM esté tan lejos para ti. Parte de SCRUM es ser flexible y encontrar lo mejor para su equipo. Parte de XP es respetar a tu equipo y adaptarte. Tal vez dentro de 100 años tengamos una profesión más desarrollada con reglas estrictas y rápidas (aunque lo dudo), pero por ahora, hacer lo que funciona para usted es todo lo que tenemos. Lo importante es tener bucles de retroalimentación. Si algo no funciona, entonces el equipo debe discutirlo y probar cosas nuevas hasta que encuentren algo que funcione.

Encaitar
fuente
3
+1 para XP. La pregunta indica que la razón principal para adoptar Scrum es que "no seguimos una metodología de desarrollo definida que conduce a la codificación de vaquero, el código casi imposible de mantener y los errores que pasan por la producción" - Scrum hará poco o nada por esto, ya que no prescribe ninguna práctica técnica, y solo las prácticas técnicas solucionarán esos problemas. Hay muchos otros marcos ágiles que lo hacen, con XP como el mejor candidato, ya que es el más cercano de los conocidos a la estructura de Scrum.
Jules
3

¿Cómo hacer que Scrum funcione para un equipo con roles definidos?

Simplemente hazlo. De acuerdo con la guía scrum, todos somos desarrolladores, pero aquí en el planeta Tierra, diferentes personas traerán diferentes cosas a la mesa. Yo casi me linchado cuando me sugirió que algunas personas son realmente los probadores, mientras que otros escriben software.

Algunas cosas que quizás desee abordar:

Sprints

Parece que tiene una fase de desarrollo inicial seguida de una serie de lo que aparentemente son sprints. Considera romper esto. El cliente no solo verá algo temprano, sino que tendrá una mejor idea de los hitos del desarrollo a medida que ocurren.

Plazos fijos

Esto surge una y otra vez y de hecho es una espina persistente en el lado de los desarrolladores donde actualmente trabajo. Scrum establece estimaciones para el sprint, nada más. Sí, puede alcanzar el objetivo después de una serie de sprints, pero una vez que el cliente tenga en cuenta las primeras versiones, es probable que el alcance se desplace significativamente. Esto no es un problema en sí mismo, pero el cliente debe ser consciente de que se llevará a cabo más trabajo en los sprints posteriores y superará los requisitos conocidos.

Robbie Dee
fuente
Solo para señalar lo que parece una mala caracterización errónea de Scrum: no todo el mundo es desarrollador: puedes y tendrás miembros especializados, pero son parte del equipo de desarrollo y responsables de la salida de los sprints de ese equipo. En nuestra configuración de Scrum, los probadores generalmente están detrás de algunos sprints en términos de lo que están trabajando en comparación con los desarrolladores, ya que no pueden probar lo que no se ha hecho, pero están creando los planes de prueba y los posibles datos de prueba que necesitarán. Mientras se ocupan de las características principales, entramos en el modo de corrección de errores más antiguo y preparamos el parche a medida que se ponen al día con el corte de lanzamiento.
Duffy
3
En realidad, estabas "linchado" por sugerir que los probadores de ser tratados como pollos, cerdos en lugar de (al menos eso es por lo que downvoted respuesta) ...
David Arno
@Duffy Estoy de acuerdo: no hay más títulos que desarrollador, pero en realidad, los roles a menudo se organizan de acuerdo con las líneas tradicionales.
Robbie Dee
@DavidArno En nuestra tienda están. De hecho, tenemos una configuración idéntica a la que describe Duffy. Nuestros probadores trabajan un sprint o dos detrás. El problema es qué miembros del personal considera que son el equipo de desarrollo. Como describí en mi publicación , simplemente no acepto que los DBA y los gerentes de compilación se puedan ajustar de la misma manera que los desarrolladores de vainilla: YMMV.
Robbie Dee
Nos las arreglamos para calcular el tiempo bastante bien, se necesita un pensamiento y un proceso un poco diferente para las estimaciones de los evaluadores, ya que son más difíciles de procesar que las estimaciones intestinales, pero generalmente terminan con estimaciones de tiempo mucho más confiables (una vez que pueden basarlas durante prueba de primer paso) que los desarrolladores debido a la naturaleza de su trabajo versus el nuestro. Soy el desarrollador de DBA / DB del equipo y encajo completamente bien en un sprint, así que no estoy seguro de cómo no encajan en el flujo de trabajo de los demás.
Duffy
3

Su situación podría ser una mejor coincidencia para Kanban, ya que puede comenzar con lo que tiene e iterar desde allí. Esto significa que no tendría una introducción de Big Bang que sea perjudicial para sus proyectos actuales, solo comience visualizando las tareas en un tablero y adoptando algunas de las prácticas, como retrospectivas y reuniones diarias.

Debes ser un poco más cuidadoso que con Scrum porque no es tan prescriptivo: por lo tanto, tiene la tendencia a volver a lo que fue antes en lugar de inculcar una mentalidad ágil adecuada.

ndyer
fuente
0

Scrum no funciona bien con proyectos separados que se superponen, ya que no tienes un grupo estable de personas trabajando en un proyecto para el sprint completo. Por lo tanto, conceptos como verbosidad, etc., probablemente solo lo depriman.

Pero primero tomar la historia que brinda el mejor costo / beneficio para el cliente e implementarla incluyendo pruebas totalmente automatizadas, a una calidad que sea lo suficientemente buena como para ser implementada, antes de trabajar en la próxima historia es un concepto útil. Del mismo modo, se requiere que todo el código escrito para una historia sea revisado por otro desarrollador antes de que la historia se considere "hecha".

Supongo que su personal de implementación tiene que escribir documentos de capacitación y referencia, se pueden escribir (primer borrador) para cada historia antes de que se escriba el código, por lo que se convierten en las pruebas de aceptación.

Espero que encuentre que, al comienzo de cada proyecto, donde la contribución del personal de implementación sería de mayor ayuda para los desarrolladores, están 100% comprometidos con la implementación del proyecto anterior. Por lo tanto, considere si el personal de implementación puede estar trabajando en escribir las historias y la documentación del usuario para el próximo proyecto, mientras los desarrolladores escriben el código para el proyecto actual.

El "desarrollo impulsado por el comportamiento" con el personal de implementación escribiendo el ejemplo que se utiliza en las pruebas puede funcionar.

Por lo tanto, hay un poco de Scrum que lo ayudará, pero intente inclinarse desde Scrum en lugar de usar Scrum.

Ian
fuente
"De ahí conceptos como verbosidad ..." - ¿quiso decir velocidad?
Robbie Dee
Si esto fuera en una aplicación de gran empresa con varios departamentos que desean diferentes cosas en diferentes momentos, ¿Scrum sería un mal ajuste para eso también?
JeffO
@jeffO, podría trabajar con scrum, siempre que UNA persona tuviera el poder de decidir entre departamentos.
Ian
@Ian: esa es una buena razón para tener solo un propietario de proyecto y los proyectos se pueden cortar y cortar en cubos tan grandes o pequeños como alguien considere conveniente.
JeffO