Ho due problemi con Scrum nei sistemi integrati. Innanzitutto, ci sono molti compiti da svolgere, soprattutto nelle fasi iniziali, che non sono dimostrabili. Abbiamo iniziato con una scheda di sviluppo, nessun sistema operativo, nessun display, nessuna comunicazione seriale, ecc. Non avevamo il display per sei sprint.
I primi quattro sprint sono stati:
- Avvio e funzionamento di RTOS
- Creazione di attività scrivendo driver di rete e seriali
- Scrivere routine di interrupt per pulsanti, comunicazione, ecc.
- Scrittura delle classi e dei metodi del database primario
- Scrivere un menu di debug seriale
La maggior parte di questi compiti non è adatta per le storie degli utenti. In effetti, l'unica interfaccia nell'intero sistema era il menu di debug seriale, costruito nello sprint 3, quindi non c'era nulla da dimostrare alla fine degli sprint. Anche il menu seriale era destinato all'uso interno e non all'utente finale. Tuttavia, voglio ancora tracciare e gestire queste attività di sviluppo tramite Scrum.
Abbiamo finito per scrivere frasi "user story" come "Come sviluppatore ...", di cui non sono contento ma nell'uso di Target Process (www.targetprocess.com), non esiste un concetto di articolo arretrato che è un compito o un lavoretto.
In secondo luogo, come gestite le versioni e i test? È una vera seccatura per noi perché i tester non hanno i debugger hardware, quindi dobbiamo creare versioni flash del codice e masterizzarle sulle loro schede di sviluppo per testarle. I tester non sono tecnicamente precisi come gli sviluppatori e spesso richiedono molto supporto per far funzionare le cose nelle fasi iniziali (reimpostare la scheda, collegare la comunicazione seriale, ecc.) O persino per capire l'output.
Infine, per quanto riguarda la definizione di done, uno sprint non può essere completo fino a quando tutte le storie non sono complete. Tutte le storie non sono complete fino a quando non sono state verificate dai tester. Non c'è modo di evitare di "svaligiare" il tempo degli sviluppatori da dare ai tester. In altre parole, se le ultime tre storie utente nello sprint impiegheranno cinque giorni per essere testate, dovranno essere codificate e l'unità testata cinque giorni prima della fine dello sprint. Cosa dovrebbe fare lo sviluppatore? Smetti di lavorare?
Sto facendo il faceto, ma è un vero problema cercare di conformarmi alle regole. Ora sto bene piegando le regole, ma il problema che ho è che rovina tutte le mie metriche di burndown se non riesco a contrassegnare le cose fatte fino a quando non vengono testate.
Mi piacerebbe sapere come gli altri hanno gestito queste situazioni.