¿Cómo maneja el trabajo no funcional con Scrum en sistemas integrados?

15

Tengo dos problemas con scrum en sistemas embebidos. Primero, hay muchas tareas que hacer, especialmente en las primeras etapas, que no son demostrables. Comenzamos con una placa de desarrollo, sin sistema operativo, sin pantalla, sin comunicaciones serie, etc. No tuvimos nuestra pantalla para 6 sprints.

Los primeros 4 sprints fueron:

  • Poner en marcha el RTOS
  • Creación de tareas Escritura de controladores de red y serie
  • Escritura de rutinas de interrupción para botones, comunicaciones, etc.
  • Escribiendo las clases y métodos de la base de datos primaria
  • escribiendo un menú de depuración serial

La mayoría de estas tareas no son adecuadas para las historias de usuario. De hecho, la única interfaz en todo el sistema era el menú de depuración en serie, integrado en sprint 3, por lo que no había nada que demostrar al final de los sprints. Incluso el menú de serie estaba destinado a uso interno y no a un usuario final. Sin embargo, todavía quiero seguir y administrar estas actividades de desarrollo a través de scrum.

Terminamos escribiendo frases de "historias de usuario" como "Como desarrollador ...", con las que no estoy contento pero al usar Target Process (www.targetprocess.com), no hay un concepto de acumulación de pedidos. elemento que es una tarea o tarea.

Segundo, ¿cómo manejas las versiones y pruebas? Es un verdadero dolor para nosotros porque los probadores no tienen los depuradores de hardware, por lo que tenemos que crear versiones flash del código y grabarlos en sus tableros de desarrollo para probar. Técnicamente, los evaluadores no son tan hábiles como los desarrolladores y, a menudo, requieren mucho apoyo para que las cosas funcionen en las primeras etapas (restablecer la placa, conectar las comunicaciones serie, etc.) o incluso para comprender el resultado.

Finalmente, con respecto a la definición de hecho, un sprint no puede completarse hasta que todas las historias estén completas. Todas las historias no están completas hasta que sean verificadas por los evaluadores. No hay manera de evitar el "robo" del tiempo del desarrollador para dar a los evaluadores. En otras palabras, si las últimas 3 historias de usuarios en el sprint demoran 5 días en realizar la prueba, deben codificarse y probarse en la unidad 5 días antes de que finalice el sprint. ¿Qué se supone que debe hacer el desarrollador, dejar de trabajar?

Estoy siendo gracioso, pero es un problema real tratar de cumplir con las reglas. Ahora, estoy de acuerdo con doblar las reglas, pero el problema que tengo es que arruina todas mis métricas de quemado si no puedo marcar las cosas hasta que se prueben.

Me encantaría saber cómo otros han manejado estas situaciones.

    
pregunta Bruce 13.05.2011 - 20:41

3 respuestas

8

Está utilizando una metodología en un producto que no es compatible con IMHO.

En la forma en que la mayoría de las personas define ágil, todo el trabajo es negociable en función de las prioridades cambiantes, reordenables o reemplazables.

La forma en que la mayoría de la gente define la cascada es que el trabajo se presenta en secuencia de antemano desde un esfuerzo significativo de arquitectura al principio.

La tarea que enumeras arriba me parece muy catastrófica, tienen que estar en un cierto orden y no son negociables.

No estoy diciendo que tengas que respetar el punto de vista de nadie de ningún proceso, pero al menos para estas tareas parece que estás en un proyecto no ágil para mí. Tratar de golpear eso en un proceso ágil va a ser un ajuste descuidado en el mejor de los casos.

Si el resto del proyecto se adapta bien a ágil, no me preocuparía demasiado que la configuración inicial sea mala, pero el hecho de que menciones RTOS y las placas de desarrollo me hace sospechar que todo irá mejor. en algo más como cascada (una larga secuencia de dependencias inamovibles).

    
respondido por el Bill 18.05.2011 - 20:58
4

Bien, no sé nada sobre la construcción de sistemas integrados, pero por lo que puedo ver, no hay nada que haga que Scrum sea inapropiado para tal desarrollo. Es fácil quedar atrapado en preocuparse por no tener realmente la funcionalidad de usuario enfrentada, por lo que es difícil escribir "historias de usuario" con tener usuarios. Excepto que las historias de los usuarios no son realmente parte de Scrum, a menudo se usan con Scrum, sino en realidad como una herramienta.

Lo que forma parte de Scrum es la idea de ofrecer funciones completas que se hayan probado y puedan implementarse en un entorno real en cada Sprint. Cuando comienza desde cero el primer día de cualquier tipo de proyecto, el valor real de cualquier tipo de funcionalidad que pueda ofrecer en Sprint 1 es bastante pequeño. Eso se debe a que cada cosa pequeña necesita toneladas y toneladas de infraestructura construida para que funcione. Pero el punto es que solo construyes suficiente infraestructura para hacer que cada característica funcione. Y luego lo desarrollas a medida que agregas más funciones.

La idea es que NO pases meses y meses construyendo una infraestructura que no tiene forma de ser detectada desde fuera del sistema. ¿Por qué? Porque hasta que no construyes las cosas que realmente hacen cosas, no sabes exactamente qué debe ser la infraestructura. Eso es lo que aprendes a medida que construyes las características reales del sistema. Si construye la infraestructura al principio, entonces la está construyendo cuando sabe menos acerca del sistema.

Si no tienes tiempo para escribir historias de usuarios, recuerda que los usuarios no tienen que ser personas. Entonces, escribe cosas como: "Como un controlador de interrupciones CMOS, necesito poder detectar el estado del indicador de modulación de la pila de Bingle Whozzit cuando el compresor fluxotronic señala una carga insuficiente de bypass pasivo". Absolutamente no escribas "Como desarrollador ..." historias de usuarios.

    
respondido por el Dave 19.05.2011 - 04:18
1

Usas Scrum en un área muy específica y violas el supuesto proceso en cada paso. Su pregunta probablemente debería ser: ¿Existe otra metodología ágil que se ajuste mejor a mi entorno? Simplemente es muy difícil ayudarlo a mejorar Scrum si su entorno no lo permite. Los problemas que veo en tu descripción:

  • No hay tareas demostrables que puedan considerarse tareas de infraestructura. Si necesita varios sprints para hacer algo que no se considera un valor comercial, es probable que sus historias de usuario estén mal definidas. Si necesita crear una herramienta o cualquier otra cosa para poder entregar valor comercial, entonces el producto se puede dividir en dos partes / lanzamientos: crear una herramienta y crear un valor comercial. En tal caso, sus historias de usuario "Como desarrollador ..." serán completamente válidas porque la herramienta se crea para los desarrolladores. El problema aquí es cómo comunicar esto al cliente porque su participación en la primera versión es cero. Si no hay valor comercial para los clientes, ¿cómo pueden participar? ¿Cómo puede el propietario del producto definir la prioridad comercial? Creo que el principal problema aquí es que esto no es algo que se ajuste a Scrum. Scrum intenta entregar primero las funciones comerciales más importantes, pero necesita dos meses para entregar la primera. Scrum y Agile integran el cambio: ¿qué ocurrirá si después de entregar las primeras funciones, el cliente requiere algún cambio que se remonta a todos los sprints iniciales?
  • Pruebas. Otro fracaso porque el equipo en Scrum se considera como un grupo de miembros de funciones cruzadas. Significa que todo el mundo hace desarrollo y prueba y, debido a eso, no hay situaciones descritas en su punto final (o al menos 5 días de duración). No significa que no pueda haber un control de calidad separado para realizar pruebas más complejas y sofisticadas, pero el equipo debe proporcionar una función ya probada / verificada. En su caso, realmente parece que Scrum no es lo que necesita. Usted necesita que el desarrollo se maneje por separado y las funciones de prueba y aprobación entre ellos.
respondido por el Ladislav Mrnka 14.05.2011 - 23:11

Lea otras preguntas en las etiquetas