Ensemble d'insights sur les principales difficultés rencontrées par les développeurs, recueillis au cours de conversations individuelles.
Il y a quelques mois, Paul Kinlan a publié un post sur les principales difficultés rencontrées par les développeurs en 2021. Il semble donc approprié de commencer cet article par des informations sur les deux derniers trimestres. Les chiffres ont légèrement fluctué, mais le classement n'a pas changé.
Défi | 1er trimestre 2021 | 2e trimestre 2021 | 3e trimestre 2021 | 4e trimestre 2021 |
---|---|---|---|---|
Se tenir informé des modifications apportées à la plate-forme Web ou aux normes Web. | 27 % | 26 % | 27 % | 22 % |
S'adapter à un grand nombre d'outils ou de cadres nouveaux et existants. | 26 % | 26 % | 25 % | 21 % |
Faire en sorte qu'une conception ou une expérience fonctionnent de la même manière sur tous les navigateurs | 26 % | 28 % | 24 % | 21 % |
Tests sur plusieurs navigateurs. | 23 % | 24 % | 20 % | 20 % |
Comprendre et implémenter 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 avons interrogé plus de 18 développeurs. Notre objectif est d'étudier et de comprendre comment résoudre les principales difficultés rencontrées par les développeurs.
Discussions des développeurs
Clause de non-responsabilité:ces insights sont basés sur un petit nombre de conversations avec des développeurs. Lorsque vous utilisez "all" (tous) ou "certains", cela fait référence aux développeurs interrogés, et non à l'ensemble de la communauté. D'autres recherches sont nécessaires pour élargir plus largement ces insights.
Ces conversations nous ont permis de rappeler à quel point la communauté des développeurs Web est extraordinaire et diversifiée, et je tiens à remercier tous ceux qui nous ont contactés. Certains développeurs comptaient plus de 25 ans d'expérience, tandis que d'autres ont commencé en 2020. Certains développeurs ont commencé leur carrière par un diplôme formel en informatique, tandis que d'autres ont commencé leur carrière de façon autonome. Certains développeurs recherchent activement les nouveautés et s'en tiennent à jour en lisant les notes de version du navigateur, tandis que d'autres apprennent de nouvelles choses grâce à leurs collègues ou amis. Certaines personnes pensent que la complexité fait partie du travail et aiment être mises au défi, tandis que d'autres veulent simplement accomplir leur travail. Lorsque vous réfléchissez à la résolution de ces difficultés, il est important de garder cette diversité dans notre esprit !
L'une des similitudes de tous les développeurs est qu'ils utilisent tous un CMS ou un framework pour travailler. Wordpress, React, Bootstrap, Angular et Tailwind ont tous été mentionnés. Aucun des développeurs n'utilisait la plate-forme Web "vanilla" en production. Choisir un framework lors du démarrage d'un projet est un défi, et les développeurs tiennent souvent compte des exigences non techniques. Par exemple, s'il est facile d'embaucher un développeur pour travailler avec ce framework. Si les frameworks et CMS ne sont pas inclus dans la solution, nous ne pouvons pas améliorer les difficultés rencontrées par les développeurs.
En parlant de plate-forme Web, la plupart des développeurs comprennent qu'elle est l'objet de leur développement. Cela inclut non seulement la définition classique de la plate-forme Web, mais aussi les CMS, le framework, les outils et les polyfills. Bien souvent, il est difficile de se tenir à jour avec ceux-ci. 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 constitue un autre aspect ambigu. Lorsqu'on leur a demandé des exemples de mise en conformité avec les normes, de nombreux développeurs ont souligné qu'il était difficile de respecter les bonnes pratiques. Il s'agit d'un autre aspect que nous devons clarifier au sujet de l'enquête.
Les développeurs recherchent les bonnes pratiques lorsqu'ils implémentent 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 bonnes pratiques et si elles sont à jour avec les dernières fonctionnalités et API. Il souhaite une source plus officielle pour les lire.
Se tenir au courant des fonctionnalités et des API qui permettent de nouveaux cas d'utilisation n'a rien d'anodin. Les développeurs ont plus de mal à gérer les fonctionnalités, les API et les modifications de la plate-forme qui entraînent une modification des bonnes pratiques.
La plupart des développeurs s'accordent à dire que la compatibilité constitue l'un des plus grands défis. Des initiatives comme Compat 2021 et Interop 2022 permettent d'améliorer les choses, mais il est clair que les développeurs ne la considèrent pas encore comme un problème résolu.
La plupart des développeurs utilisent les polyfills d'une manière ou d'une autre. Toutefois, dans de nombreux cas, son 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 "satisfaisant" peut être problématique. Les développeurs ont mentionné l'utilisation du nombre d'installations sur NPM et du créateur du polyfill comme signaux. Quelques développeurs ont mentionné que les tâches de suppression des polyfills étaient devenues inutiles en raison de l'abandon d'IE 11.
Les frameworks entraînent des problèmes de fragmentation. Des développeurs nous ont signalé qu'ils étaient "bloqués" vers une version plus ancienne d'un framework, avec des fonctionnalités limitées pour cette raison, mais la migration vers une version plus récente du même framework pourrait s'avérer coûteuse et difficile à justifier.
Conclusion
Le développement Web moderne comporte de nombreux éléments mobiles, y compris des normes, des navigateurs, des bibliothèques, des polyfills, des CMS, des frameworks, des bonnes pratiques et des outils. Cette diversité est l'un des grands avantages du Web. Cependant, à l'heure actuelle, c'est à chaque développeur de donner un sens à chaque élément et de déterminer leur compatibilité les uns avec les autres.
Je me demande s'il existe un moyen de clarifier les liens entre les différents éléments et de mieux les aligner, sans compromettre la diversité. Il s'agit d'un problème vaste et complexe, et difficile à résoudre en une seule fois. Mais par où commencer ?
Si vous avez un point de vue à partager. J'aimerais te parler aussi. Je vais mettre en place un moyen de réserver directement des conversations, mais en attendant, je peux vous envoyer des MP sur Twitter. Contactez-nous pour que nous prenions le temps d'en discuter.