Présentation détaillée des principales difficultés rencontrées par les développeurs Web

Ensemble d'insights sur les principaux problèmes rencontrés par les développeurs, recueillis lors de plusieurs entretiens individuels.

Il y a quelques mois, Paul Kinlan a publié un article sur les principaux problèmes rencontrés par les développeurs en 2021. Il semble donc approprié de commencer cet article par un point sur les deux derniers trimestres. Les chiffres ont un peu changé, mais le classement n'a pas évolué.

Défi 1er trimestre 2021 2e trimestre 2021 3e trimestre 2021 4e trimestre 2021
Suivre l'évolution de la plate-forme Web ou des normes Web. 27 % 26 % 27 % 22 %
Suivre un grand nombre d'outils ou de frameworks nouveaux et existants. 26 % 26 % 25 % 21 %
Faire en sorte qu'une conception ou une expérience fonctionne de la même manière sur tous les navigateurs. 26 % 28 % 24 % 21 %
Tester sur plusieurs navigateurs. 23 % 24 % 20 % 20 %
Comprendre et mettre en œuvre des mesures de sécurité. 23 % 25 % 20 % 19 %

Comme indiqué dans l'article de blog de Paul, nous devons résoudre ces problèmes. Dans le cadre d'un effort plus vaste, mon collègue Kadir Topal et moi-même avons interrogé plus de 18 développeurs. Notre objectif est d'étudier et de commencer à comprendre comment résoudre les principaux problèmes rencontrés par les développeurs.

Discussions entre développeurs

Avis de non-responsabilité : Ces insights sont basés sur un petit nombre de conversations avec des développeurs. Les termes "tous" ou "certains" font référence aux développeurs interrogés, et non à l'ensemble de la communauté. D'autres recherches doivent être menées pour extrapoler ces insights plus largement.

Ces conversations nous ont rappelé à quel point la communauté des développeurs Web est formidable et diversifiée, et je tiens à remercier tous les développeurs qui ont discuté avec nous. Certains développeurs avaient plus de 25 ans d'expérience, tandis que d'autres ont commencé en 2020. Certains développeurs ont commencé leur carrière après avoir obtenu un diplôme en informatique, tandis que d'autres ont commencé leur carrière de manière indépendante. Certains développeurs recherchent activement les nouveautés et se tiennent au courant en lisant les notes de version des navigateurs, tandis que d'autres découvrent les nouveautés par le biais de collègues et d'amis. Certains pensent que la complexité fait partie du travail et aiment relever des défis, tandis que d'autres veulent simplement faire leur travail. Lorsque vous réfléchissez à la manière de résoudre ces problèmes, il est important de garder cette diversité à l'esprit.

Tous les développeurs ont un point commun : ils utilisent un CMS ou un framework pour effectuer leur travail. WordPress, React, Bootstrap, Angular et Tailwind ont tous été mentionnés, mais aucun des développeurs n'utilisait la plate-forme Web Vanilla en production. Le choix d'un framework au début d'un projet est un défi, et les développeurs prennent souvent en compte des exigences non techniques. Par exemple, s'il sera facile d'embaucher un développeur pour travailler avec ce framework. Nous ne pouvons pas résoudre les problèmes des développeurs si les frameworks et les CMS ne sont pas inclus dans la solution.

En parlant de la plate-forme Web, la plupart des développeurs la considèrent comme l'élément sur lequel ils développent. Cela inclut non seulement la définition classique de la plate-forme Web, mais aussi les CMS, les frameworks, les outils et les polyfills. Dans de nombreux cas, se tenir au courant de ces changements est la plus grande difficulté. Cela a changé notre interprétation de cette question, et nous savons maintenant que nous devons mettre à jour notre enquête pour la décomposer en différentes parties moins ambiguës.

La définition des normes Web est un autre domaine d'ambiguïté. Lorsqu'on leur a demandé des exemples de respect des normes, de nombreux développeurs ont plutôt souligné les difficultés à suivre les bonnes pratiques. C'est un autre point que nous devons clarifier dans l'enquête.

Les développeurs recherchent les bonnes pratiques à suivre pour implémenter des cas d'utilisation et des modèles spécifiques. Les articles de blog et StackOverflow sont mentionnés comme sources de bonnes pratiques, mais les développeurs se demandent souvent si les informations qu'ils lisent sont effectivement les meilleures pratiques et si elles sont à jour avec les dernières fonctionnalités et API. Ils aimeraient une source plus officielle pour les lire.

Se tenir au courant des fonctionnalités et des API qui permettent de nouveaux cas d'utilisation est un problème moins important. Les développeurs ont plus de mal avec les fonctionnalités, les API et les modifications de la plate-forme qui entraînent un changement des bonnes pratiques.

La plupart des développeurs s'accordent à dire que la compatibilité est l'un des plus grands défis. La situation s'améliore grâce à des initiatives telles que Compat 2021 et Interop 2022, mais il est clair que les développeurs ne considèrent pas encore le problème comme résolu.

La plupart des développeurs utilisent des polyfills d'une manière ou d'une autre. Toutefois, dans de nombreux cas, l'utilisation est transparente pour les développeurs, car le polyfill peut être ajouté automatiquement par un outil comme Babel ou un framework. Pour ceux qui gèrent eux-mêmes leurs polyfills, déterminer si un polyfill est "bon" peut être un problème. Les développeurs ont indiqué utiliser le nombre d'installations sur NPM et le créateur du polyfill comme signaux. Quelques développeurs ont mentionné qu'ils avaient supprimé des polyfills devenus inutiles en raison de l'abandon de la compatibilité avec IE 11.

Les frameworks introduisent des problèmes de fragmentation. Nous avons reçu des rapports indiquant que des développeurs étaient "bloqués" sur une ancienne version d'un framework et que, par conséquent, les fonctionnalités qu'ils pouvaient utiliser étaient limitées. Cependant, migrer vers une version plus récente du même framework peut s'avérer coûteux et difficile à justifier.

Conclusion

Le développement Web moderne comporte de nombreux éléments en constante évolution, y compris les normes, les navigateurs, les bibliothèques, les polyfills, les CMS, les frameworks, les bonnes pratiques et les outils. Cette diversité est l'un des grands avantages du Web, mais pour l'instant, il appartient à chaque développeur de comprendre chaque élément et de déterminer comment ils sont compatibles entre eux.

Je me demande s'il existe un moyen d'aider les développeurs à mieux comprendre comment tout s'articule et d'améliorer l'alignement entre tous les éléments, sans compromettre la diversité. Il s'agit d'un problème vaste et complexe, difficile à résoudre d'un seul coup. Mais par où commencer ?

Si vous avez des points de vue et des opinions que vous souhaitez partager. Moi aussi, j'aimerais bien discuter avec toi. Je vais mettre en place un moyen de réserver des conversations directement, mais en attendant, mes messages privés sont ouverts sur Twitter. Contactez-moi pour que nous puissions en discuter.