Análise detalhada dos principais pontos problemáticos do desenvolvedor da Web

Uma coleção de insights sobre os principais problemas dos desenvolvedores, coletados em várias conversas individuais.

Há alguns meses, Paul Kinlan postou sobre os principais problemas dos desenvolvedores em 2021. Por isso, parece apropriado começar este artigo com uma atualização dos últimos dois trimestres. Os números mudaram um pouco, mas a classificação não.

Desafio 1º trimestre de 2021 2º trimestre de 2021 3º trimestre de 2021 4º trimestre de 2021
Manter-se atualizado sobre mudanças na plataforma ou nos padrões da Web. 27% 26% 27% 22%
Manter-se atualizado com um grande número de ferramentas ou estruturas novas e atuais. 26% 26% 25% 21%
Fazer com que um design ou experiência funcione da mesma forma em todos os navegadores. 26% 28% 24% 21%
Testes em vários navegadores. 23% 24% 20% 20%
Entender e implementar medidas de segurança. 23% 25% 20% 19%

Como mencionado na postagem do blog de Paul, precisamos resolver esses problemas. Como parte de um esforço maior, meu colega Kadir Topal e eu entrevistamos mais de 18 desenvolvedores. Nosso objetivo é investigar e começar a entender o caminho para corrigir os principais problemas dos desenvolvedores.

Discussões com desenvolvedores

Isenção de responsabilidade:esses insights são baseados em um pequeno número de conversas com desenvolvedores. Quando você usa "todos" ou "alguns", isso se refere aos desenvolvedores entrevistados, não a toda a comunidade. É necessário fazer mais pesquisas para extrapolar esses insights.

Essas conversas foram um ótimo lembrete de como a comunidade de desenvolvedores da Web é incrível e diversificada. Gostaria de agradecer a todos os desenvolvedores que conversaram com a gente. Alguns desenvolvedores tinham mais de 25 anos de experiência, enquanto outros começaram em 2020. Alguns desenvolvedores começaram a carreira com um diploma formal de ciência da computação, enquanto outros começaram de forma independente. Alguns desenvolvedores buscam ativamente o que há de novo e se mantêm atualizados lendo as notas de lançamento do navegador, enquanto outros aprendem sobre novidades com colegas e amigos. Alguns acham que a complexidade faz parte do trabalho e gostam de ser desafiados, enquanto outros só querem fazer o trabalho. Ao pensar em resolver esses problemas, é importante manter essa diversidade em mente.

Uma das coisas comuns entre todos os desenvolvedores é que todos eles usam um CMS ou um framework para trabalhar. O Wordpress, o React, o Bootstrap, o Angular e o Tailwind foram todos mencionados, e nenhum dos desenvolvedores estava usando a plataforma da Web vanilla em produção. Escolher uma estrutura ao iniciar um projeto é um desafio, e os desenvolvedores frequentemente consideram requisitos não técnicos. Por exemplo, se será fácil contratar um desenvolvedor para trabalhar com esse framework. Não podemos melhorar os pontos problemáticos dos desenvolvedores se os frameworks e CMSs não estiverem incluídos na solução.

Falando da plataforma da Web, a maioria dos desenvolvedores entende a plataforma como a base para o desenvolvimento. Isso inclui não apenas a definição clássica da plataforma da Web, mas também os CMSs, o framework, as ferramentas e os polyfills. Em muitos casos, manter-se atualizado é onde estão as maiores dificuldades. Isso mudou nossa interpretação da pergunta, e agora sabemos que precisamos atualizar nossa pesquisa para dividi-la em partes diferentes que sejam menos ambíguas.

Outra área de ambiguidade é a definição de padrões da Web. Quando perguntamos sobre exemplos de como acompanhar os padrões, muitos desenvolvedores apontaram dificuldades em acompanhar as práticas recomendadas. Essa é outra área que precisamos esclarecer na pesquisa.

Os desenvolvedores procuram práticas recomendadas ao implementar casos de uso e padrões específicos. As postagens de blog e o StackOverflow são mencionados como fontes de práticas recomendadas, mas os desenvolvedores geralmente se perguntam se as informações que estão lendo são realmente as práticas recomendadas e se estão atualizadas com os recursos e APIs mais recentes. Eles gostariam de uma fonte mais oficial para ler essas informações.

Manter-se atualizado com recursos e APIs que permitem novos casos de uso é um problema menor. Os desenvolvedores têm mais dificuldade com recursos, APIs e mudanças na plataforma que resultam em uma mudança nas práticas recomendadas.

A maioria dos desenvolvedores concorda que a compatibilidade é um dos maiores desafios. As coisas estão melhorando com esforços como Compat 2021 e Interop 2022, mas está claro que os desenvolvedores ainda não consideram isso um problema resolvido.

A maioria dos desenvolvedores usa polyfills de uma forma ou de outra. No entanto, em muitos casos, o uso é transparente para os desenvolvedores, já que o polyfill pode ser adicionado automaticamente por uma ferramenta como o Babel ou um framework. Para quem gerencia os próprios polyfills, descobrir se um polyfill é "bom" pode ser um problema. Os desenvolvedores mencionaram o uso do número de instalações no NPM e do criador do polyfill como indicadores. Alguns desenvolvedores mencionaram que trabalharam para remover polyfills que se tornaram desnecessários devido à desativação do suporte ao IE 11.

Os frameworks apresentam problemas de fragmentação. Recebemos relatos de desenvolvedores que estavam "presos" em uma versão mais antiga de um framework e limitados aos recursos que podiam usar por causa disso, mas a migração para uma versão mais recente do mesmo framework poderia ser cara e difícil de justificar.

Conclusão

O desenvolvimento moderno da Web tem muitas peças móveis, incluindo padrões, navegadores, bibliotecas, polyfills, CMSs, frameworks, práticas recomendadas e ferramentas. Essa diversidade é uma das grandes vantagens da Web, mas, no momento, cabe a cada desenvolvedor entender cada parte e como elas são compatíveis entre si.

Será que há uma maneira de esclarecer aos desenvolvedores como tudo se conecta e como alinhar melhor todas as peças, sem comprometer a diversidade? É um problema grande e complexo, difícil de fazer tudo de uma vez. Mas por onde começar?

Se você tiver opiniões e pontos de vista para compartilhar. Também gostaria de conversar com você. Vou configurar uma forma de agendar conversas diretamente, mas, enquanto isso, minhas DMs estão abertas no Twitter. Entre em contato para que possamos conversar.