Abbiamo spesso parlato di metodologie di sviluppo software per i team di developer o per le aziende. Ma esistono delle metodologie specifiche per chi sviluppa da solo? Oggi vogliamo portavi l'esperienza di Sarah Schlothauer che spesso si è trovata a sviluppare software da sola e ha scoperto alcuni metodi di lavoro molto utili.
Una delle fonti di ispirazione per la Schlothauer è stato il progetto Forever Alone Programming, si tratta di una Software Development Methodology creata appositamente per i programmatori solitari o per le piccole Teams Project Development Roadmap dei developer freelance.
Tale progetto si basa sull'Agile Unified Process ovvero quell'approccio allo sviluppo di applicazioni software facile che utilizza tecniche e concetti come il test driven (TDD), l'Agile Modeling, la gestione agile delle modifiche e il refactoring dei database per migliorare la produttività.
Ci sono almeno 4 step in ogni tipo di progetto: inception, elaboration, construction e transition. E ognuno di questi step racchiude varie fasi:
Inception
Definizione dello scopo del progetto.
- Tempo richiesto 1 ora fino a 3 giorni.
- Comprensione generale del progetto.
- Impostazione della project directory structure.
- Definizione dei requisiti di altro livello.
- Stima dei costi e schedulazione.
- Determinazione della fattibilità del progetto.
Elaboration
Riesco a sviluppare un sistema che richiede tali specifiche?
- Tempo richiesto da 1 a 7 giorni.
- Brainstorming;
- Evoluzione delle specifiche richieste.
- Costruzione dell'architettura software.
- Definizioni dei test di alto livello.
- Creazione della schedule dettagliata.
- Riduzione dei costi previsti.
- Pubblicazione della milestone.
Construction
Realizzazione del codice funzionante.
- Preparazione dell'ambiente di sviluppo.
- Creazione dell'ambiente di testing.
- Realizzazione di un Proof of concept.
- Sviluppo del codice.
- Il tuo codice soddisfa i requisiti richiesti?
- Pre-produzione, testing e bugfixing.
- Pubblicazione della nuova milestone.
Transition
Validazione e deploy del sistema.
- Tempo richiesto: il doppio rispetto a quanto ci si aspetta.
- Termine della redazione della documentazione.
- Ricezione delle conferme da parte degli stakeholder.
- Inizio della fase di beta testing.
- Pubblicazione della nuova milestone.
- Deploy del sistema nell'ambiente di produzione.
- Avvio del piano di marketing.
- Inizio del piano di manutenzione del software.
Sarah Schlothauer consiglia anche di provare a fare delle sessioni di brainstorming che siano all'aperto o comunque non davanti ai PC, questo per ottenere una prospettiva diversa e permettere al proprio cervello di essere più ricettivo.