Já há algum tempo, no mundo front end, uma “grande divisão” pode ser percebida (ou sentida). Somos front end developers, claro, mas parece que “algo” aconteceu que evidencia que podemos nos subdividir em: front end designers e front end engineers.
Este artigo contém informações relevantes a respeito, mas assista antes ao vídeo sobre a Grande Divisão para fixar melhor o que está sendo explicado.
Não se trata de fenômeno recentemente percebido. De fato, há um artigo de alguns anos atrás no CSS-Tricks em que, primeiramente, a observação foi levantada e colocada de maneira mais sistematizada. Como citou o próprio Chris Coyier,
“A Grande Divisão” é entre pessoas que se identificam como (ou têm o cargo de) desenvolvedor front-end, mas possuem conjuntos de habilidades divergentes.
De um lado, um exército de desenvolvedores cujos interesses, responsabilidades e conjuntos de habilidades giram em torno do JavaScript. Do outro, um exército de desenvolvedores cujos interesses, responsabilidades e habilidades estão focados em outras áreas do front end, como HTML, CSS, design, interação, padrões, acessibilidade etc.
A chave para entender a coisa é entender que, assim como já aconteceu com áreas mais tradicionais (ou clássicas) do conhecimento, com o avanço e amadurecimento da indústria Web ocorreu o mesmo com o desenvolvimento front end, que, apesar de (ainda) guardar o mesmo nome, pode-se, sem sombra de dúvidas, ser subdividido em Front-end Design e Front-end Engineering.
E, por consequência, abarcando profissionais que continuam sendo “front enders”, mas que já têm papéis e atribuições bem mais claras, menos abstratas, devs cujos interesses, responsabilidades e habilidades estão focados em áreas distintas do front end.
Apesar de os termos da divisão serem apropriados, não necessariamente precisam ser os únicos. No mesmo artigo citado, é mostrada uma citação de Steven Davis, que comenta algo interessantíssimo:
Devemos nos dividir em UX Engineers e JavaScript Engineers. São mentalidades diferentes. A maioria das pessoas não é incrível em JavaScript e CSS. Deixe que os Engenheiros de UX trabalhem em estreita colaboração com o UX/Design para criar ótimos designs, interações, protótipos etc. e deixe que os engenheiros de JavaScript lidem com todas as partes de dados.
Na prática, focando nas mentalidades, habilidades e competências do dia-a-dia, mais um desenvolvedor de peso percebeu “A Grande Divisão”, mas atribuiu nomenclaturas diferentes: UX Engineers e JavaScript Engineers, que traduzem tão bem o ponto desta divisão clara no front end.
Frameworks como Angular ou bibliotecas como React exigem que os desenvolvedores tenham uma compreensão muito mais profunda dos conceitos de programação; conceitos que podem ter sido historicamente associados apenas ao back-end.
MVC, programação funcional, higher-order functions, hoisting… Conceitos difíceis de entender quando a base de conhecimento é em HTML, CSS e JavaScript interativo básico.
Independentemente de em qual “lado” você está, pode ser gratificante trabalhar com React para UI, Apollo GraphQL para dados, Cypress para testes de integração e webpack como uma ferramenta de compilação. Muitas bibliotecas CSS-in-JS são demais.
No entanto, embora seja possível considerar essas coisas como parte do desenvolvimento front end, elas parecem cosmicamente distantes de artigos, conversas e práticas sobre acessibilidade, marcação semântica, possibilidades de CSS, considerações de UX e interfaces, entre outros.
Parecem 2 mundos diferentes.
“front do front” e “back do front”
Eu aposto que, mesmo antes de saber da oficialização da Grande Divisão, você já escutou e/ou leu esses termos: “front do front” e “back do front”.
Esses termos já são consequência direta da Grande Divisão, mas os que ainda não tinham conhecimento de forma sistematizada, como está sendo apresentada aqui, se expressavam desse jeito como que por instinto.
Agora, você já sabe que quem mexe no “front do front” é front-end designer e quem mexe no “back do front” é front-end engineer.
Para ficar ainda mais claro, vamos a algumas atribuições de ambos, bem elencadas num artigo a respeito:
- Front-End Designer
- Marcação HTML semântica;
- Código CSS; ❤️
- JavaScript “leve” (manipulação de DOM e eventos simples etc.);
- Testes em diferentes navegadores rumo ao cross-browser;
- Otimização de performance (do “front do front”);
- Contato próximo com designers;
- Criação de biblioteca de componentes (com documentação, casos de uso etc.);
- Lide próximo e desembaraçado com design systems;
- Trabalhar com front-end engineers;
- Dentre outros.
- Front-End Engineer
- Lógica das regras de negócio (CRUD, routing, autenticação, cache etc.);
- Conectar, integrar e até criar fontes de dados, serviços e APIs;
- Otimização de performance (do “back do front”);
- Arquiteturas e gerenciamento de infraestruturas baseada em JavaScript (frameworks Node, ferramentas, serviços etc.);
- Usar códigos do “front do front” para “dar vida” aos componentes e compor telas e funcionalidades reais a dados e serviços;
- Criar testes end-to-end, integração e outros;
- Gerenciar coisas de DevOps (bundlers, deployment tooling, CI/CD etc.);
- Trabalhar com front-end designers;
- Dentre outros.
A linha entre o “front do front” e “back do front” pode ser confusa às vezes e varia muito de desenvolvedor para desenvolvedor.
Apesar de algumas dessas atribuições poderem variar (e trocar) durante um projeto, essa lista de atribuições que mostra o que faz um front-end designer e um front-end engineer deve ajudar as coisas a ficarem mais claras.
Empresas, trabalhos, vagas, recrutadores
Então, quando as empresas publicam vagas para “Desenvolvedor Front End”, o que elas realmente estão pedindo; quais suas reais necessidades?
Mesmo A Grande Divisão sendo tão evidente, a verdade é que, se a maioria dos desenvolvedores frontend ainda não se deu totalmente conta dela, na prática, as empresas (focando brasileiras) não têm uma visão clara do tipo de profissional front end que precisam.
E o foco nem são as vagas-meme tão conhecidas no mercado tupiniquim, que nos obrigam a rir para não chorar; o ponto é, mesmo dentro das necessidades de front end atuais, se A Grande Divisão ainda não faz parte do imaginário dos próprios profissionais de front, quem dirá das equipes de recrutadores das empresas.
Afinal, não é novidade alguma o atual nível dos recrutadores, que conta com imensa horda de pessoas que não tem noção muito clara do quê realmente é necessário para ocupar as vagas que tão entusiasmadamente colocam em redes sociais, entre dancinhas, musiquinhas com auto-tune e gracejos de qualidade duvidosa.
Se a divisão entre Front End Designers e Front End Engineers (ou UX Engineers e JavaScript Engineers, caso prefira) estiver bem clara, for um conceito difundido, “natural” dentro da indústria Web, todos os profissionais, empresas, prestadores de serviços, clientes, consumidores finais e interessados, em geral, seremos beneficiados.
Tendo os papéis claros e as expectativas acertadas com todos os envolvidos na cadeia de contratação, certamente, fica bem mais fácil e produtivo, tanto para quem contrata, quanto para quem é contratado — aliás, ainda mais para os destinatários finais dos produtos/serviços em questão.
Relatando experiências pessoais do quotidiano, não são raras as vezes em que nossa ajuda para seleções/entrevistas é requerida. É possível afirmar que uma boa parte dos contratempos que ocorrem em tais ocasiões poderiam ser evitados caso A Grande Divisão estivesse mais clara para todos.
É comum, bastante comum, profissionais de perfil Front End Engineer serem entrevistados para vagas que, claramente, deveriam ser preenchidas por Front End Designer e vice-versa.
No final do encontro, em comentários de pós-reunião sobre A Grande Divisão com o recrutador auxiliado e seus impactos e efeitos práticos, não surpreende mais um “Oh! Faz todo o sentido!” ou similar.
Na prática, como A Grande Divisão impacta os profissionais de front end?
A Grande Divisão, em si, é a prática.
Não é um conceito abstrato, algo inventado por estudiosos e pesquisadores para tentar trazer controle e sanidade às muitas subdivisões do front end. Trata-se de algo que foi percebido por profissionais da área; algo que simplesmente “apareceu”, “revelou-se”.
Com o tempo, com a evolução da indústria Web, a Divisão “aconteceu”. Na prática, mesmo antes de qualquer um de nós ter ouvido falar dela, ela já havia acontecido. Aliás, todos nós já deveríamos nos beneficiar de suas consequências.
Abarcando profissionais que continuam sendo do frontend, mas que já têm papéis e atribuições bem mais claras, cujos interesses, responsabilidades e habilidades estão focados em subáreas distintas do front end. Tuitar isso
No momento, pelo menos em terras brasucas, a falta de conhecimento/percepção da Divisão causa muitos percalços, transtornos, contratempos desnecessários, evitáveis pela simples educação a respeito do que já é a prática moderna do front end.
Quantos profissionais especializados em bibliotecas reativas não ocupam vagas que demandam semântica, layout e acessibilidade para incrementar um serviço? Quantas métricas-chave de UX e CSS eficiente são negligenciadas porque um especialista em padrões JS e arquitetura inadequadamente ocupa um cargo que não deveria ser seu?
Objetivamente, parece que não há um levantamento formal destes números, mas, somente por estas questões soltas, já que é possível imaginar o estrago que a inadequabilidade de cargos front-end está causando (e ainda causará) na indústria Web brasileira.
O que fazer? Como ajudar a situação a melhorar?
Neste exato momento, você já começou a contribuir, tomando consciência que existe A Grande Divisão que divide profissionais frontend entre pessoas que se identificam com e/ou têm preferências e aptidões divergentes: Front End Designers e Front End Engineers.
Há algum tempo atrás, resumimos sobre A Grande Divisão em nosso Instagram:
Esta é a imagem que você deve instaurar em seu imaginário; é essa Divisão, entre Front-end Engineer e Front-end Designer, que você deve ter em mente a partir de agora.
É uma esquema bem resumido, já que, evidentemente, as atuações/tecnologias vão muito além das elencadas, mas, sem dúvidas, é um bom esquema para que você se lembre do conceito geral da coisa.
Seja você o dono de um negócio Web, desenvolvedor, recrutador, interessado, até mesmo o cliente final, o quanto antes você se conscientizar e ficar essa divisão da área de front end, melhor será para todos nós.
Conclusão
Talvez você já tenha “sentido” A Grande Divisão ao longo do tempo; talvez ela já tivesse sido notada por você há tempos, mas você ainda não a conseguia perceber por não a conseguir nomeá-la apropriadamente.
Mas você já tinha percebido que as coisas estão divididas? Que Front-end Design e Front-end Engineering são áreas de front distintas, com suas próprias demandas, necessidades, conexões e caminhos a serem seguidos?
Com certeza, a partir de agora, sua carreira se apresentará muito mais clara diante de seus olhos. Tendo consciência sobre A Grande Divisão e como ela, que já é prática do front-end, afeta seu dia-a-dia, dividindo o frontend em Front-end Design e Front-end Engineering.
Agora que você já sabe, comentaí: você é front end designer ou front end engineer?