Executando verificação de segurança...
4

[DISCUSSÃO] O fim do front-end? Empresa não contrata mais devs front-end e apela para IA

Bom dia Devs,

Estava hoje, visualizando o feed do meu LinkedIn, e me deparei com o seguinte post da empresa "Dotted.ai", que dizia o seguinte:

"
🚀Tchau, desenvolvedores front-end! Olá, Inteligência Artificial! 🤖

Na Dotted.ai, tomamos uma decisão ousada: não contratamos mais devs front-end. Isso mesmo. Com ferramentas como V0.dev, Cursor, Copilot e ChatGPT, conseguimos entregar interfaces de alta qualidade sem precisar de uma equipe dedicada só para isso.

A IA gera código, ajusta componentes e nos permite focar no que realmente importa: negócio e experiência do usuário. Claro, ainda precisamos de bons engenheiros para revisar, integrar e garantir a qualidade. Mas a era do desenvolvedor escrevendo linha por linha de código está ficando para trás.

Se você ainda acha que “IA nunca vai substituir devs”, talvez seja hora de reavaliar. O mercado está mudando rápido. Quem não se adapta, fica para trás.

O que vocês acham? Estamos errados? Ou essa é a nova realidade do desenvolvimento de software?

-Adalberto Calonego Jr.
Fundador e CEO da Dotted

"""

Sinceramente, não sei o que pensar sobre, qual a opnião de vocês devs?

Carregando publicação patrocinada...
5

Eu vou falar disso porque ele é mais sério do que as pessoas estão enxergando, e sei que muitos negarão, ficarão revoltados porque não foi assim que a pessoas treinou o erro a vida toda, conforme eu sempre falo.

Um programador ruim pode facilmente criar dois novos empregos por ano

Primeiro, eu sempre falei que tem muita coisa sendo feita errada na nossa área. Boa parte da falta de profissionais existe por causa da falta de profissionais realmente qualificados. Então profissionais, muitas vezes experientes, principalmente em quantidade, muitos que são CTOs de empresas enormes, que conseguiram subir meteoricamente por causa do ambiente que estava e suas habilidades políticas, nunca se tornaram bons engenheiros, nunca entenderam completamente sua profissão, e sempre fizeram a tal da modinha, ou seja, apenas repetiram o que "todo mundo" está falando para fazer. Essa pessoa nunca tentou criar algo realmente novo, nunca foi atrás dos assuntos que estão em moda, não pensou fora da caixa, e sem entender totalmente todas as técnicas, os conceitos e sem saber aplicar adequadamente para produzir real inovação, essa pessoa só reproduz o erro da maioria.

Veja bem, essa pessoa tem algum mérito, mas falta algo para dizer que essa pessoa é engenheiro de software de verdade. Ela até é, mas só pra reproduzir coisas. E isso acontece em várias engenharias, na civil mesmo, se vê muito desperdício, inclusive surgem técnicas novas muito melhores e décadas depois tem um monte de engenheiro que não conhece ou não sabe aplicar ou acha que aquilo não é bom. Se a pessoa não tiver o espírito de engenheiro ela só vai copar coisas e se tem muitas coisas erradas, será isso que ela copiará. A pessoa com méritos ainda alcançará resultados importantes que trará valor e justamente por isso cega quem contrata e a si próprio.

Um exemplo que falo muito como as pessoas complicam muito a base de código para seguir certas regrinhas que leem por aí e que não traz benefício algum no caso dele ou não traz porque não aplica do jeito certo. A pessoa só segue o que foi dito para ela.

Um exemplo é como aplicam arquitetura limpa, que de limpa não tem nada, ela é extremamente suja. Alguns problemas podem exigir isso, mas boa parte dele, provavelmente a maioria, não precisa, pelo menos não totalmente. A pessoa aplica, torna a base de código mais complicada e convive com isso a vida inteira e sofre como algo inerente ao trabalho. Tem trabalho repetido aos montes por causa disso.

O mesmo vale para SOLID, DDD, microsserviços, e uma lista incomensurável de coisas que podem ser úteis em cenários bem específicos e geralmente acompanhada de aplicação correta, de uso de ferramentas extras, que provavelmente você terá que desenvolver para facilitar o trabalho e não virar um fardo enorme.

Esse é um assunto que me interessa muito e o primeiro vídeo do meu canal, que será bem longo e provavelmente sempre será o vídeo mais longo do canal, que se baseará na minha palestra de maior sucesso, fala muito sobre essa complexidade criada artificial e erroneamente, em nomes de “boas práticas”, que se tornam péssimas.

Ou seja, há muito tempo, certas tarefas já deveriam estar muito automatizadas e não feitas por humanos. Você modelar o backend e depois refazer tudo no frontend é um dos enormes desperdícios que já vi, junto com outras coisas que possuem camadas que são redundantes e de certa forma violam o DRY, o princípio que mais deveria ser seguido, inclusive boa parte do trabalho do programador em qualquer coisa, é justamente aplicar algo parecido com DRY nas informações dos outros, e ter tudo centralizado e você pode pegar o que precisa quando quiser do jeito que quiser sem risco de estar escapando algo ou gerar inconsistências quando coloca uma informação nova. Há muito tempo deveria ter só alguém para fazer a base estilística, a experiência do usuário e a melhor adequação dessa UI para o negócio, deveria ser feito por poucas pessoas e com trabalho mais no início para colher frutos depois e praticamente ter uma só pessoa cuidando disso (em alguns casos zero, em outros um pouco mais, depende do projeto).

Eu já nem gosto de usar os termos que usei, mas quis acompanhar a postagem original. Eu sou o chato que cobra as pessoas a usarem os termos corretos, porque isso ajuda a pessoa a pensar de forma correta, treina o acerto e não o erro. Quase sempre que a pessoa fala em frontend ela está na verdade falando de UI. E quase sempre é uma UI web, ela não está falando de outras que existem, ela até acha que se falar frontend (UI ou não) certamente será web, o que não é verdade. Inclusive com tudo o que eu falei acima, fazer para entregar UI para web ou outras formas, em plataformas diferentes se torna muito mais fácil, depois do investimento inicial.

É claro que nem todo projeto comporta isso, mas geralmente ele deve ser feito de forma muito simples mesmo, e em alguns casos a IA pode ajudar um pouco melhor, mas são projetos throw away ou algo muito isolado.

Eu já falei algumas vezes que apesar de mais de 40 anos de experiência na área, eu trabalhei em pouco mais de meia dúzia de projetos, que eu prefiro chamar de produtos, inclusive por isso tinha que ficar anos em cada um, a maioria eu peguei começado e depois que saí continuou evoluindo. Trabalhei em projetos diferentes, tive a sorte de trabalhar com alguns dos melhores engenheiros que já vi, world class mesmo, e trabalhei em necessidades muito diferentes. Curiosamente uma das que mais aprendi fazia tudo errado, então aprendi com os erros deles, mas a melhor parte é que eles aplicavam uma técnica que era muito usada em décadas passadas, mas com as modinhas ganhando força nos anos 90 elas foram deixadas de lado, não se tornou assunto popular e praticamente parou de ter uso. Algumas pessoas consideram até que isso gera complexidade. E é verdade, mas é uma que corta várias outras complexidades. Eu costumo dizer que a maioria das pessoas fala em escrever código que facilite a manutenção, mas se orgulha de ter trabalhado em dezenas ou centenas de projetos, em alguns casos em menos de uma década de experiência. O que esta pessoa entende de manutenção? Ela só entende o que ela lê ou vê no Youtube.

Tem jeitos melhores de fazer e dá para criar projetos enormes de forma mais eficiente para os programadores e ter equipes mais reduzidas, que até ganha também porque a redução do tamanho da equipe permite outra redução, é como aumentar a autonomia do carro elétrico diminuindo o peso e tamanho das baterias, a redução permite ter mais carga armazenada e vai precisar de menos carga para um range bom porque o carro está mais leve.

Algo que eu não falei diretamente é que a forma como se desenvolve software hoje gera muita dívida técnica, a maioria que as pessoas não percebem.

Copiar e colar é erro de design

Curiosamente citei a mesma pessoa no mesmo artigo (que vou desenvolver mais no meu blog/canal, e quem sabe um dia eu crie um projeto aberto para ajudar as pessoas a inovarem e melhorarem sua base de código e eficiência de desenvolvimento).

Usar a IA para isso, ou para muitas cosias em código, conforme qualquer pessoa profundamente sobre o assunto já antecipava, é mais uma geração de de dívida técnica. E já tem algumas pessoas bem respeitadas falando sobre isso, imagino que já tenha estudos sendo conduzidos.

A IA está gerando um monte de código que você pode classificar como copy and paste, algo que todo mundo sempre falou para não fazer, mas hoje ouço bem menos, começou uma onda tão grande das pessoas saírem reaproveitando (sem DRY) códigos existentes, dele e de terceiros, que se parou de falar para evitar copiar e colar. Isso virou o normal.

Começou ter muito código repetido para dar manutenção. Muitas vezes código que a pessoa nem entende. e que não se adequa completamente, a pessoa então adequa o projeto ao que ela tem ali (o que pode ser uma decisão pragmática, mas quase sempre é simplesmente falta de conhecimento, experiência real qualitativa ou deseixo).

A IA veio para piorar isso. Ela vai ajudar, mas vai perpetuar ainda mais a repetição de algo que deveria ser canônico. Porque a repetição até acontecia menos porque era caro, ficando barato vai explodir de fazer isso e as pessoas, se perceberem, vão se arrepender. Vou reforçar, a IA criará muita dívida técnica, a maioria das pessoas não tem ideia do buraco que estão se metendo.

Não estou dizendo que a IA não ajudará em alguma coisa, mas ela produzirá muito problema a longo prazo, e saber equilibrar isso para que o saldo final seja positivo é difícil, ainda mais porque 100% das pessoas são inexperientes nisso. A IA precisa ser aliada, mas a falta de experiência dos humanos fará com que ela seja uma aliada infiel, e "como todo corno", será o último a saber.

Conclusão

Para finalizar, a frase "IA nunca vai substituir devs” só é dita por quem não entende do que está falando. Da mesma forma que tem muita gente que fala a besteira "IA vai acabar com os programadores". Parece a mesma coisa, mas a primeira significa que parte do trabalho dos programadores será semiautomatizado e vai diminuir a necessidades deles, mas não sabemos ainda o quanto vai precisar de mais depois porque foi feito tudo errado, precisamos de tempo e alguém que queira medir para não ficar só na impressão. A segunda frase indica mais quase o fim dos programadores, e isso não vai acontecer, mas só bons programadores vão sobrar, porque a parte mais mecânica, com IA ou outra técnica, vai quase desaparecer no longuíssimo prazo.

Se adaptar é se tornar um desenvolvedor de primeira linha. Não vejo "ninguém" fazendo isso. Cada vez mais as pessoas só querem cursos rápidos, superficiais, que ensinam o erro, o popular, o fácil. Claro que aprender fazer prompts para ajudar onde deve é algo que deve se adaptar, mas a melhor adaptação é saber quando usar isso e quando tem soluções melhores, se adaptar é não cair na tentação do prêmio de curto prazo para pagar depois com altos juros a dívida que criou porque achou que a IA entrega tudo do melhor sem desvantagens.

Quase todo mundo vai ignorar isso porque não é popular? Claro que sim.

Sobre criatividade

A IA não ter criatividade nesse caso é feature. Já era um problema enorme as pessoas mostrarem suas veias criativas em desktop prejudicando a experiência. Em web é pior ainda, tanto que algumas pessoas não conseguem se adaptar a certos sites. A falta da criatividade não faz falta na maioria dos casos de UI. A criatividade deveria só ser usada para criar uma inovação efetiva e preferencialmente ser universalizada. Em UI algo muito importante é o usuário ficar confortável. Ele ter que aprender uma nova UI, geralmente mal-feita porque quem costuma ir por esse caminho são pessoas com baixa capacidade, é algo ruim.

Eu tenho rstrições ao uso de Bootstrap e afins, mas não por causa disso, esse é um ponto positivo dessas interfaces, o ideal seria existir um só.

Por coincidência descobri isto esta semana: https://open-ui.org/.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

3

focar no que realmente importa: negócio e experiência do usuário.

Para mim já perde credibilidade aqui, que acha que a interface não faz parte do negócio, e tem um impacto de peso na experiência do usuário.

Sempre tentam eliminar o Front-end, pois apesar de taxarem de "fácil", na verdade exige sim competência absurda para criar algo realmente funcional.

Eu consigo contar quantos sites eu já entrei e realmente eram bons no quisito interface, experiencia do usuário, otimização e afins...

A minha opinião sobre é que o futuro dessa empresa pode ser nebulosa. Apesar de Front-end ser em sua grande maior parte interface, existem coisas que são feitas numa camada mais abaixo como validação, conexão de API, modularização, responsividade, testes, manutenção (isto aqui o que vai mais dar dores de cabeça para eles). Isto citando algumas coisas, dependendo do site, ou se for uma web aplicação, tem gerenciamento de banco de dados no lado do cliente para acesso de conteúdo offline, enfim, já "assassinaram" of "Front-ends" várias vezes, mas até hoje tem vaga. Apesar que não da para fechar os olhos as altas exigência.

Outro ponto é que toda aplicação deles será um bootstrap da vida. Simples e tudo genérico. IA não tem criatividade e não faz magia, ela faz o que você pede, e tem que pedir direito. Apesar disso, eu duvido que uma IA consiga criar algo muito diferente de uma coisa para outro, a não ser com cores e organização diferente de elementos.

2

Meus 2 cents:

Um ponto voce pegou em cheio aqui: a falta de criatividade da IA.

Como a IA nao cria nada, eh apenas um analisador semantico-estatistico que chuta caminhos (palavras/tokens) baseado em pesos daquilo que ja foi alimentado no seu treinamento (mesmo que seja um RAG), limitando a tal criatividade ao um parametro de randomicidade nos caminhos/pesos escolhidos - a probabilidade dela criar algo diferenciado eh bem remota.

Por outro lado - o que vemos sao empresas que querem mais do mesmo, ate para que o usuario se sinta "confortavel" com a interface. Neste ponto dou o braco a torcer para o Jobs ou o Ford e suas posicoes sobre o assunto - "Ford sobre a opiniao dos clientes sobre os carros: Se eu tivesse perguntado às pessoas o que elas queriam, elas teriam dito - cavalos mais rápidos.". Sei que eh um exagero - mas o ponto aqui eh: nao existe mudanca sem ousadia, e nao existe ousadia sem risco (adoro o filme "Ford vs Ferrari" sobre este assunto).

2

teve uma startup canadense que fez isso. Demitiu toda a sua equipe de decs pra usar IA em tudo, tudo mesmo. Fuas semanas depois ela estava contratando devs novamente. Na teoria tudo é bonito, mas na prática...

1

Muitas coisas podem ser criadas por IA (atualmente muitas mesmo). Porém, quantas dessas vão realmente aplicações grandes?

A pessoa por trás do Prompt, ela tem noção de negócio, ou tem noção de programação e projeto de sistemas?

Se a pessoa por trás do Prompt for criar uma coisa simples, para criar um MVP por exemplo, a IA serve perfeitamente o propósito.

Agora, será que um grande banco vai deletar todos os devs e colocar uma IA pra gerar o código? Será que as empresas que trabalham com High Frequency Trading (HFT) vão mandar toda a galera que enxerga os bits embora e usar apenas IA?

Será que as empresas de carros autônomos vão mandar todo mundo embora para usar apenas uma IA? Será que elas vão mandar o time de Machine Learning embora? Quem vai rotular os dados? Quem vai garantir as normas de segurança que o código em C++ que as empresas devem garantir para poder executar softawre em veículos não tripulados?

Quando o PIX do banco parar de funcionar, de quem é a culpa? Quando o carro autônomo atropelar uma pessoa, de quem vai ser a culpa? Quando a empresa de HFT perder bilhões em questão de segundos por que uma IA fez bost4, de quem é a culpa?

Mas beleza, vamos partir do princípio, que você tem um modelo muito bom, capaz de gerar um código de qualidade.

Então a IA vai subir uma infra na OCI/AWS/Azure e etc... através do quê? Ah, beleza, um Terraform. Ok, ela vai comprar um domínio. Ela vai configurar firewall, ela vai configurar o cluster de Kubernetes, ela vai inserir as chaves no GitHub secrets, no Docker secrets.

Ela, também, vai cuidar da interface de usuário. Ela vai cuidar do Design também? Ela também vai lidar com as prioridades?

Eu poderia discursar mais. Porém, a realidade é uma só: gente medíocre não possui espaço em lugar nenhum. Pense no seu trabalho atual, ou em experiências passadas sobre a pior pessoa que você já trabalhou. Qual era a participação dessa pessoa no time? Ela era útil?

Diferente da Matemática, numa organização 1 + 1 não são 2. Pode ser 3, 0, ou até -1. O que eu quero dizer? Existem pessoas que foram colocadas ali que literalmente não fornecem output suficiente para poder fazer o time entregar resultados. Muitas vezes, ela até atrasa o resultado de todo mundo. Essa pessoa que não soma, tende a ser eliminada. Seleção natural.

Se é mais viável ter uma IA para fazer parte do seu dia-a-dia, e você estiver contente com o output dela. Usa. Até o momento que você não tiver tempo, nem conhecimento, suficiente pra lidar com o prompt e cuidar de garantir que as respostas da IA estejam de acordo com o que você precisa.

A IA é a baseline, se você for pior que ela, tá fora do jogo.

1

Vi o exato mesmo post, mas assim como muitos devs, vou na mão inversa desse pensamento, simplesmente não faz sentido, atualmente, confiar na IA ou em prompts para fazer seu frontEnd, a conta não fecha, principalmente para lógica de negócios, criatividade e senso de existência. É isso, não acho que seja algo para se preocupar, inclusive nesse mesmo post, tem muitos outros usuários falando que em pouco tempo o Adalberto estará contratando novos devs. Eu mesmo acho que ele só quis chamar atenção, pois na gringa fizeram algo parecido. Deixo um ultimo ponto: Não creio que a IA chegue a níveis altos de desenvolvimento pelos próximos 10-15 anos, isso, claro, pode acontecer de nunca chegar.

1

Meus 2 cents:

Tenho experimentado algumas ferramentas como:

Alem de ferramentas no-code/low-code como:

E o que percebi foi:

  • Se voce nao for desenvolvedor com alguma experiencia, nao vai conseguir criar aplicativos que resistam a testes de integridade e seguranca, ou que tenham as funcionalidades que realmente fazem diferenca.

Talvez este cenario mude em 1 ou 2 anos (isto esta acelerando muito), mas neste momento estas ferramentas ate criam um front-end bonito, mas por baixo dos panos o codigo eh bem simples e faltam funcionalidades e estruturas de seguranca basicas.

Alem disso, alguem que saiba o que esta fazendo tem de pedir as funcionalidades especificas que vao ser necessarias, com os ajustes necessarios. Uma biblioteca de prompts pode ate ajudar, mas nao resolve tudo.

Tem muito mercado ainda para devs - mas estes tem de se adaptar a esta nova realidade, aprendendo a usar estas ferramentas, ate porque vai ser o novo "basico" que sera exigido nas contratacoes.

Um detalhe extra: o uso destas ferramentas acaba ficando caro para empresas - e a perspectiva eh ficar cada vez mais caro. Talvez exista um nicho de mercado ai para infra-estrutura: criar servidores de IA sob-demanda para codigo.

1

Acredito fortemente que nenhuma empresa ira confiar plenamente numa ia! Ela é uma facilitadora de codigo, ela ta é aumentando a produtividade e a diversidade dentro da empresa! se a empresa esta trocando gente por maquina vai ver ela não tem tanta preocupação assim com serviço que presta, e nem se importa com a qualidade! acontece que nessa area de tecnologia tem muito ctrl c e v e sempre foi assim, temos poucos sistemas operacionais, poucos editores de texto, poucos editores de videos, etc. o que salva são as necessecidades individuais, podem ou nao ser atendidas por um simples prompt, o que toma emprego não é ferramenta em si a questão é bem complexa! Mas querem culpar a ferramenta!!

1

No fundo eu acho que essa história toda é só para aumentar a visibilidade. Parece que a moda agora é sempre um CEO soltar algum assunto polêmico, que gere discussão e que acaba trazendo visibilidade para o próprio negócio.