IT Management, Sviluppo software

Due programmatori sono meglio di uno?

| 24 Agosto 2021 | Stefano Dughiero
Programmare in coppia - Instant Developer

In quali casi programmare in coppia è un’opzione percorribile? O meglio, esistono casi in cui due sviluppatori che hanno lavorato a quattro mani hanno ottenuto risultati di valore più che doppio?

Un argomento che definire spinoso è un eufemismo. Ma proprio per questo è necessario affrontarlo lasciando da parte i preconcetti per determinare quando sviluppare in due è la strategia più efficace.

I frequenti scambi di opinioni con programmatori professionisti e ricerche mirate sulle community mi hanno aiutato ad avere un quadro il più possibile realistico della situazione.

Per cominciare è doveroso spendere qualche parola sull’attitudine del programmatore a lavorare da solo. Preconcetto, pregiudizio, dato di fatto? 

L’ego dello sviluppatore

Ebbene sì. È opinione comune che una buona parte degli sviluppatori e delle sviluppatrici abbia un forte ego.

Il che non deve essere assolutamente considerato un aspetto negativo, anzi. Una forte personalità e una forte fiducia in sé stessi sono probabilmente la chiave più importante per affrontare e, soprattutto, superare problemi e difficoltà.

Non solo: permettono anche di focalizzarsi con più efficacia sulla soluzione. 

Devo riuscirci io, devo trovarla io. Se la trovo da solo il merito è tutto mio.

Bene, quindi abbiamo appurato che il forte ego ha i suoi (e tanti) lati positivi.

Ma quale può essere il rovescio della medaglia? 

Sia dai rapporti diretti che da quelli indiretti (forum, discussioni di community, ecc…) posso affermare che la troppa fiducia in sé stesso porta in molti casi lo sviluppatore a darsi obiettivi talmente sfidanti da risultare spesso irrealistici o irrealizzabili. 

Tizio dice che lo fa in una settimana; io ci metto due giorni! 
Quella libreria la vendono? No, no, la faccio da solo in un pomeriggio.

A quel punto parte la sfida e la necessità di dimostrare, soprattutto a sé stessi, che si raggiungerà l’obiettivo.

Poi se le due giornate non sono più da 8 ore ma da 12 o 15 e la soluzione arriva, la soddisfazione rimane. Ma a quale costo? Ne è valsa veramente la pena?

A quattro mani si può?

Diciamola tutta. Non è solo la soluzione ciò che importa, ma anche l’efficienza e l’efficacia con cui ci si arriva. 

Da soli è meglio? A volte sì, ma la decisione, in ambito business, deve essere presa in modo oggettivo seguendo determinati criteri guidati essenzialmente da concetti quali profitto, margini, rispetto dei tempi (e, perché no, 1 giornata lavorativa=8 ore).

Torniamo quindi all’argomento spinoso: due sviluppatori che, arrivati alla decisione sofferta di lasciare da parte l’individualismo, lavorano in coppia allo stesso codice, permettono di ottenere dei vantaggi? In sostanza, la produttività è uguale, minore o maggiore alla somma delle due? E di quanto? 

Questa domanda mi ha portato a fare delle ricerche (sia tramite raccolta di opinioni dirette, sia verificando le discussioni di community di sviluppatori e project manager dello sviluppo software). Ho scoperto che le variabili sono tante, così come le opinioni delle realtà in cui questa soluzione è stata testata o applicata come processo stabile. 

Ma le categorie di risultati sono essenzialmente tre.

  • Ho individuato diversi casi di aziende in cui la pratica della programmazione in coppia è uno standard applicato ai progetti in cui si prevede una maggiore rapidità dei tempi di consegna. Con ottimi risultati.
  • In altri casi la prova non ha dato esiti positivi ma non era chiaro il motivo. Questi risultati derivavano da un difetto del processo o da una resistenza di chi ha lavorato a questo processo? 
  • L’ultima categoria riflette invece un’opinione molto chiara: la produttività cala drasticamente, arrivando anche al -50%. 

Il grafico seguente riassume il peso di ognuna delle tre categorie e deriva appunto dalle indicazioni che ho raccolto. 

Sommando le percentuali che riguardano i risultati negativi non ci sono dubbi: la programmazione in coppia è una scelta rischiosa. Ma è veramente sensato lasciare perdere in partenza considerando che, scelto il progetto giusto, in una buona percentuale di casi si possono ottenere ottimi risultati?

Per aiutarti ad arrivare a una risposta su cui riflettere per i tuoi prossimi progetti, ho aperto un sondaggio basato sui risultati delle mie ricerche.  

Partecipa anche tu, commentalo e condividilo con sviluppatori e project manager

Più opinioni avremo, più facile sarà fare la scelta giusta.

Stefano Dughiero
Marketing & Localization Manager
Lavoro sugli aspetti che riguardano il marketing e l’internazionalizzazione di Instant Developer. Sono perito industriale in informatica e laureato in lingua e letteratura angloamericana. La tecnologia, l'innovazione e tutto ciò che gira attorno alla lingua e alla cultura britanniche e americane sono passioni che si sono sempre intrecciate nella mia vita, nello studio e nel lavoro.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Potrebbe interessarti

Instant Developer Foundation e Cloud 24.5: la prima volta insieme

Il rilascio delle versioni 24.5 di Instant Developer Foundation e Instant Developer Cloud rappresenta una grande novità: è la prima occasione in cui le due...

Leggi Tutto

Integrazione di librerie JavaScript per generare barcode

Scegliere il modo giusto per generare barcode non è semplice e la decisione che prendi può fare la differenza in termini di costi e praticità.Potresti...

Leggi Tutto

Web API: il modo semplice per condividere database con Instant Developer Foundation

Utilizzare le Web API per condividere i propri database con altre applicazioni può essere a volte molto complicato. Ma, allo stesso tempo, le Web API...

Leggi Tutto

Rimani Aggiornato

Iscriviti alla nostra newsletter per ricevere aggiornamenti su novità, eventi, release, webinar e tante altre notizie sui prodotti Instant Developer.

    Presa visione dell'informativa (disponibile qui) resa da Pro Gamma SpA, acconsento al trattamento dei miei dati personali per l'invio di newsletter.*