Análisis detallado de los principales problemas de los desarrolladores web

Una colección de estadísticas sobre los principales problemas de los desarrolladores, recopilada a partir de una serie de conversaciones individuales.

Hace unos meses, Paul Kinlan publicó sobre los principales puntos problemáticos de los desarrolladores en 2021, por lo que parece apropiado comenzar este artículo con una actualización de los últimos 2 trimestres. Los números se movieron un poco, pero la clasificación no cambió.

Desafío 1ᵉʳ trim. de 2021 2º trim. de 2021 3ᵉʳ trim. de 2021 4º trim. de 2021
Mantenerse al día con los cambios en la plataforma web o los estándares web 27% 26% 27% 22%
Mantenerse al día con una gran cantidad de herramientas o frameworks nuevos y existentes. 26% 26% 25% 21%
Hacer que un diseño o una experiencia funcionen de la misma manera en todos los navegadores. 26% 28% 24% 21%
Realizar pruebas en varios navegadores 23% 24% 20% 20%
Comprender e implementar medidas de seguridad 23% 25% 20% 19%

Como se mencionó en la entrada de blog de Paul, debemos abordar estos puntos problemáticos. Como parte de un esfuerzo mayor para lograrlo, mi colega Kadir Topal y yo entrevistamos a más de 18 desarrolladores. Nuestro objetivo es investigar y comenzar a comprender el camino para solucionar los principales problemas de los desarrolladores.

Conversaciones de desarrolladores

Aviso importante: Estas estadísticas se basan en una pequeña cantidad de conversaciones con desarrolladores. Cuando se usan las palabras "todos" o "algunos", se hace referencia a los desarrolladores entrevistados, no a toda la comunidad. Se necesitan más investigaciones para extrapolar esas estadísticas de forma más amplia.

Estas conversaciones fueron un gran recordatorio de lo increíble y diversa que es la comunidad de desarrolladores web, y me gustaría agradecer a todos los desarrolladores que hablaron con nosotros. Algunos desarrolladores tenían más de 25 años de experiencia, mientras que otros comenzaron en 2020. Algunos desarrolladores comenzaron sus carreras con un título formal en ciencias de la computación, mientras que otros lo hicieron de forma independiente. Algunos desarrolladores buscan activamente las novedades y se mantienen al día leyendo las notas de la versión del navegador, mientras que otros se enteran de las novedades a través de colegas y amigos. Algunos piensan que la complejidad es parte del trabajo y disfrutan de los desafíos, mientras que otros solo quieren hacer su trabajo. Cuando pienses en cómo resolver esos puntos problemáticos, es importante que tengas en cuenta esta diversidad.

Un aspecto común entre todos los desarrolladores es que todos usan un CMS o un framework para realizar su trabajo. Se mencionaron WordPress, React, Bootstrap, Angular y Tailwind, pero ninguno de los desarrolladores usaba la plataforma web básica en producción. Elegir un framework cuando se inicia un proyecto es un desafío, y los desarrolladores suelen tener en cuenta requisitos no técnicos. Por ejemplo, si será fácil contratar a un desarrollador para que trabaje con ese framework. No podemos mejorar los puntos problemáticos de los desarrolladores si los frameworks y los CMS no se incluyen en la solución.

Hablando de la plataforma web, la mayoría de los desarrolladores entienden la plataforma como aquello sobre lo que están desarrollando. Esto incluye no solo la definición clásica de la plataforma web, sino también los CMS, el framework, las herramientas y los polyfills. En muchos casos, mantenerse al día con esas actualizaciones es donde se encuentran las mayores dificultades. Esto cambió nuestra interpretación de esa pregunta, y ahora sabemos que debemos actualizar nuestra encuesta para desglosarla en diferentes partes que sean menos ambiguas.

Otra área de ambigüedad es la definición de estándares web. Cuando se les pidió que dieran ejemplos sobre cómo mantenerse al día con los estándares, muchos desarrolladores señalaron dificultades para mantenerse al día con las prácticas recomendadas. Esta es otra área que debemos aclarar en la encuesta.

Los desarrolladores buscan prácticas recomendadas para implementar casos de uso y patrones específicos. Las entradas de blog y StackOverflow se mencionan como fuentes de prácticas recomendadas, pero los desarrolladores suelen preguntarse si la información que leen es, de hecho, la práctica recomendada y si está actualizada con las funciones y APIs más recientes. Le gustaría tener una fuente más oficial para leerlos.

Mantenerse al día con las funciones y las APIs que habilitan nuevos casos de uso es un problema menor. Los desarrolladores tienen más dificultades con las funciones, las APIs y los cambios en la plataforma que implican un cambio en las prácticas recomendadas.

La mayoría de los desarrolladores coinciden en que la compatibilidad es uno de los mayores desafíos. Las cosas están mejorando gracias a iniciativas como Compat 2021 e Interop 2022, pero está claro que los desarrolladores aún no lo ven como un problema resuelto.

La mayoría de los desarrolladores usan polyfills de una forma u otra. Sin embargo, en muchos casos, el uso es transparente para los desarrolladores, ya que el polyfill se puede agregar automáticamente con una herramienta como Babel o un framework. Para quienes administran sus polyfills por su cuenta, determinar si un polyfill es "bueno" puede ser un problema. Los desarrolladores mencionaron que usan la cantidad de instalaciones en NPM y el creador del polyfill como indicadores. Un par de desarrolladores mencionaron que trabajaron para quitar polyfills que se volvieron innecesarios debido a que se dejó de admitir IE 11.

Los frameworks presentan problemas de fragmentación. Recibimos informes de que los desarrolladores estaban "atascados" en una versión anterior de un framework y, por lo tanto, tenían limitaciones en las funciones que podían usar, pero que migrar a una versión más reciente del mismo framework podría ser costoso y difícil de justificar.

Conclusión

El desarrollo web moderno tiene muchas partes móviles, incluidos estándares, navegadores, bibliotecas, polyfills, CMS, frameworks, prácticas recomendadas y herramientas. Esta diversidad es uno de los aspectos positivos de la Web, pero, en este momento, depende de cada desarrollador individualmente dar sentido a cada pieza y cómo son compatibles entre sí.

Me pregunto si hay una forma de brindar más claridad a los desarrolladores sobre cómo se relaciona todo y más alineación entre todas las partes, sin comprometer la diversidad. Es un problema grande y complejo, y es difícil abordarlo todo de una vez. Pero ¿por dónde empezar?

Si tienes opiniones que te gustaría compartir. A mí también me encantaría hablar contigo. Configuraré una forma de reservar conversaciones directamente, pero, mientras tanto, mis MD están abiertos en Twitter. Comunícate con nosotros y podremos hacernos un tiempo para conversar.