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

Una colección de conclusiones sobre los principales problemas de los desarrolladores, recopilada de varias conversaciones de uno a uno.

Hace unos meses, Paul Kinlan publicó sobre los principales problemas de los desarrolladores en 2021, por lo que se siente adecuado comenzar este artículo con una actualización sobre los últimos 2 trimestres. Los números se han desplazado un poco, pero la clasificación no ha cambiado.

Desafío 1ᵉʳ trim. de 2021 2º trim. de 2021 3ᵉʳ trim. de 2021 4º trim. de 2021
Estar 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%
Realiza 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, debemos abordar estos puntos débiles. Como parte de un esfuerzo mayor por 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 desarrolladores. Cuando use "todas" o “algunos”, se refiere a los desarrolladores entrevistados, no a toda la comunidad. Se necesitan más investigaciones para extrapolar esas estadísticas de manera 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 hablaron con nosotros. Algunos desarrolladores tenían más de 25 años de experiencia, mientras que otros empezaron 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 leen las notas de la versión del navegador para mantenerse al día, mientras que otros se enteran de las novedades a través de colegas y amigos. Algunas personas piensan que la complejidad es parte del trabajo y disfrutan de los desafíos, mientras que otras solo quieren terminar su trabajo. Cuando pensamos en resolver esas dificultades, es importante tener en mente esta diversidad.

Una de las cuestiones comunes entre todos los desarrolladores es que utilizan un CMS o un framework para realizar su trabajo. Se mencionó WordPress, React, Bootstrap, Angular y Tailwind, ninguno de los desarrolladores usaba la plataforma web normal en 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 trabajar con ese framework. No podemos mejorar las dificultades de los desarrolladores si no se incluyen marcos de trabajo ni CMS en la solución.

Hablando de la plataforma web, la mayoría de los desarrolladores la entienden como algo sobre lo que desarrollan. Esto incluye no solo la definición clásica de la plataforma web, sino también los CMS, el framework, las herramientas y polyfills. En muchos casos, mantenerse al día con esos temas es donde se encuentran las mayores dificultades. Esto cambió nuestra interpretación de esa pregunta y ahora sabemos que debemos actualizar nuestra encuesta para dividirla 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 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 cuando implementan patrones y casos de uso 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 es realmente la práctica recomendada y si está actualizada con las funciones y APIs más recientes. Quieren una fuente más oficial para leerlos.

Mantenerse al día con las funciones y APIs que posibilitan 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 generan 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. Si bien estamos mejorando con iniciativas como Interop 2022 y Compat 2021, 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 sí mismos para averiguar si un polyfill es “bueno” puede ser un problema. Los desarrolladores mencionaron que se usaron como indicadores la cantidad de instalaciones de NPM y al creador del polyfill. Algunos desarrolladores mencionaron que estaban trabajando para quitar polyfills que ya no eran necesarios debido a la falta de compatibilidad con IE 11.

Los frameworks introducen problemas de fragmentación. Escuchamos informes en los que los desarrolladores estaban "atascados" a una versión anterior de un framework y con limitaciones 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, como estándares, navegadores, bibliotecas, polyfills, CMS, frameworks, prácticas recomendadas y herramientas. Esta diversidad es una de las mejores características de la Web, pero, en este momento, depende de cada desarrollador darle sentido a cada pieza y cómo son compatibles entre sí.

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

Si tienes vistas y opiniones que te gustaría compartir. Me encantaría hablar contigo también. Configuraré una forma de reservar conversaciones directamente, pero, mientras tanto, puedes acceder a mis MD en Twitter. Comunícate con nosotros para que tengamos tiempo para conversar.