Mi sono recentemente unito a un giovane hacker ancora in fase di preparazione. Siamo fortunati perché lo spazio ha alcuni progetti interni su cui è necessario lavorare e non mancano i volontari per lavorarci.
Ci sono state alcune discussioni su come organizzare questi progetti. La mia più recente esperienza professionale è stata con Scrum, quindi sto pensando di lanciare un approccio Scrum per i nostri progetti software, ma non sono sicuro che sarà una buona idea.
Anche se ho visto Scrum funzionare bene per piccoli team a tempo pieno, la natura di questa organizzazione è diversa:
- I membri sono volontari . Alcuni sono studenti a tempo pieno. Altri lavorano a tempo pieno. Non possiamo aspettarci un livello costante di contributo da parte di nessuno dato che le loro vite reali hanno la priorità.
- Mentre praticamente tutti hanno anni di esperienza nella scrittura di software, non molti membri lo hanno fatto in modo professionale o in team.
- C'è nessun proprietario del prodotto . I requisiti per questi progetti sono determinati da un comitato. I membri di questa commissione lavoreranno anche alla realizzazione. Ciò significa che non avremo un unico, dedicato, Product Owner.
- Abbiamo nessuna scadenza (morbida o difficile). I progetti verranno eseguiti al termine.
Queste sono differenze piuttosto significative, ma non sono convinto che saranno bloccanti per l'applicazione di Scrum. Penso che alcuni piccoli aggiustamenti potrebbero farci superare questo ostacolo:
- Se cambiamo gli Sprint per avere una dimensione fissa del punto storia, ma durata fluida (tempo), possiamo ancora trarre vantaggio dalle versioni iterative senza esercitare una pressione di consegna non realistica sugli sviluppatori volontari.
- Possiamo eliminare i grafici di burndown e velocity . Se capisco correttamente, questi sono strumenti e metriche che funzionano come un ponte tra il team di sviluppo e la gestione. Servono a segnalare i progressi in una forma che è significativa sia per gli sviluppatori che per gli stakeholder. Considerando che non abbiamo nessuno a cui riferire (nessun Project Manager, nessun Product Owner e nessun stakeholder esterno), credo che possiamo abbandonare del tutto questo.
Le cose che penso potremmo trarre vantaggio da ciò non richiederanno il tweaking:
- La (i) Riunione dei requisiti . Dove tutti siedono attorno a un tavolo e discutono le User Story, schizzano i mock dell'interfaccia utente e creano un Product Backlog.
- Sprint Retrospettive . Questo sarà un modo interessante per noi di convergere su un processo di sviluppo che funziona per noi come una squadra di volontari.
Cose di cui non sono sicuro:
- Come dovrebbero essere trattati quotidianamente Stand-up ? Mi chiedo se avrebbero molto valore nel nostro ambiente. La mia comprensione del rituale di stand-up è che aiuta la comunicazione diffondendo naturalmente le informazioni in tutta la squadra. Considerando il fatto che i nostri Sprint avranno probabilmente una complessità molto inferiore rispetto a uno Sprint medio, potrebbe essere meno necessario essere al passo con tutti i progressi / sviluppi degli altri membri del team.
- Devo spingere per XP cose come l'integrazione continua, le recensioni di codice e TDD? Sono preoccupato che questo richiederà molto. Sarei più tentato di portare questi concetti in progetti futuri una volta che le persone avranno più familiarità con Scrum e lavorando come una squadra.
Le mie domande:
È possibile adattare Scrum ad un ambiente basato sul volontariato?
E il mio approccio pianificato è andato avanti nella direzione giusta?