Cercasi Web Developer a Roma. Competenze richieste: HTML, CSS, AJAX, jQuery, PHP, MySQL; software Adobe InDesign, Photoshop, Illustrator; Principali suite SEO, CRM e Web Marketing. Lo stesso annuncio viene spesso utilizzato indistintamente per Web Designer, Web Marketers e Search Engine Optimizators. Tutti devono saper fare le stesse cose, sempre. Sarà vero?

No, non è vero, un Web Developer non ha le stesse competenze degli altri!

Come facilmente prevedibile, del resto.

Anzitutto, definiamo il Web Developer per quello che non fa, seguendo lo stesso procedimento fatto per il Web Designer nel nostro articolo passato.

  • Nemmeno lui fa il Graphic Designer
  • Nemmeno lui fa il Web Marketing Specialist
  • Nemmeno lui fa il SEO Specialist
  • Nemmeno lui fa l’UX Designer
  • Soprattutto, non fa il Web Designer! 🙂

Ovviamente ci sono delle caratteristiche condivise anche qui. Le digital skills sono infatti permeabili, perché ogni specialista (nel suo campo) deve sapere più o meno come lavorano gli altri, per collaborare. Inoltre, ciascuno specialista potrebbe essere competente in più campi, ma ciò non significa che siano la stessa cosa.

Per cui magari può essere che un Web Developer sia anche un Web Designer… oppure no!

Diversi tipi di Web Developer: ad ognuno il suo

Front-end developer, Back-end Developer, Web App Developer, Full Stack Developer, DevOps, Agile Developer… oh, ma quanti siete?

Effettivamente i developer sono tanti quanti sono gli infiniti campi dell’informatica. Questi si sviluppano secondo un modello frattale, dove ogni insieme contiene infiniti insiemi, ed è contenuto da infiniti insiemi.

Lasciando da parte questa definizione quasi filosofica di questo mondo così particolareggiato, diamo una veloce definizione per ciascuno dei Dev citati.

Il Front-end Developer

Dovete sapere che esistono due parti dello sviluppo. Front-end, cioè quello che vede l’utente, e Back-end, cioè quello che non si vede.

Web Developer Frontend - Esempio
Un Web Developer Front-end è specializzato nella visualizzazione degli elementi

Facciamo una metafora comprensibile da tutti. Se il nostro sito web è una macchina sportiva, allora il Front-end developer ne cura carrozzeria, interni e comandi.

Un Front-end Developer perciò sarà specializzato in tutte quelle tecnologie e quei linguaggi di programmazione che riguardano la visualizzazione di contenuti, forniti dal Back-end. Quindi magari conoscerà molto bene HTML5, CSS3, JavaScript, JSON, jQuery e/o altre librerie, sarà un mago del Responsive Design. Conoscerà un po’ meno PHP, Python, Ruby o altri linguaggi (ma se è bravo sa di cosa si parla) e ancor meno saprà di Database come MySQL, MariaDB eccetera.

Capita spesso che un Web Designer sia anche un Front-end Developer. Nota: spesso non significa sempre!

Il Back-end Developer

Eccoci qui di nuovo con la nostra metafora dell’auto. Rispetto alla nostra macchina sportiva, il Back-end developer è quello che cura la meccanica della macchina: motore, trasmissione, ingranaggi. Insomma sarebbe il meccanico.

Beckend Web Developer - Esempio
Un Web Developer Back-end è specializzato nella logica nascosta delle strutture dati

Chiedereste mai al vostro meccanico di sistemare la carrozzeria? Ecco, appunto!

Quindi il Back-end Developer si occupa della logica di funzionamento non visibile del sito web (o dell’app): come conviene organizzare i dati, come elaborarli e come fornirli al Front-end Developer è di sua competenza. Conoscerà quindi molti linguaggi server side (PHP, Ruby, Python, JS, Asp…), alcuni linguaggi front-end (in particolare quelli per fornire dati: JSON, Ajax…) e di nuovo ne saprà parecchio di Database (MySQL e gli altri).

Anche qui, può avere come non avere competenze in comune con gli altri, ma non è detto!

Il Developer Full-Stack

Abbiamo parlato prima di Front-end e Back-end: sappiate che queste due cose insieme rappresentano lo Stack, cioè la sequenza di elementi che compongono il sito web (o l’app)… approssimando un bel po’.

Quindi che fa uno sviluppatore Full-Stack? Ne sà un po’ di qua, ed un po’ di là. Sarà una figura molto versatile ed utile, avendo competenze miste in web design, front-end e back-end. Avrà una visione d’insieme più completa, ma magari per problemi molto specifici potrà aver bisogno di una mano da qualcun’altro.

Full Stack Web Developer - Esempio
Un Web Developer Full-Stack ha competenze distribuite in tutto lo stack: sia Back-end che Front-end!

Moltissime aziende avrebbero bisogno di un dev Full-Stack. Questo perché a meno di esigenze molto, molto specifiche, può coprire la stragrande maggioranza delle situazioni.

Come nel calcio, dove tutti i giocatori sanno giocare, ma ci sono difensori, portieri e attaccanti, ogni Full-Stack ha la sua formazione particolare. Per cui può essere più orientato al front-end, al design o al back-end. Sarà necessario capire di cosa abbiamo bisogno per scegliere il meglio!

Web App Developer

Qui siamo in presenza di una macro-categoria. In altre parole, un Web App Developer può tranquillamente essere una delle figure di cui sopra, però specializzato nello sviluppo di app! Non è detto infatti che chi sappia sviluppare siti web, sappia fare anche app… eh si, sono due cose diverse! 😉

DevOps & Agile Software Development

Iniziamo ora a specializzarci nella metodologia. DevOps e Agile infatti non fanno tanto riferimento a skill set specifici circa cosa si sa sviluppare.

Sono più che altro metodologie legate al come organizziamo il lavoro per noi stessi, e soprattutto insieme agli altri. Sia DevOps che Agile infatti rappresentano due atteggiamenti iterativi allo sviluppo software, caratterizzato da rilasci incrementali di nuove feature nel tempo.

Processo di Sviluppo DevOps - Web Developer
Un esempio del processo di sviluppo DevOps – Fonte: Wikipedia

In altre parole, il prodotto sviluppato è inserito in un ciclo continuo di rilascio, raccolta feedback, sviluppo e aggiornamento. Diversi rami dell’azienda sono coinvolti in questo processo: dagli sviluppatori al management, al pubblico che usa il prodotto (e che produce i feedback).

Queste metodologie si sono rese necessarie per via dei ridottissimi tempi di rilascio a cui siamo costretti attualmente. Se prima un software o un sito web potevano rimanere uguali a se stessi per anni e anni, ora si richiede un continuo rinnovamento dell’offerta con cicli anche trimestrali!

Quindi DevOps e Agile devs sono particolarmente bravi ad organizzare lo sviluppo del codice in un’ottica modulare: in questo modo è più semplice intervenire sui componenti, modificarli e rilasciarli a cadenze ravvicinate!

Cosa è un Web Developer: Tutto chiaro?

Eccoci quindi al termine di questo lunghissimo post 🙂 Con cui speriamo di aver fatto un po’ d’ordine nelle principali categorie di developer esistenti!