Di recente mi sono unito a un giovane hackerpace ancora in procinto di installarsi. 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 esperienza professionale più recente è stata con Scrum, quindi sto prendendo in considerazione un approccio Scrum per i nostri progetti software, ma non sono sicuro che sarà adatto.
Sebbene abbia 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 la loro vita reale ha 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.
- Non esiste un proprietario del prodotto . I requisiti per questi progetti sono determinati da un comitato. I membri di questo comitato lavoreranno anche all'attuazione. Ciò significa che non avremo un singolo, dedicato, Product Owner.
- Non abbiamo scadenze (soft o hard). I progetti verranno completati quando verranno completati.
Queste sono differenze abbastanza significative, ma non sono convinto che bloccheranno l'applicazione di Scrum. Penso che alcune modifiche minori potrebbero farci superare questo ostacolo:
- Se cambiamo Sprint in modo da avere una dimensione del punto della storia fissa, ma una durata fluida (tempo), possiamo ancora beneficiare di rilasci iterativi senza esercitare pressioni irrealistiche sui fornitori di volontari.
- Possiamo abbandonare i grafici di burndown e il calcolo della velocità . Se ho capito bene, questi sono strumenti e metriche che funzionano come un ponte tra il team di sviluppo e la direzione. Servono a segnalare i progressi in una forma significativa sia per gli sviluppatori che per le parti interessate. Considerando che non abbiamo nessuno a cui riferire (nessun Project Manager, nessun Product Owner e nessun stakeholder esterno) credo che possiamo lasciar perdere del tutto.
Cose che penso potremmo trarre vantaggio da cui non sarà necessario modificare:
- La raccolta dei requisiti incontro (s). Dove tutti si siedono intorno a un tavolo e discutono le User Story, disegnano bozze dell'interfaccia utente e creano un Product Backlog.
- Retrospettive Sprint . 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 devono essere trattati gli Stand-up quotidiani ? Mi chiedo se avrebbero avuto molto valore nel nostro ambiente. La mia comprensione del rituale stand-up è che aiuta la comunicazione diffondendo naturalmente le informazioni in tutto il team. Considerando il fatto che i nostri Sprint forniranno probabilmente molta meno complessità di uno Sprint medio, potrebbe essere necessario tenere conto di tutti i progressi / sviluppi di tutti gli altri membri del team.
- Devo spingere per XP cose come l'integrazione continua, recensioni di codice e TDD? Sono preoccupato che questo chiederà molto. Sarei più tentato di inserire questi concetti nei progetti futuri una volta che le persone avranno più familiarità con Scrum e lavoreranno in gruppo.
Le mie domande:
Scrum può essere adattato a un ambiente di volontariato?
E il mio approccio pianificato finora sta andando nella giusta direzione?