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

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

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

Desafio 1º trimestre de 2021 2º trimestre de 2021 3º trimestre de 2021 4º trimestre de 2021
Acompanhar as mudanças na plataforma ou nos padrões da Web. 27% 26% 27% 22%
Acompanhar um grande número de ferramentas ou frameworks novos e atuais. 26% 26% 25% 21%
Fazer com que um design ou uma 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 para fazer isso, 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 de desenvolvedores

Exoneração de responsabilidade: esses insights são baseados em um pequeno número de conversas com desenvolvedores. Quando usamos "todos" ou "alguns", estamos nos referindo aos desenvolvedores entrevistados, não a toda a comunidade. São necessárias mais pesquisas para extrapolar esses insights de forma mais ampla.

Essas conversas foram um ótimo lembrete de como a comunidade de desenvolvedores web é incrível e diversa. Gostaria de agradecer a todos os desenvolvedores que conversaram conosco. 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 as novidades e se mantêm atualizados lendo as notas da versão do navegador, enquanto outros aprendem sobre as 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 como resolver essas dificuldades, é importante ter essa diversidade em mente.

Uma coisa que todos os desenvolvedores têm em comum é que todos usam um CMS ou um framework para trabalhar. Wordpress, React, Bootstrap, Angular e Tailwind foram mencionados, mas nenhum dos desenvolvedores estava usando a plataforma da Web pura em produção. Escolher um framework ao iniciar um projeto é um desafio, e os desenvolvedores geralmente levam em consideração requisitos não técnicos. Por exemplo, se será fácil contratar um desenvolvedor para trabalhar com esse framework. Não podemos melhorar as dificuldades dos desenvolvedores se os frameworks e os CMSs não estiverem incluídos na solução.

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

Outra área de ambiguidade é a definição de padrões da Web. Quando perguntados 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 buscam as práticas recomendadas ao implementar casos de uso e padrões específicos. 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 as APIs mais recentes. Eles querem uma fonte mais oficial para ler essas informações.

Acompanhar os recursos e as 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 iniciativas como o Compat 2021 e o Interop 2022, mas está claro que os desenvolvedores ainda não consideram o problema resolvido.

A maioria dos desenvolvedores usa polyfills de uma forma ou de outra. Em muitos casos, no entanto, 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 o criador do polyfill como indicadores. Alguns desenvolvedores mencionaram que estão trabalhando para remover polyfills que se tornaram desnecessários devido à descontinuação do suporte ao IE 11.

Os frameworks introduzem problemas de fragmentação. Recebemos relatos de desenvolvedores que ficaram "presos" em uma versão mais antiga de um framework e, por isso, limitados nos recursos que podiam usar. No entanto, migrar para uma versão mais recente do mesmo framework pode ser caro e difícil de justificar.

Conclusão

O desenvolvimento web moderno tem muitas partes 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 existe uma forma de deixar mais claro para os desenvolvedores como tudo se conecta e de alinhar melhor todas as partes, sem comprometer a diversidade? É um problema grande e complexo, e é difícil fazer tudo de uma vez. Mas por onde começar?

Se você quiser compartilhar suas opiniões. Também quero muito conversar com você. Vou criar uma forma de agendar conversas diretamente, mas, enquanto isso, minhas mensagens diretas estão abertas no Twitter. Entre em contato para conversarmos.