I due termini sono spesso utilizzati come sinonimi, ma sono davvero la stessa cosa? Nel mondo digitale fioriscono le nuove professioni e, di conseguenza,  anche nuovi termini, molti dei quali in inglese. Non è un caso: l’inglese non è solamente la lingua più parlata al mondo, è anche la lingua del web e dell’informatica. Rispetto al mercato del lavoro in ambito digitale, gli Stati Uniti rappresentano la terra in cui molte nuove professionalità nascono, o quanto meno, in cui vengono battezzate. Ma torniamo a sviluppatore, developer, e programmatore, programmer, sono la stessa cosa o ci sono differenze?

Iniziamo col dire che le differenze terminologiche sono importanti fino a un certo punto, nel senso che tutte le professionalità che intervengono nel ciclo di vita del software (possiamo aggiungere ingegneri e analisti del software, coders, ecc) hanno spesso confini labili, non esistono definizioni univoche e spesso lo stesso professionista può essere sia l’uno che l’altro. E’ l’evoluzione e la crescita dell’industria ICT che spinge verso una sempre maggiore tipizzazione di ruoli.

Premettendo dunque che non esistono risposte definitive, proviamo a sintetizzare quanto appreso attraverso le nostre ricerche su questo tema, partendo da una ‘risposta’ istituzionale.

La risposta istituzionale

Il problema di una terminologia univoca che sia in grado di identificare e riconoscere le molteplici attività professionali del digitale si è posto infatti sia a livello europeo che italiano, ne avevamo parlato in questo articolo.  L’AgID, l’agenzia italia per lo sviluppo digitale in accordo con quanto stabilito a livello europeo, ha elaborato una classificazione delle nuove professioni digitali (semplificata al massimo perchè rivolta prevalentemente al mondo della Pubblica Amministrazione), in cui non compare alcuna distinzione tra programmatore e sviluppatore. O meglio, nel settore dello sviluppo software (development), riduce tutto a una singola professionalità, quella del developer, così definito.

DEVELOPER (SVILUPPATORE)

  • Descrizione sintetica. Realizza/codifica soluzioni ICT e scrive le specifiche di prodotti ICT conformemente ai requisiti del cliente
  • Missione. Assicura la realizzazione e l’implementazione di applicazioni ICT. Contribuisce alla pianificazione ed al disegno di dettaglio. Compila programma di diagnostica e progetta e scrive codice per sistemi operativi ed il software per assicurare il massimo della funzionalità e dell’efficienza.

Il developer viene anche distinto in: Server Side Web Developer, Frontend developer, Mobile Application Developer; ma sempre di ‘developer’ si tratta.

Quindi il developer è, sulla base di una descrizione istituzionale, una figura onnicomprensiva, che evidentemente assorbe quella del programmatore and Co.

Più chiaro è il Bureau of Labor Statistics statunitense che ne suo Occupational Outlook Handbook, descrive e tipizza con maggiore ampiezza diverse figure professionali dell’ICT, in particolare dice:

(Computer programmer) – I programmatori scrivono e testano il codice che permette alle applicazioni informatiche e ai programmi software di funzionare correttamente. Trasformano il design del software creato da sviluppatori di software (developer) e ingegneri in istruzioni che un computer può seguire.

(Software developer) – Gli sviluppatori di software sono le menti creative dietro i programmi per computer. Alcuni sviluppano applicazioni che consentono alle persone di svolgere compiti specifici su un computer o un altro dispositivo. Altri sviluppano i sistemi sottostanti che eseguono i dispositivi o le reti di controllo.

Entrambe le posizioni, secondo l’ufficio del lavoro americano, richiedono la laurea e lo stipendio è nettamente più alto per il developer.

In sintesi, sulla base di queste definizioni, il programmatore è un operaio del software: fondamentalmente scrive codice sulla base di istruzioni ricevute; mentre lo sviluppatore ha un ruolo anche creativo, progetta il software che poi può affidare ad altri per la trasformazione in software vivo o farlo direttamente lui, perché egli é sicuramente anche capace di programmare.

Ma la realtà invece cosa dice?

Nelle offerte di lavoro cosa si legge? La community dei professionisti ICT fa dei distinguo?

La realtà che si riflette nelle offerte di lavoro è eterogenea, i termini compaiono frequentemente entrambi, spesso insieme, e spesso accompagnati da  ‘software engineer’, questo a dimostrazione del fatto che le differenze siano sfumate per la maggior parte dei datori di lavoro.

Le offerte di lavoro quindi non ci aiutano a capire se esista una reale differenza tra le due figure. Abbiamo allora cercato di chiarire il concetto affidandoci alle indicazioni dei professionisti del settore, in particolare attraverso una richiesta postata su due delle principali community Facebook di riferimento: quella dei ‘Web Developer Italiani’ (quasi 11mila membri) e quella di ‘Codemotion Tech Community’ (circa 15mila membri).

Complessivamente le loro risposte danno questa indicazione: non esiste una sostanziale differenza.

Nella community dei Web Developer Italiani abbiamo in particolare sottoposto un sondaggio, in base al quale per una netta maggioranza non c’è differenza c’è tra programmatore e sviluppatore.

 

 

 

 

 

 

 

Nonostante questa generale, maggioritaria, conclusione, vi sono tante sfumature e opinioni. Riportiamo alcuni degli interventi.

1 – “Secondo me i due termini hanno accezioni diverse. Sviluppare significa estendere, ampliare, far crescere e aumentare, potenziare, far progredire. Contestualizzando in un ambiente aziendale informatico direi che programmare è un’attività necessaria ma non sufficiente a sviluppare un certo prodotto in quanto da sola essa non basta.
Per poterlo sviluppare si ha bisogno anche di figure professionali che non siano programmatori, penso ad esempio ai designer: essi concorrono allo sviluppo dando il loro contributo ma non programmano (e si potrebbero fare centinaia di altri esempi).
Infine, sempre per lo stesso motivo, le due parole non sono in contrapposizione tra loro dunque a mio avviso dire che un programmatore ha meno competenze di uno sviluppatore non ha senso, perché sono due concezioni diverse.”

2 – “Sviluppatore è solo una pessima traduzione dall’inglese developer che non è altro il programmatore. Dato che pochi sanno che computer e programmatore sono parole latine. Solo che in americano programmer fa molto anni 70 e developer fa Figo. End of story

3 –“Programmatore e sviluppatore, per definizione, sono la stessa cosa. Sviluppatore è un’evoluzione del termine “programmatore” dovuta alla specializzazione dei ruoli che c’è stata negli ultimi anni anche grazie a tutte le nuove tecnologie (sia online sia offline)”.

4 –“I due termini sono assolutamente sinonimi. È sulle competenze che si fa la differenza, non sulla semantica.”

5 –“In teoria un programmatore ha una conoscenza approfondita di logica, matematica e algoritmi. Se per sviluppatore software intendi questo allora non c’è differenza. Se invece intendi una persona che si mette lì e butta semplicemente giù codice: quello non è un programmatore!”

6 – “Il programmatore svolge un sottoinsieme delle attivitá che svolge uno sviluppatore, il quale, oltre che programmare magari é in grado di creare delle interfacce utente, studiare architetture , fare analisi tecniche e funzionali, specificare i requisiti per gli altri sviluppatori, a volte puó essere un technical leader perché molto esperto in svariate tecnologie e metodologie, altre volte puó essere un coach poiché specializzato nella gestione dei team e negli strumenti di collaborazione… é un mondo piuttosto variegato insomma, con tante sfumature.”

7 – “Non esiste differenza in termini di linguaggio. Però il termine “programmatore” mi sembra veramente riduttivo, mi fa venire in mente una persona che programma il videoregistratore. Io sono uno Sviluppatore.

Ci sembra utile concludere con quanto suggerito in questo post “Tempo fa avevo visto una immagine che spiegava la differenza tra developer e coder (anche se dall’italiano c’è un po’ di differenza) e praticamente il coder é colui che scrive codice e basta, mentre il developer é qualcosa di più vasto e che é in grado di svolgere più compiti tra cui quello del coder.”

Qui di seguito l’immagine e il link al sito che contiene la spiegazione.

 

Il titolo di studio conta?

Anche su questo tema non ci sono risposte univoche, anche se è  risaputo che molti developer sono autodidatti. La natura stessa della professione, che vede il continuo e veloce evolversi dei linguaggi di programmazione, delle piattaforme, delle tecnologie e della tipolgia di progetti richiesti, pone chi lavora nello sviluppo software (che sia laureato o diplomato) a trovarsi nella condizione di apprendimento continuo.

Eppure, secondo Elena Caramanico, giovane ingegnere informatico, web developer e titolare della web agency Caygri Web Solution, ci sono differenze tra laureati e diplomati.

“Io trovo molta, ma molta differenza. Il neo laureato ha meno esperienza, ma più conoscenza, quindi con un rodaggio di 3-4 mesi è ok. Mentre un diplomato, per quanti ce ne siano di bravi, nella maggior parte dei casi è autodidatta e purtroppo non ha la visione completa dell’informatica, ma settoriale. Il gap, per esperienza, è di 5 anni. Troppo tempo. Più passa il tempo e più noto la differenza tra un laureato e non. Proprio per gli algoritmi, il deep learning, ecc. L’informatica non è più quella di 30 anni fa..ma è diventata molto ma molto più esigente, complessa e insicura”.