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.