Approfondire i principali punti deboli degli sviluppatori web

Una raccolta di approfondimenti sui principali punti dolenti degli sviluppatori, raccolti da una serie di conversazioni individuali.

Qualche mese fa, Paul Kinlan ha pubblicato un post sui principali problemi degli sviluppatori del 2021, quindi è opportuno iniziare questo articolo con un aggiornamento sugli ultimi due trimestri. I numeri sono leggermente mossi, ma il ranking non è cambiato.

Sfida T1 2021 T2 2021 T3 2021 T4 2021
Rimanere al passo con i cambiamenti della piattaforma web o degli standard web. 27% 26% 27% 22%
Tenere il passo con un numero elevato di strumenti o framework nuovi ed esistenti. 26% 26% 25% 21%
Fare in modo che un design o un'esperienza funzionino allo stesso modo su tutti i browser. 26% 28% 24% 21%
Test su più browser. 23% 24% 20% 20%
Comprendere e implementare le misure di sicurezza. 23% 25% 20% 19%

Come accennato nel post del blog di Paul, dobbiamo affrontare questi punti critici. Nell'ambito di un impegno più ampio a raggiungere questo obiettivo, io e il mio collega Kadir Topal abbiamo intervistato più di 18 sviluppatori. Il nostro obiettivo è indagare e iniziare a interpretare il percorso per risolvere i principali punti dolenti degli sviluppatori.

Discussioni tra sviluppatori

Disclaimer: questi approfondimenti si basano su un numero limitato di conversazioni con gli sviluppatori. Quando si utilizza "tutti" o "alcuni", si riferisce agli sviluppatori intervistati, non all'intera community. Sono necessarie ulteriori ricerche per estrapolare queste informazioni più ampiamente.

Queste conversazioni sono state un ottimo promemoria di quanto sia straordinaria e diversificata la community degli sviluppatori web e vorrei ringraziare tutti gli sviluppatori che hanno parlato con noi. Alcuni sviluppatori avevano oltre 25 anni di esperienza, mentre altri hanno iniziato nel 2020. Alcuni sviluppatori hanno iniziato la loro carriera con una laurea in informatica formale, mentre altri hanno iniziato la loro carriera in modo indipendente. Alcuni sviluppatori cercano attivamente le novità e tengono il passo leggendo le note di rilascio del browser, mentre altri imparano cose nuove tramite colleghi e amici. Alcune pensano che la complessità faccia parte del lavoro e apprezzano le sfide, mentre altre vogliono solo portare a termine il proprio lavoro. Quando si tratta di risolvere questi problemi, è importante tenere a mente questa diversità.

Una delle cose più comuni a tutti gli sviluppatori è che usano tutti un CMS o un framework per svolgere il proprio lavoro. Sono stati citati tutti Wordpress, React, Bootstrap, Angular e Tailwind; nessuno degli sviluppatori utilizzava la piattaforma web "vanilla" in produzione. Scegliere un framework quando si avvia un progetto è una sfida e gli sviluppatori spesso tengono conto di requisiti non tecnici. Ad esempio, se è facile assumere uno sviluppatore che lavori con quel framework. Non possiamo risolvere i problemi degli sviluppatori se i framework e i CMS non sono inclusi nella soluzione.

Parlando di piattaforma web, la maggior parte degli sviluppatori considera questa piattaforma come l'elemento su cui si basa. Ciò include non solo la definizione classica della piattaforma web, ma anche i CMS, il framework, gli strumenti e i polyfill. In molti casi, rimanere al passo con questi è il momento in cui si verificano maggiori difficoltà. Questo ha cambiato la nostra interpretazione della domanda e ora sappiamo che dobbiamo aggiornare il nostro sondaggio per suddividerlo in diverse parti meno ambigue.

Un'altra area di ambiguità è la definizione di standard web. Alla domanda su esempi di come stare al passo con gli standard, molti sviluppatori hanno segnalato le difficoltà nel tenere il passo con le best practice. Questo è un altro aspetto che dobbiamo chiarire nel sondaggio.

Gli sviluppatori cercano le best practice per l'implementazione di pattern e casi d'uso specifici. I post del blog e StackOverflow sono menzionati come fonti di best practice, ma gli sviluppatori spesso si chiedono se le informazioni che leggono siano effettivamente le best practice e se siano aggiornate con le funzionalità e le API più recenti. Vorrebbe che queste fossero leggibili da una fonte più ufficiale.

Il problema più piccolo è tenersi al passo con le funzionalità e le API che consentono nuovi casi d'uso. Gli sviluppatori hanno maggiori difficoltà con le funzionalità, le API e le modifiche alla piattaforma che comportano un cambiamento nelle best practice.

La maggior parte degli sviluppatori concorda sul fatto che la compatibilità è una delle sfide maggiori. La situazione sta migliorando grazie a iniziative come Compat 2021 e Interop 2022, ma è chiaro che gli sviluppatori non lo considerano ancora un problema risolto.

La maggior parte degli sviluppatori utilizza i polyfill in un modo o nell'altro. In molti casi, tuttavia, l'utilizzo è trasparente per gli sviluppatori, poiché il polyfill può essere aggiunto automaticamente da uno strumento come Babel o da un framework. Per coloro che gestiscono autonomamente i propri polyfill, capire se un polyfill è "buono" potrebbe essere un problema. Gli sviluppatori hanno menzionato di utilizzare come indicatori il numero di installazioni su Gestione dei partner di rete e l'autore del polyfill. Un paio di sviluppatori ha affermato di aver lavorato per rimuovere i polyfill che non erano più necessari a causa dell'interruzione del supporto per IE 11.

I framework introducono problemi di frammentazione. Abbiamo sentito dei report che segnalano che gli sviluppatori sono "bloccati" a una versione precedente di un framework e limitati alle funzionalità utilizzabili per questo motivo, ma il passaggio a una versione più recente dello stesso framework potrebbe essere costoso e difficile da giustificare.

Conclusione

Lo sviluppo web moderno prevede molte parti in movimento, tra cui standard, browser, librerie, polyfill, CMS, framework, best practice e strumenti. Questa diversità è uno degli aspetti più straordinari del web ma, in questo momento, spetta a ogni singolo sviluppatore dare un senso a ogni elemento e alla sua compatibilità tra loro.

Mi chiedo se ci sia un modo per fare più chiarezza agli sviluppatori sul modo in cui tutto si collega tra loro e su un maggiore allineamento tra tutti i pezzi, senza scendere a compromessi sulla diversità. È un problema grande e complesso, difficile da risolvere contemporaneamente. Ma da dove cominciare?

Se hai opinioni e pareri da condividere. Mi piacerebbe parlare anche con te. Potrò impostare una modalità di prenotazione diretta per le conversazioni, ma nel frattempo, i miei messaggi diretti sono aperti su Twitter. Contattaci, troveremo un momento per fare due chiacchiere.