Una raccolta di insight sui principali pain point degli sviluppatori, raccolti da una serie di conversazioni individuali.
Qualche mese fa, Paul Kinlan ha pubblicato un post sui principali pain point degli sviluppatori nel 2021, quindi mi sembra opportuno iniziare questo articolo con un aggiornamento sugli ultimi due trimestri. I numeri sono cambiati un po', ma il ranking è rimasto invariato.
| La sfida | T1 2021 | T2 2021 | T3 2021 | T4 2021 |
|---|---|---|---|---|
| Rimanere al passo con le modifiche alla piattaforma web o agli standard web. | 27% | 26% | 27% | 22% |
| Rimanere al 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 indicato nel blog post di Paul, dobbiamo affrontare questi pain point. Nell'ambito di un impegno più ampio in questo senso, io e il mio collega Kadir Topal abbiamo intervistato oltre 18 sviluppatori. Il nostro obiettivo è indagare e iniziare a comprendere il percorso per risolvere i principali pain point degli sviluppatori.
Discussioni con gli sviluppatori
Disclaimer: questi approfondimenti si basano su un numero limitato di conversazioni con gli sviluppatori. Quando utilizziamo "tutti" o "alcuni", ci riferiamo agli sviluppatori intervistati, non all'intera community. Sono necessarie ulteriori ricerche per estrapolare questi insight in modo più ampio.
Queste conversazioni ci hanno ricordato quanto sia straordinaria e diversificata la community degli sviluppatori web e vorrei ringraziare tutti gli sviluppatori che hanno parlato con noi. 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 aggiornati leggendo le note di rilascio del browser, mentre altri scoprono le novità tramite colleghi e amici. Alcuni pensano che la complessità faccia parte del lavoro e amano le sfide, mentre altri vogliono solo portare a termine il proprio lavoro. Quando pensi a come risolvere questi pain point, è importante tenere a mente 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 vanilla in produzione. La scelta di un framework quando si avvia un progetto è una sfida e gli sviluppatori spesso tengono conto di requisiti non tecnici. Ad esempio, se sarà facile assumere uno sviluppatore che lavori con quel framework. Non possiamo migliorare i pain point degli sviluppatori se i framework e i CMS non sono inclusi nella soluzione.
A proposito della piattaforma web, la maggior parte degli sviluppatori la considera come la base su cui sviluppare. Ciò include non solo la definizione classica della piattaforma web, ma anche i CMS, i framework, gli strumenti e i polyfill. In molti casi, è proprio l'aggiornamento di questi elementi a presentare le maggiori difficoltà. Questo ha cambiato la nostra interpretazione della domanda e ora sappiamo che dobbiamo aggiornare il sondaggio per suddividerlo in diverse parti meno ambigue.
Un'altra area di ambiguità è la definizione di standard web. Quando è stato chiesto di fornire esempi relativi al rispetto degli standard, molti sviluppatori hanno invece sottolineato le difficoltà nel seguire 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 blog post e StackOverflow sono menzionati come fonti di best practice, ma gli sviluppatori spesso si chiedono se le informazioni che stanno leggendo siano effettivamente le best practice e se siano aggiornate con le ultime funzionalità e API. Vorrebbero una fonte più ufficiale per leggerli.
Stare al passo con le funzionalità e le API che consentono nuovi casi d'uso è un problema minore. Gli sviluppatori hanno maggiori difficoltà con le funzionalità, le API e le modifiche alla piattaforma che comportano un cambiamento delle best practice.
La maggior parte degli sviluppatori concorda sul fatto che la compatibilità è una delle sfide più grandi. 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 chi gestisce i polyfill in autonomia, capire se un polyfill è "buono" può essere un problema. Gli sviluppatori hanno menzionato l'utilizzo del numero di installazioni su NPM e del creator del polyfill come indicatori. Un paio di sviluppatori hanno menzionato il lavoro svolto per rimuovere i polyfill che sono diventati non necessari a causa dell'interruzione del supporto di IE 11.
I framework introducono problemi di frammentazione. Abbiamo ricevuto segnalazioni di sviluppatori che erano "bloccati" in una versione precedente di un framework e, di conseguenza, limitati nelle funzionalità che potevano utilizzare, ma che la migrazione a una versione più recente dello stesso framework poteva essere costosa e difficile da giustificare.
Conclusione
Lo sviluppo web moderno ha molti elementi in movimento, tra cui standard, browser, librerie, polyfill, CMS, framework, best practice e strumenti. Questa diversità è uno degli aspetti positivi del web, ma al momento spetta a ogni singolo sviluppatore dare un senso a ogni elemento e capire come sono compatibili tra loro.
Mi chiedo se esista un modo per chiarire agli sviluppatori come tutto si collega e per allineare meglio tutti i componenti, senza compromettere la diversità. Si tratta di un problema ampio e complesso, difficile da risolvere tutto in una volta. Ma da dove iniziare?
Se hai opinioni e punti di vista che vorresti condividere. Anche a me piacerebbe parlare con te. Sto preparando un modo per prenotare direttamente le conversazioni, ma nel frattempo i miei DM sono aperti su Twitter. Contattami e potremo trovare il tempo per una chiacchierata.