Especialização back-end e front-end ainda faz sentido?

Cover image

DISCLAIMER

Não falo contra a especialização de forma geral, nem estou ditando a "morte do front/back-end". Quero apenas desmitificar uma visão normalizada de que existe uma linha muito clara que separa o back do front.

Não sou o primeiro a trazer esse assunto à tona, nesse post o autor alega que a divisão é um anti-pattern:

Agile teams, in particular, require open minds and the willingness to wear different hats to be effective.

Não concordo apenas com a generalização, cada caso precisa ser analisado de forma contextual, porém muitas vezes toma-se por verdade absoluta que todos os sistemas devem ser divididos entre back / front, isso começa nos desenvolvedores e cresce pra "times de back" e "times de front", isso é sim, pode ser considerado algo bastante prejudicial, pois limita a capacidade de inovação dentro dos times por falta de comunicação e interação.

Blind Girls

Numa necessidade de se auto determinar, muitos se identificam como full stack e só, para não precisar mais pensar no assunto nem limitar seu ramo de atuação e aprendizado escolhendo apenas um caminho.

48.3% dos desenvolvedores se identificaram como full stack em 2019

Fonte: State of JS 2019

Olhando para o desenvolvimento de produtos, sistemas ricos e complexos que resolvem problemas desafiadores podem ser criados quando nos livramos do estigma de que back cuida do banco e da performance e que front cuida da pele. Times multidisciplinares, com especialistas de todas as áreas tendem a construir soluções mais eficientes e com maior qualidade final, desde que estejam abertos a colaboração e ao aprendizado.

Backenders devem entender que gaps de performance não começam quando o endpoint está cheio de requisições que precisam ser otimizadas, mas que a performance tem de ser levada em consideração na ideação do produto, na validação dos protótipos e na escolha de arquitetura do front.

Frontenders devem entender que a participação do backend é de suma importância para viabilidade da solução, uma vez que a presença de um especialista antecipa problemas que por vezes mudam e moldam a solução no front.

Mas voltemos ao assunto principal, ainda faz sentido essa separação?

O mundo de TI é muito amplo para se encaixar a divisão back-end / front-end como um formato que demanda as duas especializações. Hoje temos cientista de dados, gestores de banco de dados, devops, ux/ui designers, fullstack developers, desenvolvedores mobile, e por aí vai. Enquanto empresas seguirem inovando e criando produtos, novas funções aparecem, para dar "nome" ao que cada indivíduo desenvolve nesses produtos criados.

Cada vez mais, vemos que essa divisão simplista entre quem cuida do servidor, e quem cuida do cliente, cai em irrelevância, pois os problemas estão ficando mais complexos, levando a mais especializações, que muitas vezes misturam noções de tudo, não apenas dessas "caixas" que criamos para o backend e frontend.

Então não, o que vamos seguir vendo é uma simbiose das duas funções, em novas especializações focadas em funcionalidade, pois é uma consequência natural da evolução do conhecimento, sem regras escritas na pedra.