• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Codemotion Magazine

We code the future. Together

  • Discover
    • Events
    • Community
    • Partners
    • Become a partner
    • Hackathons
  • Magazine
    • Backend
    • Dev community
    • Carriere tech
    • Intelligenza artificiale
    • Interviste
    • Frontend
    • DevOps/Cloud
    • Linguaggi di programmazione
    • Soft Skill
  • Talent
    • Discover Talent
    • Jobs
    • Manifesto
  • Companies
  • For Business
    • EN
    • IT
    • ES
  • Sign in
ads

Stefania MarinelliMarzo 4, 2025 6 min di lettura

Lo sviluppo del software è una attività collaborativa

Soft Skill
facebooktwitterlinkedinreddit

Lo sviluppo del software è una attività collaborativa, non ricordo più dove ho letto questa frase, quindi mi dispiace di non saper citare la fonte, e, purtroppo non e mia.

L’ho letta molti anni fa, quando ancora sviluppavo software e forse perché ero una autodidatta e quindi mi approcciavo a mio modo alla programmazione, mi rimase impressa, tanto da ricordarla ancora adesso.

Recommended article
Dicembre 3, 2024

L’Illusione del tempo mancante

Stefania Marinelli

Stefania Marinelli

Soft Skill

L’idea, forse un po’ romantica, che mi ero fatta entrando nel modo della programmazione era quella di poter risolvere problemi, io, la mia competenza, una tastiera ed una IDE.

Quello che poi ho imparato è che non si è mai da soli. E per fortuna, dal mio punto di vista!

Lo sviluppo del software è una attività collaborativa.

Perché molto spesso si lavora in un team, perché il team ha degli stakeholders che lavorano allo stesso prodotto/progetto/programma, perché, per i più fortunati, c’è anche la possibilità di parlare con il cliente finale!

Non si è mai da soli.

E per alcune persone questo è un bene, per altre è un qualcosa con la quale fare pace.
Questo articolo è per quelle persone che vorrebbero farci pace.

Collaborare è comunicare

Capire i requisiti

Collaborare può avere più accezioni ma presuppone comunque una forma di comunicazione, scritta o orale: non importa se ricevi il documento dei requisiti o se fai un workshop con tutti gli stakeholder in una stanza per una settimana fino a tirare fuori un prototipo.

In tutti e due i casi stai comunicando.

Nel primo, tramite un documento che, nella mia esperienza è il metodo meno efficace, nel secondo lavorando a stretto giro e scambiando feedback nel modo più ravvicinato e veloce possibile.

Quando sarà finito?

Qui tocco un tema tanto caro quanto spinoso: le stime.

Ed anche per questo tema si possono fare in diversi modi, potreste saltarle a piè pari, perché qualcuno le ha già fatte per te e allora forse la comunicazione che dovrete mettere in campo sarà di un altro tipo… oppure potresti doverle comunicare.

E magari anche attivare una sana forma di contrattazione, che secondo me altro non è che una forma più sofisticata di comunicazione, con tecniche specifiche.

Bug in produzione!

Moriremo tutti?
No, ma forse qualcuno salterà la cena.

Anche qui dipende dai processi implementati, se lavori in una startup o in una corporate, se c’è uno o più team dedicati, se c’è una policy per dare priorità ai bug, se c’è un presidio h24…

In tutti i casi, sapere come e a chi comunicare lo stato del problema, risulta utile.

Se hai riconosciuto qualcuno di questi scenari, potresti essere interessato a qualche esperimento da provare.

Per ogni scenario, condivido quello che per me ha funzionato, sia nella mia esperienza di dev sia come facilitatrice.

Capire i requisiti – Non dare per scontato nulla, controlla il contesto

Verifica se esiste il vocabolario comune

Quando scegli di condividere delle informazioni tecniche a chi tecnico non è, potresti cadere nell’errore di dare per scontato un vocabolario comune.

Framework, protocollo, pattern, microservizi… potrebbero essere parole che tu usi abitualmente ma che non fanno parte del vocabolario del tuo interlocutore.

Per avere più possibilità che la comunicazione avvenga, potresti verificare quali parole fanno parte del loro vocabolario e che il significato sia lo stesso o per lo meno molto simile.

Definisci il livello di dettaglio

Se sei una persona attenta al dettaglio, potresti aver bisogno di capire fino all’ultimo bit prima di essere pronta a spiegare qualcosa. Magari ti piace andare in fondo ai problemi, studiare soluzioni diverse ed essere preparato a rispondere anche alle domande più complesse.

Mi ricorda un po’ il famoso schema di Alastair Cockburn sui livelli degli Use Case.

Se nella tua comunicazione riesci a stare a livello del “mare”, potrebbe andare bene, con qualche capatina sopra (kite) e sotto (fish).

Potrebbe essere utile capire il livello di dettaglio di cui hai bisogno, e se ti serve per sentirti bene andare in profondità e poi tornare su e capire quali informazioni sono state utili per te e quali sono quelle essenziali da comunicare.

In questo modo, se ti chiedono più dettagli, li hai, magari messi in appendice.

Il livello di dettaglio di cui hai bisogno potrebbe non servire però alle persone con cui stai comunicando per capire il problema.

Anzi potrebbe creare confusione.

Una volta che hai il livello di dettaglio utile per te, cerca di capire quale potrebbe essere quello utile a Prodotto o a Marketing o al tuo manager.

Lo sviluppo del software è una attività collaborativa, lo avevo detto no?

Schemi, diagrammi ed altri animali fantastici

Se schemi e diagrammi sono il tuo pane quotidiano, ti fanno capire le cose, e sono anche il modo di comunicare con gli altri colleghi del team di sviluppano, perché non funzionano con chi non è tech?

Anche qui, dipende, ci sono diagrammi che potrebbero essere più utili di un documento di 200 pagine!

Ma usare un diagramma presuppone che l’altra persona capisca la notazione, il significato di un quadrato, un cerchio, una freccia.

Sempre di un vocabolario comune si tratta. Quindi usali controllando che siano chiari ed utili per ragionare insieme.

Quando sarà finito? – Numeri più che parole

Ho assistito a lunghe discussioni anche solo per decidere se una storia valeva 2 o 3 punti.

Ho anche partecipato a lunghe discussioni su stime da rivedere, perché non coincidevano con le aspettative che in un altro dipartimento si erano create sulla base di… ecco, non so esattamente sulla base di cosa.

Ed è qui il punto: dati storici!

I dati storici alleggeriscono di molto il problema della comunicazione delle stime, perché si passa dalle stime al forecasting su dati storici.

Sia chiaro, lo sviluppo del software è una attività collaborativa, quindi la comunicazione non diventa meno importante se si utilizza il forecasting invece degli story point.

Dal mio punto di vista però, diventa più interessante perché si sposta sulla affidabilità dei dati che si basa su stabilità del team, conoscenza di dominio, capacità di innovazione, pratiche di programmazione…

Quindi la comunicazione che deve avvenire non è più se una User Story è 3 o 5 o se ce la facciamo a rilasciare 10 funzionalità in 3 mesi, ma come possiamo incrementare l’affidabilità dei team e quindi dei dati.

Bug in produzione! – Manteniamo la calma

Quando ci si rende conto di un problema in produzione la capacità di comunicare in maniera chiara cosa sta succedendo risulta ancora più importante.

Probabilmente, appena scoperto il problema, non si ha una idea chiara di quello che sta succedendo e tutti vogliono saperlo!
Quello che si deve comunicare è proprio questo insieme all’esigenza di avere lo spazio mentale ed il tempo di capire cosa sta succedendo.

Se non esiste un processo collaudato, quello che si può fare è di accordarsi sulla frequenza di update brevi. Anche qui, meno di parla “tecnichese” meglio è.
Di solito quello che si vuole sapere è se il problema è stato individuaro, se la soluzione è stata trovata ed in quanto tempo si potrà risolvere.

Risolto il problema bloccante, si dovrà avere una conversazione più lunga sulle possibili cause per esempio utilizzando la tecnica dei Five Whys per fare una root cause analisys.

Conclusioni

Per fare un buon prodotto servono diverse competenze e comunicare per andare verso un obiettivo comune diventa essenziale.

In ogni fase dello sviluppo del software avere la capacità di comunicare e capire cosa l’interlocutore ha bisogno di sapere sono due elementi essenziali per la collaborazione.

  • Controlla se avete un vocabolario comune
  • Fai domande per capire cosa per loro è importante sapere
  • Usa dati storici ogni volta che puoi

Saper creare un clima di collaborazione è una delle competenze che ti serviranno di più nello sviluppo del software.

Codemotion Collection Background
Dalla community
Selezionati per te

Vuoi scoprire più articoli come questo? Dai un’occhiata alla collection Dalla community dove troverai sempre nuovi contenuti selezionati dal nostro team.

Share on:facebooktwitterlinkedinreddit

Tagged as:comunicazione sviluppatori soft skills developer sviluppatori junior

Stefania Marinelli
Stefania ha da poco iniziato la sua quarta vita e spera di averne almeno altre tre. Dopo studi classici (lettere moderne cinema e teatro) è entrata nel mondo del lavoro grazie alla programmazione, era il 1999 e studiando di notte, sperimentando e chiedendo molto ai colleghi di giorno è riuscita a guadagnarsi da vivere sviluppando in ASP, Visual Basic, C, C++. Nel 2009, dopo qualche anno come project manager e team leader, ha finalmente conosciuto i metodi Agili che hanno risposto alla sua domanda "Ma siamo sicuri che il GANTT sia l'unico modo?" Ha preso la certificazione da Scrum Master…
Lean Web: principi per uno sviluppo web sostenibile
Previous Post
React, IDOR e CustomElements: scopri i nuovi talk e speaker confermati di Codemotion Roma 2025!
Next Post

Footer

Discover

  • Events
  • Community
  • Partners
  • Become a partner
  • Hackathons

Magazine

  • Tech articles

Talent

  • Discover talent
  • Jobs

Companies

  • Discover companies

For Business

  • Codemotion for companies

About

  • About us
  • Become a contributor
  • Work with us
  • Contact us

Follow Us

© Copyright Codemotion srl Via Marsala, 29/H, 00185 Roma P.IVA 12392791005 | Privacy policy | Terms and conditions