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

Una colección de estadísticas sobre los principales puntos débiles de los desarrolladores, recopiladas de varias conversaciones uno a uno.

Hace unos meses, Paul Kinlan publicó sobre los principales problemas de los desarrolladores en 2021, por lo que parece apropiado empezar este artículo con una actualización sobre los últimos 2 trimestres. Los números cambiaron 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 tanto de 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%
Pruebas en varios navegadores. 23% 24% 20% 20%
Comprender e implementar medidas de seguridad. 23% 25% 20% 19%

Como mencionamos en la entrada de blog de Paul, tenemos que abordar estos puntos débiles. Como parte de una iniciativa más grande para hacerlo, mi colega Kadir Topal y yo entrevistamos a más de 18 desarrolladores. Nuestro objetivo es investigar y comenzar a darle sentido a la ruta para solucionar los principales problemas de los desarrolladores.

Debates de desarrolladores

Renuncia de responsabilidad: Esas estadísticas se basan en una pequeña cantidad de conversaciones con los desarrolladores. Cuando se usan "todos" o "algunos", se refiere 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 quiero agradecer a todos los desarrolladores que conversaron con nosotros. Algunos desarrolladores tenían más de 25 años de experiencia, mientras que otros comenzaron en 2020. Algunos desarrolladores iniciaron 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 lo nuevo y se mantienen al día leyendo las notas de la versión del navegador, mientras que otros aprenden acerca de cosas nuevas a través de colegas y amigos. Algunos creen que la complejidad es parte del trabajo y disfrutan de los desafíos, mientras que otros solo quieren cumplir con su trabajo. Al pensar en resolver esos puntos débiles, es importante mantener esta diversidad en nuestras mentes.

Una de las cosas comunes entre todos los desarrolladores es que todos usan un CMS o un framework para hacer su trabajo. Se mencionaron WordPress, React, Bootstrap, Angular y Tailwind, ya que ninguno de los desarrolladores usaba la plataforma web estándar en la producción. Elegir un framework al comenzar 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 problemas de los desarrolladores si no se incluyen frameworks ni CMS en la solución.

Hablando de la plataforma web, la mayoría de los desarrolladores entienden la plataforma como algo sobre lo que están desarrollando. Esto incluye no solo la definición clásica de la plataforma web, sino también los CMS, los frameworks, las herramientas y los polyfills. En muchos casos, las más dificultades son mantenerse al día con esos datos. 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 preguntó por algunos ejemplos para seguir el ritmo de los estándares, muchos desarrolladores señalaron dificultades para seguir el ritmo de las prácticas recomendadas. Esta es otra área que debemos aclarar en la encuesta.

Los desarrolladores buscan las prácticas recomendadas cuando implementan casos de uso y patrones específicos. Las entradas de blog y StackOverflow se mencionan como fuentes de prácticas recomendadas, pero los desarrolladores a menudo se preguntan si la información que están leyendo realmente es la práctica recomendada y si está actualizada con las funciones y APIs más recientes. Por lo tanto, quieren una fuente más oficial que los lea.

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

La mayoría de los desarrolladores coinciden en que la compatibilidad es uno de los mayores desafíos. Todo está mejorando con iniciativas como Compat 2021 e Interoperabilidad 2022, pero es 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 una herramienta como Babel o un framework pueden agregar automáticamente el polyfill. Para quienes administran sus polyfills ellos mismos, descubrir si un polyfill es “bueno” puede ser un problema. Los desarrolladores mencionaron que usaron como indicadores la cantidad de instalaciones en NPM y el creador del polyfill. Algunos desarrolladores mencionaron que trabajaron para quitar los polyfills que ya no eran necesarios debido a que dejaron de ser compatibles con IE 11.

Los frameworks presentan problemas de fragmentación. Escuchamos informes en los que los desarrolladores estaban “atascados” en una versión anterior de un framework y limitados en las funciones que podían usar debido a eso, pero 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 muchos elementos en movimiento, incluidos estándares, navegadores, bibliotecas, polyfills, CMS, frameworks, prácticas recomendadas y herramientas. Esta diversidad es uno de los mejores aspectos de la Web, pero, en este momento, depende de cada desarrollador de forma individual comprender cada elemento y saber cómo son compatibles entre sí.

Me pregunto si habrá una manera de brindar más claridad a los desarrolladores sobre cómo se unen los elementos y más alineación entre todas las piezas, sin comprometer la diversidad. Es un problema grande, complejo y difícil de hacer todas a la vez. Pero ¿por dónde empezar?

Si tienes puntos de vista y opiniones que te gustaría compartir. Me encantaría hablar contigo también. Configuraré una forma de reservar conversaciones directamente, pero, mientras tanto, mis MD están abiertos en Twitter. Comunícate con nosotros para que programemos una conversación.