Alcune informazioni di base
Faccio parte di un team di sviluppo software interno. Consiste in
- 5 sviluppatori (con esperienze che vanno dai 2 ai 5 anni, sono uno di loro)
- 3 addetti all'implementazione (svolgono la distribuzione e la formazione del software)
- e 1 project manager.
Sviluppiamo numerosi progetti di piccole e medie dimensioni e le loro scadenze si sovrappongono di solito. Lo sviluppo procede così:
- "Client" ci fornisce una serie di requisiti iniziali
- Sviluppiamo il sistema secondo le specifiche
- Presentare detto sistema al "client"
- "Cliente" ci fornisce requisiti aggiuntivi basati su detta presentazione
- Ripetere 2-4 fino a quando il "client" ha esaurito i nuovi requisiti o la data di destinazione della distribuzione è prossima
- Configurare e distribuire il sistema
Questo, insieme al fatto che è il "cliente" che gestisce le scadenze per la maggior parte del tempo (che è una bandiera rossa, da quello che vedo qui in Programmers e PM.SE) e non seguiamo una guida metodologica di sviluppo definita alla codifica da cowboy, al codice pressoché non mantenibile e ai bug che riescono a superare la produzione, tra le altre cose. Ecco perché abbiamo deciso di adottare una metodologia basata su Agile come Scrum.
Perché Scrum?
È stata l'iniziativa del nostro manager, e tutti sembrano concordare, data la nostra situazione attuale.
Il problema con Scrum
Alcuni degli elementi di Scrum sono in conflitto con la nostra configurazione attuale che non possiamo affrontare facilmente, in particolare la natura "tuttofare" degli sviluppatori Agile. Il team di distribuzione non sa come programmare e gli sviluppatori hanno capacità di comunicazione e formazione inferiori alla media. E questa formazione non cambierà molto presto.
La domanda
Interesserebbe l'efficacia di Scrum come metodologia? Dovrebbero essere apportate altre modifiche per compensare? O sarebbe meglio abbandonare del tutto il pensiero e pensare a una metodologia diversa?