Ensemble d'insights sur les principaux problèmes des développeurs, recueillis lors de plusieurs conversations individuelles.
Il y a quelques mois, Paul Kinlan a publié un article sur les principaux problèmes des développeurs en 2021. Il nous semble donc approprié de commencer cet article par un point sur les deux derniers trimestres. Les chiffres ont légèrement changé, mais le classement n'a pas changé.
Défi | 1er trimestre 2021 | 2e trimestre 2021 | 3e trimestre 2021 | 4e trimestre 2021 |
---|---|---|---|---|
Tenir compte des modifications apportées à la plate-forme Web ou aux normes Web | 27 % | 26 % | 27 % | 22 % |
Suivre un grand nombre d'outils ou de frameworks nouveaux et existants | 26 % | 26 % | 25 % | 21 % |
Assurer la cohérence d'une conception ou d'une expérience dans tous les navigateurs | 26 % | 28 % | 24 % | 21 % |
Tester dans 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 difficultés. Dans le cadre d'un effort plus large, 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 des développeurs.
Discussions avec les développeurs
Clause 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 sont nécessaires pour extrapoler ces insights plus largement.
Ces conversations nous ont rappelé à quel point la communauté des développeurs Web est incroyable et diversifiée. Je tiens à remercier tous les développeurs qui nous ont parlé. Certains développeurs avaient plus de 25 ans d'expérience, tandis que d'autres ont commencé aussi récemment que 2020. Certains développeurs ont commencé leur carrière avec un diplôme universitaire en informatique, tandis que d'autres ont commencé de manière indépendante. Certains développeurs recherchent activement les nouveautés et se tiennent informés en lisant les notes de version des navigateurs, tandis que d'autres découvrent de nouvelles choses grâce à leurs collègues et amis. Certains pensent que la complexité fait partie du travail et apprécient les défis, tandis que d'autres veulent simplement faire leur travail. Lorsque vous réfléchissez à la résolution de ces difficultés, il est important de garder cette diversité à l'esprit.
Tous les développeurs ont un point commun : ils utilisent tous un CMS ou un framework pour effectuer leur travail. WordPress, React, Bootstrap, Angular et Tailwind ont tous été mentionnés. Aucun des développeurs n'utilisait la plate-forme Web standard en production. Choisir 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, vous pouvez vous demander s'il sera facile d'embaucher un développeur pour travailler avec ce framework. Nous ne pouvons pas améliorer les difficultés des développeurs si les frameworks et les CMS ne sont pas inclus dans la solution.
En ce qui concerne la plate-forme Web, la plupart des développeurs la comprennent comme la base sur laquelle ils effectuent 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. Dans de nombreux cas, c'est là que les difficultés sont les plus importantes. Cela a modifié notre interprétation de cette question. Nous savons maintenant que nous devons modifier notre enquête pour la diviser en différentes parties moins ambiguës.
La définition des normes Web est également source d'ambiguïté. Lorsqu'ils ont été interrogés sur des exemples de respect des normes, de nombreux développeurs ont indiqué avoir des difficultés à respecter les bonnes pratiques. C'est un autre point que nous devons clarifier dans l'enquête.
Les développeurs recherchent des 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 correspondent bien à des bonnes pratiques et si elles sont à jour avec les dernières fonctionnalités et API. Il souhaite trouver une source plus officielle pour les lire.
Il est plus facile de suivre les fonctionnalités et les API qui permettent de créer de nouveaux cas d'utilisation. Les développeurs ont plus de mal à gérer les fonctionnalités, les API et les modifications apportées à 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. Les choses s'améliorent grâce à des efforts tels que Compat 2021 et Interop 2022, mais il est clair que les développeurs ne considèrent pas encore ce problème comme résolu.
La plupart des développeurs utilisent des polyfills d'une manière ou d'une autre. Cependant, dans de nombreux cas, l'utilisation est transparente pour les développeurs, car le polyfill peut être ajouté automatiquement par un outil tel que 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 indiqué avoir travaillé à la suppression des polyfills devenus inutiles en raison de l'abandon de la prise en charge d'IE 11.
Les frameworks posent des problèmes de fragmentation. Nous avons entendu des rapports selon lesquels les développeurs étaient "coincés" sur une ancienne version d'un framework et que les fonctionnalités qu'ils pouvaient utiliser étaient limitées en conséquence. Toutefois, la migration vers une version plus récente du même framework pouvait être coûteuse et difficile à justifier.
Conclusion
Le développement Web moderne comporte de nombreux éléments en mouvement, 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, mais pour le moment, il appartient à chaque développeur de comprendre chaque élément et leur compatibilité.
Je me demande s'il existe un moyen de clarifier pour les développeurs comment tout est lié et d'aligner davantage toutes les pièces, sans compromettre la diversité. Il s'agit d'un problème vaste et complexe, et il est difficile de tout faire en même temps. Mais par où commencer ?
Si vous avez des points de vue et des opinions à partager. J'aimerais aussi vous parler. 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-nous pour que nous puissions prendre le temps de discuter.