Alcune informazioni di base
Faccio parte di un team di sviluppo software interno. Consiste di
- 5 sviluppatori (con esperienze che vanno da 2 a 5 anni, io sono uno di loro)
- 3 staff di implementazione (eseguono l'implementazione e la formazione del software)
- e 1 project manager.
Sviluppiamo numerosi progetti di piccole e medie dimensioni e le loro tempistiche di solito si sovrappongono. Lo sviluppo va così:
- "Client" ci fornisce una serie di requisiti iniziali
- Sviluppiamo il sistema in base a detta specifica
- Presenta il sistema a "cliente"
- "Client" ci fornisce requisiti aggiuntivi basati su detta presentazione
- Ripeti 2-4 fino a quando "client" ha esaurito i nuovi requisiti o la data di destinazione della distribuzione è vicina
- Configura e distribuisci il sistema
Questo, insieme al fatto che è il "client" che gestisce le scadenze il più delle volte (che è una bandiera rossa, da quello che vedo qui in Programmers e PM.SE) e non seguiamo un preciso la metodologia di sviluppo porta alla codifica dei cowboy, al codice quasi invisibile e ai bachi che attraversano la produzione, tra le altre cose. Ecco perché abbiamo optato per adottare una metodologia basata su Agile come Scrum.
Perché Scrum?
È stata un'iniziativa del nostro manager e tutti sembrano essere d'accordo, data la nostra situazione attuale.
Il problema con Scrum
Alcuni degli elementi di Scrum sono in conflitto con la nostra attuale configurazione che non possiamo facilmente affrontare, in particolare la natura "tuttofare" degli sviluppatori Agile. Il team di implementazione non sa come programmare e gli sviluppatori hanno capacità di comunicazione e formazione al di sotto della media. E questa formazione non cambierà davvero molto presto.
La domanda
influenzerebbe l'efficacia di Scrum come metodologia? Dovrebbero essere apportati altri cambiamenti per compensare? O sarebbe meglio abbandonare del tutto il pensiero e pensare a una diversa metodologia?