La competenza più importante di uno sviluppatore software è la comunicazione

Perché la comunicazione è la competenza più importante per gli sviluppatori nell'outsourcing, da oltre 14+ anni di esperienza.

Dat Giang
CTO of HDWEBSOFT
La competenza più importante di uno sviluppatore software è la comunicazione

Richieste media

HDWEBSOFT accetta richieste dai media

Se sei un giornalista, blogger, influencer o relatore che si occupa di IT e innovazione digitale, i nostri esperti sono disponibili per condividere la loro esperienza diretta e le loro conoscenze per aiutarti a creare contenuti di valore per il tuo pubblico.

Contattaci →

Al giorno d’oggi, puoi aprire Google e digitare la parola chiave “competenza più importante sviluppatore software”. Otterrai così molti risultati di valore. Possiamo provare frasi chiave simili per arricchire l’elenco. Ad esempio 13 competenze tecniche che dovresti avere come sviluppatore, oppure Le competenze più preziose degli sviluppatori software per essere assunti ora.

Posso vedere che quasi tutte le risposte sono ottime e ci forniscono informazioni utili. Su questa base, gli sviluppatori software possono migliorare le proprie competenze. I recruiter, invece, possono costruire metriche utili per valutare i candidati.

In questo post, cerco di offrire un punto di vista diverso. Non voglio una lunga lista in cui nessuno può essere perfetto in tutti i punti elencati. Voglio invece individuare quella più importante.

La comunicazione – la competenza più importante di uno sviluppatore software

Delimitiamo l’ambito

Innanzitutto, limitiamo l’argomento al settore dello sviluppo software. Le competenze comunicative di uno sviluppatore software sono completamente diverse da quelle di un venditore.

L’information technology è comunicazione

Tutti sanno che lo sviluppo software fa parte dell’information technology. E l’information technology consiste nel costruire sistemi che ricevono dati in input. Poi li elaborano per restituire i dati di output attesi.

Nella vita reale, quando qualcuno dice qualcosa a qualcun altro, l’ascoltatore riceve il messaggio, lo elabora e ha un messaggio appropriato con cui rispondere.

Qual è la differenza tra un sistema informatico e la comunicazione nella vita reale? Non riusciamo a vedere differenze oltre all’ambiente di esecuzione, vita reale vs. macchina.

Ecco perché posso dire che “la comunicazione è la competenza più importante di uno sviluppatore software”. Espanderemo il discorso con i punti seguenti.

Quando uno sviluppatore deve mettere in campo la migliore comunicazione nello sviluppo software

Come detto, “la comunicazione è la competenza più importante di uno sviluppatore software”. Ora dobbiamo individuare le situazioni che richiedono competenze comunicative.

L’analisi dei requisiti richiede la competenza più importante di uno sviluppatore software – la comunicazione

Gli consegni una serie di documenti e specifiche. Una persona con buone competenze comunicative può comprendere facilmente tutti i punti. Inoltre, può ordinare tutti i punti secondo diversi aspetti: per priorità e per granularità. Poi, può fare domande di valore per chiarire i percorsi incerti. In particolare, può riconoscere i rischi potenziali e produrre report utili per i clienti. Di conseguenza, possono prendere buone decisioni.

Riguardo al “fare domande”, è davvero una competenza di cui ogni sviluppatore deve essere dotato. In altre parole, è il punto cruciale della competenza più importante di uno sviluppatore nello sviluppo software. Fare domande non serve solo a chiarire un singolo punto, ma anche ad arricchire altri aspetti. Quando uno sviluppatore software con buona comunicazione pone una domanda, ha considerato l’impatto diretto e diverse varianti. Di conseguenza, può elaborare una grande quantità di informazioni. È questo che lo rende diverso.

Lo sviluppo software richiede la competenza più importante di uno sviluppatore – la comunicazione

Programmare è molto più che scrivere codice eseguibile. È scrivere con ricche informazioni. Ogni riga che scrivi sarà un messaggio che vuoi inviare agli altri membri del team. Ecco perché garantire una buona comunicazione nella scrittura del codice sorgente è molto importante.

1) La denominazione è comunicazione

Si dice che un buon sviluppatore possa impiegare ore per nominare una singola variabile. Per la mia esperienza, è corretto al 100%. Anche se non si applica a tutti i casi, funziona per quelli importanti. Spesso dedico molto tempo a definire buoni nomi per le mie variabili, classi, interfacce, metodi e così via. Il motivo è che un buon nome fornisce il massimo delle informazioni, così che gli altri possano facilmente comprenderne lo scopo e persino il ciclo di vita.

2) Scrivere commenti è comunicazione

In questo periodo preferisco uno stile di codifica con meno commenti. Questo non significa che non uso i commenti. Massimizzo invece le informazioni nei nomi di variabili, classi, interfacce e metodi. Tuttavia, sono molto corti. Quindi possono contenere una quantità limitata di informazioni. Ecco perché ci sono molti casi in cui dobbiamo usare i commenti nel codice per ulteriori spiegazioni.

3) Applicare i design pattern è comunicazione.

Non è solo la best practice per progettare le cose in situazioni simili. Ma anche il modo in cui trasmettiamo informazioni agli altri membri del team. Il punto è che devo solo leggere poche righe di codice che applicano un design pattern. Poi posso facilmente comprendere tutti i fattori coinvolti senza ulteriori letture. Inoltre, posso capire come funzionano tecnicamente le librerie di terze parti riconoscendo l’applicazione dei loro design pattern. Questo è estremamente importante nei linguaggi di programmazione OOP potenti come Java, .NET e C++.

4) Rispettare il processo di sviluppo è comunicazione.

Perché no? I processi e i flussi di lavoro sono la spina dorsale dell’efficienza del progetto. Pertanto, un buon comunicatore comprende che ogni fase del flusso di lavoro e ogni stato del processo avranno un impatto sugli stakeholder. Aggiornare lo stato dei task è il passo più semplice che uno sviluppatore deve completare in tempo reale. Inoltre, dobbiamo monitorare i flussi di lavoro, scoprirne le debolezze e suggerire modi per migliorarli.

5) Rispettare le convenzioni di sviluppo è comunicazione.

Le convenzioni sono davvero importanti per guidare l’efficienza del progetto a livello granulare. Ci sono alcune convenzioni principali come le convenzioni di codifica, le convenzioni documentali e le convenzioni di reporting. Servono a garantire che tutti i membri di un progetto lavorino allo stesso modo. A volte, la convenzione non è rigida quanto il processo.

Una buona lettura, comprensione e conformità alle convenzioni definiscono un buon sviluppatore nella comunicazione. Riceve input (lettura) e poi produce un buon output (comprensione e conformità).

La documentazione del software richiede la competenza più importante di uno sviluppatore – la comunicazione

Questo argomento rientra nell’ambito dello sviluppatore e degli altri ruoli come QC/Tester, IT admin, ecc. Tuttavia, dal punto di vista dello sviluppatore, documentare è molto importante. Lo sviluppatore deve fornire buoni documenti e istruzioni. Aiutano le persone coinvolte a capire come funziona a livello ingegneristico. Inoltre, aiutano l’IT/Admin a seguire facilmente la configurazione e a mantenerla negli ambienti di runtime.

Perché la comunicazione è ancora più importante nell’outsourcing dello sviluppo software offshore?

Competenza più importante di uno sviluppatore software - Comunicazione

Con l’outsourcing dello sviluppo software, hai iniziato a lavorare con persone di aziende diverse. Ancora più complicato, nello sviluppo software offshore devi lavorare con persone di paesi diversi. A ciò si aggiungono lingue principali e culture diverse. Ecco perché la comunicazione è ancora più importante per uno sviluppatore software che lavora in questo settore.

I buoni comunicatori conoscono entrambi i lati di una situazione. Pertanto, possono massimizzare i vantaggi e minimizzare gli svantaggi.

Produttività che supera la lingua

Sei uno sviluppatore vietnamita che lavora con un cliente degli Stati Uniti. Non c’è dubbio che le competenze in inglese siano molto importanti. Le competenze linguistiche degli sviluppatori non sono spesso al massimo livello. Tuttavia, un buon comunicatore sa come ridurre il rischio e migliorare la produttività.

Innanzitutto, quella persona percepisce la situazione. In secondo luogo, può stabilire attivamente convenzioni di comunicazione. Può usare grammatica, frasi e parole semplificate. In terzo luogo, può guidare il cliente a fare lo stesso. Molto semplicemente, può rivolgersi al cliente con affermazioni dirette invece di istruzioni complesse con molte frasi poco usate. In modo responsabile, può inviare al cliente delle scuse anticipate per il fatto che a volte il suo inglese è informale.

In particolare, può sconfiggere il problema linguistico fornendo diversi modi di porre domande. Prima di tutto, scrive la domanda. In secondo luogo, fornisce più informazioni per garantire che i clienti non fraintendano. In terzo luogo, per la logica di business complessa, può elaborare scenari dettagliati. Forniscono dati di input e dati di output attesi. Infine, il cliente legge gli scenari e risponde “sì” o “no”.

Questa è un’arte. E un buon sviluppatore software deve continuare a imparare nel tempo la competenza della comunicazione.

Battere la comunicazione inefficiente dovuta ai diversi fusi orari

Risolvere le differenze di fuso orario è un altro problema di comunicazione. Impedisce il trasferimento fluido delle informazioni. Dotandosi della competenza più importante di uno sviluppatore software, lui o lei può creare strategie di comunicazione intelligenti. Molto semplicemente, massimizzerà le informazioni trasferite. Inoltre, dedicherà tempo a sessioni di lavoro non ufficiali per controllare i canali di comunicazione. È solo un po’ di tempo speso, ma può ottenere una conferma per i compiti dei giorni successivi.

Facendo così, possiamo minimizzare il rischio della differenza di orario. Possiamo assicurarci che il flusso di sviluppo non sia stato bloccato. Il team avrà sempre compiti pronti da svolgere.

La conclusione

Questo post non vuole negare i punti elencati da altri articoli. Sono splendidi ed entusiastici. Voglio solo dare una nuova prospettiva. Ovvero, un buon sviluppatore dovrebbe presentarsi come un buon comunicatore. Conosco molti sviluppatori con ottime competenze tecniche ma non comunicative. Possono comunque portare a termine il lavoro molto bene. Ma solo nel caso in cui tutte le specifiche tecniche siano ben preparate. In un caso in cui sono richieste competenze comunicative, si confondono.

Le parole finali

HDWEBSOFT ha molti anni di esperienza nello sviluppo software personalizzato in outsourcing. Pertanto, comprendiamo i benefici di una buona comunicazione tra sviluppatori e clienti. Ecco perché abbiamo applicato le best practice per massimizzare la produttività superando i problemi di lingua e fuso orario. Insieme a ciò, offriamo sempre formazione sulla comunicazione a tutti gli sviluppatori. In essa, ci assicuriamo che comprendano appieno che la comunicazione è la competenza più importante di uno sviluppatore software. Inoltre, ci assicuriamo che siano dotati dei migliori metodi per gestirla.

Dat Giang

Dat Giang

CTO of HDWEBSOFT

Experienced developer passionate about delivering practical, innovative outsourcing software development solutions with integrity.

contact@hdwebsoft.com +84 (0)28 66809403 15 Thep Moi, Bay Hien Ward, Ho Chi Minh City, Vietnam