Ho due problemi con scrum nei sistemi embedded. 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 nostro display per 6 sprint.
I primi 4 sprint erano:
- Ottenere il RTOS attivo e funzionante
- Creazione di attività Scrittura di driver di rete e seriali
- Scrivere routine di interrupt per pulsanti, comunicazioni, ecc.
- Scrittura delle classi e dei metodi del database primario
- Scrittura di un menu debug seriale
La maggior parte di queste attività non è adatta alle storie degli utenti. In effetti, l'unica interfaccia dell'intero sistema era il menu di debug seriale, realizzato nello sprint 3, quindi non c'era nulla da dimostrare alla fine degli sprint. Anche il menu seriale era pensato per uso interno e non come utente finale. Tuttavia, voglio ancora monitorare e gestire queste attività di sviluppo tramite scrum.
Abbiamo finito per scrivere frasi di "user story" come, "Come sviluppatore ...", di cui non sono soddisfatto ma utilizzando Target Process (www.targetprocess.com), non esiste il concetto di un backlog elemento che è un'attività o lavoretto.
In secondo luogo, come gestisci i rilasci e i test? È un vero dolore per noi perché i tester non hanno i debugger di hardware, quindi dobbiamo creare versioni flash del codice e masterizzarle sulle loro schede di sviluppo per testare. I tester non sono tecnicamente nitidi come gli sviluppatori e spesso richiedono molto supporto per far funzionare le cose nelle fasi iniziali (reimpostazione della scheda, collegamento delle comunicazioni seriali, ecc.) O persino per capire l'output.
Infine, per quanto riguarda la definizione di fatto, uno sprint non può essere completato finché tutte le storie non sono complete. Tutte le storie non sono complete finché non vengono verificate dai tester. Non c'è modo di evitare di "rubare" tempo allo sviluppatore per dare ai tester. In altre parole, se le ultime 3 storie utente nello sprint impiegano 5 giorni per essere testate, devono essere codificate e testate dell'unità 5 giorni prima della fine dello sprint. Cosa dovrebbe fare lo sviluppatore, smettere di funzionare?
Sono un faceto ma è un vero problema cercare di conformarmi alle regole. Ora, sto bene con il piegare 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 sono state testate.
Mi piacerebbe sapere come gli altri hanno gestito queste situazioni.