Una raccolta di approfondimenti sui principali problemi degli sviluppatori, raccolti da una serie di conversazioni individuali.
Qualche mese fa, Paul Kinlan ha pubblicato un post sui principali problemi degli sviluppatori nel 2021, quindi ci sembra opportuno iniziare questo articolo con un aggiornamento sugli ultimi due trimestri. I numeri sono cambiati un po', ma il ranking non è cambiato.
La sfida | Primo trimestre 2021 | T2 2021 | Terzo trimestre 2021 | T4 2021 |
---|---|---|---|---|
Mantenersi al passo con le modifiche alla piattaforma web o agli standard web. | 27% | 26% | 27% | 22% |
Mantenersi al passo con un numero elevato di strumenti o framework nuovi ed esistenti. | 26% | 26% | 25% | 21% |
Rendere un design o un'esperienza uguale 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 risolvere questi problemi. Nell'ambito di un più ampio impegno in tal senso, io e il mio collega Kadir Topal abbiamo intervistato oltre 18 sviluppatori. Il nostro obiettivo è esaminare e iniziare a comprendere il percorso per risolvere i principali problemi degli sviluppatori.
Discussioni per gli sviluppatori
Disclaimer: questi approfondimenti si basano su un numero limitato di conversazioni con gli sviluppatori. Quando utilizzi "tutti" o "alcuni", si fa riferimento agli sviluppatori intervistati, non all'intera community. Sono necessarie ulteriori ricerche per estrapolare questi approfondimenti su larga scala.
Queste conversazioni ci hanno ricordato quanto sia straordinaria e diversificata la community di sviluppatori web e vorrei ringraziare tutti gli sviluppatori che ci hanno parlato. Alcuni sviluppatori avevano più di 25 anni di esperienza, mentre altri hanno iniziato solo nel 2020. Alcuni sviluppatori hanno iniziato la loro carriera con una laurea in informatica, mentre altri hanno iniziato in modo indipendente. Alcuni sviluppatori cercano attivamente le novità e si tengono al passo leggendo le note di rilascio del browser, mentre altri scoprono le novità tramite colleghi e amici. Alcuni ritengono che la complessità sia parte del lavoro e amano le sfide, mentre altri vogliono solo portare a termine il lavoro. Quando si pensa a come risolvere questi problemi, è importante tenere presente questa diversità.
Una delle cose comuni a tutti gli sviluppatori è che tutti utilizzano un CMS o un framework per svolgere il proprio lavoro. Sono stati menzionati Wordpress, React, Bootstrap, Angular e Tailwind, ma nessuno degli sviluppatori utilizzava la piattaforma web standard in produzione. Scegliere un framework all'inizio di un progetto è una sfida e gli sviluppatori prendono spesso in considerazione requisiti non tecnici. Ad esempio, se sarà facile assumere uno sviluppatore che lavori con quel framework. Non possiamo migliorare i problemi degli sviluppatori se nella soluzione non sono inclusi framework e CMS.
A proposito della piattaforma web, la maggior parte degli sviluppatori la considera come la base su cui sviluppano le proprie applicazioni. Sono inclusi non solo la definizione classica della piattaforma web, ma anche i CMS, i framework, gli strumenti e i polyfill. In molti casi, le maggiori difficoltà si riscontrano nel mantenersi al passo con queste novità. Questo ha modificato la nostra interpretazione della domanda e ora sappiamo che dobbiamo aggiornare il sondaggio suddividendolo in parti diverse meno ambigue.
Un'altra area di ambiguità è la definizione degli standard web. Quando abbiamo chiesto esempi di aggiornamento agli standard, molti sviluppatori hanno invece sottolineato le difficoltà di aggiornamento alle best practice. Si tratta di un'altra area che dobbiamo chiarire nel sondaggio.
Gli sviluppatori cercano best practice per l'implementazione di casi d'uso e pattern specifici. I post del blog e StackOverflow sono indicati come fonti di best practice, ma gli sviluppatori spesso si chiedono se le informazioni che stanno leggendo siano effettivamente best practice e se siano aggiornate con le API e le funzionalità più recenti. Vorrebbe leggere queste informazioni da una fonte più ufficiale.
Mantenersi al passo con le funzionalità e le API che consentono nuovi casi d'uso è un problema minore. Gli sviluppatori hanno più difficoltà con funzionalità, API e modifiche alla piattaforma che comportano una variazione delle best practice.
La maggior parte degli sviluppatori concorda sul fatto che la compatibilità è una delle maggiori sfide. Le cose stanno 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, però, l'utilizzo è trasparente per gli sviluppatori, poiché il polyfill può essere aggiunto automaticamente da uno strumento come Babel o un framework. Per chi gestisce personalmente i polyfill, capire se un polyfill è "buono" può essere un problema. Gli sviluppatori hanno menzionato l'utilizzo del numero di installazioni su NPM e del creatore del polyfill come indicatori. Un paio di sviluppatori hanno parlato di aver lavorato per rimuovere i polyfill che non erano più necessari a causa del ritiro del supporto per IE 11.
I framework introducono problemi di frammentazione. Ci sono state segnalate situazioni in cui gli sviluppatori erano "bloccati" in una versione precedente di un framework e, di conseguenza, non potevano utilizzare tutte le funzionalità, ma la migrazione a una versione più recente dello stesso framework poteva essere costosa e difficile da giustificare.
Conclusione
Lo sviluppo web moderno ha molti componenti in movimento, tra cui standard, browser, librerie, polyfill, CMS, framework, best practice e strumenti. Questa diversità è uno dei grandi vantaggi del web, ma al momento sta a ciascun sviluppatore capire il significato di ogni componente e la sua compatibilità con gli altri.
Mi chiedo se esista un modo per chiarire agli sviluppatori il modo in cui tutto è collegato e per allineare meglio tutti i componenti, senza compromettere la diversità. Si tratta di un problema ampio e complesso, difficile da affrontare tutto in una volta. Ma da dove si comincia?
Se hai opinioni e punti di vista che vuoi condividere. Anche io sarei felice di parlare con te. Imposterò un modo per prenotare le conversazioni direttamente, ma nel frattempo i miei messaggi diretti sono aperti su Twitter. Contattaci e organizzeremo un momento per chattare.