Playbook - Metodologia

Come succede a molti, la metodologia che applichiamo non è presa alla lettera da un qualche manuale di riferimento.

Negli anni abbiamo fatto diverse esperienze e abbiamo scelto quello che funzionava meglio per noi, scartando ciò che non faceva al caso nostro.

La base di partenza sono i principi del Manifesto per lo Sviluppo Agile e la metodologia Scrum.

Da qui abbiamo poi strutturato il nostro metodo che ovviamente attinge ai nostri valori e si ispira a questa famosa citazione di Michael Jordan:

Talent wins games, but teamwork wins championships

Crediamo molto nella collaborazione di gruppo, dove il concetto di gruppo è allargato a tutti coloro che partecipano al progetto, siano essi individui che lavorano in Bitbull, il cliente o altri suoi fornitori.

Non a caso, spesso, siamo un punto di riferimento anche per questi ultimi, coordinando tutte le attività funzionali a raggiungere gli obiettivi di ogni cliente.

Distinguiamo due tipologie principali di progetti:

Nelle sezioni seguenti, dettagliamo alcuni principi e metodologie che guidano il nostro lavoro quotidiano.


Lavoro in team

I progetti su cui lavoriamo prevedono il coinvolgimento di almeno tre tipi di figure, oltre a quella dell’Account Manager:

A seconda della complessità del progetto e delle tecnologie utilizzate, possono essere coinvolte più figure per ogni tipo con diversi ambiti di specializzazione.

Strutturare il team e condividere un metodo di lavoro ci consente di governare al meglio i progetti, fare previsioni, anticipare o evitare criticità e avere i dati per affrontare il cambiamento consapevolmente.


Sprint

I nostri progetti si svolgono in sprint della durata di due settimane, un intervallo di tempo che ci consente di trovare il giusto equilibrio tra la raccolta di feedback dal cliente e l’efficienza dello sviluppo.

La raccolta di feedback è essenziale per adattare il progetto alle esigenze che cambiano nel tempo.

Lo sprint è orchestrato dal Project Manager, il cui compito è di garantire l’efficienza del processo, fluidificando il dialogo tra le parti e ottimizzando il lavoro del team.

L’analisi e la pianificazione delle attività che portano al cambiamento avvengono assieme al cliente all’inizio di ogni sprint.

Il rilascio di quanto sviluppiamo è continuo in ambiente di test e pianificato in ambiente di produzione al termine di ogni sprint.


Git workflow

Negli anni abbiamo sperimentato diversi Git workflow ma ultimamente adottiamo una nostra variante di Git Flow che abbiamo chiamato Bitflow.

Adottiamo inoltre le seguenti convenzioni:

ℹ Non imponiamo l’utilizzo di uno strumento specifico per l’utilizzo di Git. Alcune persone del team utilizzano i comandi da terminale, altre adottano tool come GitKraken, SmartGit o quelli integrati nel proprio ambiente di sviluppo.


Pair

Secondo la definiziona che si trova su Wikipedia, “il pair programming è una tecnica agile di sviluppo del software nella quale due programmatori lavorano insieme a una postazione di lavoro”.

Noi preferiamo allargare il concetto, chiamandolo semplicemente pair, estendendolo a tutte le attività in cui due o più persone possono portare un valore maggiore rispetto al singolo.

Ecco alcuni esempi:

Abbiamo sperimentato che lavorare insieme ci aiuta ad anticipare le decisioni migliori, a produrre risultati più robusti, a evitare errori che è più probabile commettere quando si è da soli ma anche a risolverli.

Quando dobbiamo risolvere un bug, ad esempio, dedichiamo un tempo prestabilito (mezz’ora, un’ora) alla ricerca della possibile soluzione. Se dopo quel tempo non ne siamo ancora venuti a capo, chiediamo aiuto a qualcuno del team per affiancarci.


Stime

La fase iniziale di un progetto è quella in cui l’incertezza è maggiore. Al tempo stesso, però, è in questa fase che siamo chiamati a prendere delle decisioni.

Le stime, perciò, hanno lo scopo di ingaggiare la discussione e incentivare l’analisi, per far emergere dettagli e criticità che possono diminuire il livello di incertezza generale.

È importante identificare gli obiettivi e le priorità di ogni cliente, perché fungeranno da supporto costante alle scelte che influenzeranno la stima.

Ad arricchire l’insieme di strumenti a supporto delle decisioni ci sono inoltre le cosiddette leve:

A seconda dell’importanza attribuita dal cliente alle quattro leve, le stime possono variare.

Per approfondire l’argomento, rimandiamo a questo video di Francesco Strazzullo, in particolare al minuto 26 dove viene spiegato proprio il concetto delle leve.

È bene tenere presente un elemento molto importante: una stima può essere completamente sbagliata se non minimizziamo il più possibile ciò che può andare storto, la cosiddetta accidental complication, spiegata egregiamente in 7 minuti e 26 secondi da J. B. Rainsberger.

Di seguito un paio di articoli sul nostro blog a cui fare riferimento:


Living documentation

Abbiamo già trattato l’argomento di come oggi facciamo knowledge management nella sezione dedicata a Confluence.

Nell’ottica del miglioramento continuo, però, abbiamo iniziato a studiare nuovi approcci nella gestione della documentazione, abbracciando i principi fondamentali del living documentation descritti nell’omonimo libro di Cyrille Martraire:

Abbiamo sperimentato sulla nostra pelle quanto può costare avere una documentazione che non rispetti i principi sopra elencati in termini di tempo sprecato e decisioni subottimali.

All’inizio del 2022 abbiamo pertanto iniziato a ispirarci a tali principi con l’obiettivo di raggiungere una gestione strutturata e ottimizzata della conoscenza.


Torna all’indice