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

Uma coleção de insights sobre os principais pontos problemáticos do desenvolvedor, coletados de várias conversas individuais.

Há alguns meses, Paul Kinlan postou sobre os principais pontos problemáticos para 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 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%
Acompanhamento de um grande número de ferramentas ou frameworks novos e atuais. 26% 26% 25% 21%
Fazer com que o design ou a experiência funcione da mesma forma em diferentes 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 aspectos problemáticos. Como parte de um esforço maior para isso, meu colega Kadir Topal e eu entrevistamos mais de 18 desenvolvedores. Nosso objetivo é investigar e começar a entender o caminho para solucionar os principais problemas dos desenvolvedores.

Discussões de desenvolvedores

Exoneração de responsabilidade:esses insights são baseados em poucas conversas com desenvolvedores. Ao usar "todos" ou "alguns", isso se refere 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 da Web é incrível e diversificada, e gostaria de agradecer a todos os desenvolvedores que conversaram conosco. Alguns desenvolvedores têm mais de 25 anos de experiência, enquanto outros começaram em 2020. Alguns desenvolvedores começaram suas carreiras com um diploma formal em ciência da computação, enquanto outros iniciaram suas carreiras de forma independente. Alguns desenvolvedores buscam ativamente as novidades e as acompanham lendo as notas da versão do navegador, enquanto outros aprendem sobre coisas novas por meio de colegas e amigos. Alguns acreditam que a complexidade faz parte do trabalho e gostam de ser desafiados, enquanto outros só querem fazer o trabalho. Ao pensar em resolver essas dificuldades, é importante manter essa diversidade em nossas mentes!

Uma das coisas comuns entre todos os desenvolvedores é que todos usam um CMS ou uma estrutura para fazer o trabalho. Wordpress, React, Bootstrap, Angular e Tailwind foram mencionados, e nenhum dos desenvolvedores usava a plataforma Web baunilha na produção. Escolher uma estrutura ao iniciar um projeto é um desafio, e os desenvolvedores frequentemente levam em conta requisitos não técnicos. Por exemplo, se é fácil contratar um desenvolvedor para trabalhar com essa estrutura. Não será possível melhorar os aspectos problemáticos do desenvolvedor se estruturas e CMSs não estiverem incluídos na solução.

Por falar em plataforma da Web, a maioria dos desenvolvedores entende que ela é o que mais estão desenvolvendo. Isso inclui não apenas a definição clássica de plataforma da Web, mas também os CMSs, a estrutura, 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 a pesquisa para dividi-la em diferentes partes que são menos ambíguas.

Outra área de ambiguidade é a definição de padrões da Web. Quando questionados 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 do 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 de fato a prática recomendada e se estão atualizadas com os recursos e as APIs mais recentes. Ele gostaria de uma fonte mais oficial para lê-los.

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 a Compat 2021 e a Interop 2022, mas está claro que isso ainda não foi resolvido para os desenvolvedores.

A maioria dos desenvolvedores usa os polyfills de alguma forma. 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 aqueles que gerenciam os polyfills, descobrir se um polyfill é "bom" pode ser um problema. Os desenvolvedores mencionaram usar o número de instalações no NPM e o criador do polyfill como indicadores. Alguns desenvolvedores mencionaram que estão trabalhando para remover os polyfills que se tornaram desnecessários devido à queda do suporte ao IE 11.

Os frameworks introduzem problemas de fragmentação. Ouvimos relatos em que os desenvolvedores ficavam "presos" em uma versão mais antiga de um framework e tinham limitações nos recursos que poderiam usar por causa disso, mas que migrar para uma versão mais recente do mesmo framework poderia ser caro e difícil de justificar.

Conclusão

O desenvolvimento moderno da Web tem muitas partes móveis, incluindo padrões, navegadores, bibliotecas, polyfills, CMSs, frameworks, práticas recomendadas e ferramentas. Essa diversidade é uma das melhores coisas da Web, mas, no momento, cabe a cada desenvolvedor individualmente dar sentido a cada elemento e como eles são compatíveis entre si.

Gostaria de saber se há uma maneira de esclarecer aos desenvolvedores como tudo está interligado e mais alinhamento entre todas as peças, sem comprometer a diversidade. É um problema grande, complexo e difícil de realizar de uma só vez. Mas por onde começar?

Se você tem opiniões e opiniões que deseja compartilhar. Gostaria de conversar com você também. Vou configurar uma forma de agendar conversas diretamente, mas enquanto isso, minhas mensagens diretas estão abertas no Twitter. Entre em contato para conversarmos.