Ridurre il tempo necessario ad uno sviluppatore di prendere dimestichezza con un progetto.

Debito tecnico: insieme di conoscenze necessarie ad uno sviluppatore per poter lavorare in un progetto già avviato

Il debito tecnico è il dramma che ogni sviluppatore deve affrontare ogni volta che deve lavorare su un progetto già avviato.

Parliamoci chiaro, per quanto possiamo essere ben intenzionati spesso gli sviluppatori devono arrivare a compromessi e troppo spesso fixare un bug con un’eccezione è meglio di passare una settimana a rifattorizzare una funzione e questo va inevitabilmente a creare debito tecnico.

Esistono indubbiamente delle best practice per evitare che il debito tecnico sia ridotto al minimo ma se ormai la frittata è fatta? Fermiamo uno sviluppatore senior per un mese a fargli scrivere la documentazione?

Una momentanea e veloce soluzione può venire dal pair programming.

Cos’è il pair programming?

Il pair programming è una tecnica di sviluppo agile che consiste nello scrivere codice in due:

  • Il driver: colui che scrive il codice
  • Il navigator: colui che supervisiona il lavoro

È una tecnica molto utilizzata dai programmatori perchè soprattutto quando uno dei due si trova in un rabbit hole.

Il nostro caso:

Oltre che per risolvere problemi il pair programming è ottimo per scambiarsi conoscenze.

Noi consigliamo di sfruttare questa caratteristica per poter semplificare l’entrata nel progetto di un nuovo sviluppatore.

Al momento del suo arrivo al nuovo sviluppatore verrà subito assegnato un task e verrà affiancato ad uno sviluppatore esperto di dominio.

In questo modo è possibile mettere subito a lavoro la nuova risorsa, quest’ultima infatti sarà il driver della coppia mentre l’altro sviluppatore farà da navigator. Tutti i dubbi che potranno sorgere saranno direttamente chiariti dal navigator che si assicurerà che il task sia portato correttamente a termine, dando quante più informazioni possibili al driver.

Remote working:

Non bisogna avere paura di provare il pair programming anche lavorando da remoto.

Ci sono molti tool gratuiti che permettono la condivisione dello schermo come Google Meet, Discord, Skype o Teams.

Per i più esigenti esiste anche un’estensione gratuita per Visual Studio Code chiamata  Live Share o tool a pagamento come Floobits che permettono la lavorazione simultanea del codice.

Conclusione:

Con questo articolo non vogliamo incitare a tralasciare quelle che sono le considerate buone pratiche di sviluppo come scrivere codice leggibile o fare documentazione che sono essenziali per un progetto che ha come obiettivo il voler essere longevo.

Dimenticavo, questo articolo è stato scritto in pair da un neo assunto (Danilo) e un programmatore esperto di dominio (Enrico) che hanno provato direttamente sulla loro pelle questa esperienza. Nonostante alcune difficoltà iniziali questa tecnica ci ha permesso di rendere produttivo e indipendente il nuovo elemento in una sola settimana.