- Ferramentas de IA aumentaram a produtividade de desenvolvimento e a capacidade das equipes, mas a qualidade e a estabilidade do software não melhoraram na mesma proporção, e os usuários passaram a esperar primeiro uma experiência pior depois de uma atualização
- Bugs do dia a dia como autenticação repetida por FaceID em apps bancários, roubo de foco no Slack, falha no pedido de garantia da LG e erros no infotainment do carro atrapalham finanças, trabalho, suporte ao cliente e a própria direção
- Ao contrário do passado, novas abstrações, frameworks de frontend e a complexidade da infraestrutura foram se acumulando e, junto com padrões mais altos para a experiência do usuário, os sistemas ficaram cada vez mais frágeis
- Mesmo com modelos mais recentes e orçamento de tokens suficiente, melhorar a estabilidade dificilmente se destaca em KPIs ou materiais de apresentação, então as empresas priorizam novos recursos e redesigns em vez de corrigir bugs
- Enquanto as empresas acumulam dívida de IA, desenvolvedores independentes podem desafiar software que antes seria difícil demais de criar, e a reação contra macOS e Windows pode se espalhar para a melhoria do software do dia a dia
A experiência do usuário piora mesmo na era da IA
- Em meio à febre da IA, as pessoas consomem tokens em excesso tentando garantir valor de mercado antes que tudo seja automatizado
- A melhora no desempenho dos modelos, as demissões sucessivas de programadores e a previsão de que até o fim do ano a IA escreverá 100% do código aumentam a ansiedade
- A era dos agentes promete produtividade e qualidade mais altas
- As novas ferramentas já mudaram a forma de criar e usar software
- As entregas exigidas pela liderança das equipes aumentaram, e é possível que a capacidade média das equipes de software tenha subido para outro patamar
- Porém, muitos produtos reais não conseguem garantir nem estabilidade básica
- Apps bancários pedem em média três logins com FaceID até aparecer a tela de confirmação do 3D Secure
- O Slack para macOS abre com atraso e rouba o foco do Ghostty, enviando para o chat em grupo o comando
git pullque estava sendo digitado no terminal - O pedido de garantia de uma geladeira LG falhou na etapa final de envio de um formulário em várias etapas com inúmeros campos, e só era possível descobrir o erro verificando o console JavaScript
- Depois de uma atualização, o infotainment do carro reiniciava toda vez que se dirigia, o som da seta desaparecia ou o rádio abria no lugar do Google Maps, e a entrada na tela também atrasava de 1 a 2 segundos
- Erros no carro vão além de um simples incômodo de UX e prejudicam até a concentração ao volante
- O PM da equipe de redesign do sistema operacional do carro comemorou o resultado no LinkedIn, mas os usuários reais continuaram tendo de lutar com o produto
- Essas equipes provavelmente usam os modelos mais recentes e um orçamento folgado de tokens, e os LLMs também podem ter ótimo desempenho em correção de bugs quando recebem a chance
Como complexidade e KPI empurram a qualidade para fora
- Sempre houve bugs no software, e a nostalgia dos tempos do macOS Snow Leopard como se tudo fosse totalmente estável inclui memória seletiva
- Se o software do passado era melhor, o principal motivo é que ele era muito mais simples do que hoje
- Depois disso, foram adicionadas novas abstrações, frameworks de frontend e mais complexidade de infraestrutura
- Os padrões de experiência do usuário continuaram subindo, mas o sistema como um todo ficou ainda mais frágil
- As atualizações do macOS e dos apps que dependem dele se tornaram mais motivo de preocupação do que de expectativa, e os usuários já partem da ideia de que a nova versão pode ser pior que a anterior
- O problema não é a IA em si, mas onde o uso da IA é priorizado
- A infraestrutura de GPU deu aos desenvolvedores capacidades poderosas, mas isso não está sendo usado o suficiente para criar software melhor
- Empresas de software há muito tempo se movem com foco em KPI, e melhorias de estabilidade podem não aparecer diretamente nos números
- Um plano de passar um trimestre inteiro sem novos recursos nem redesigns, focando apenas em corrigir bugs, dificilmente se destacaria em materiais de apresentação
- Se essas prioridades não mudarem, a queda na qualidade do software também inevitavelmente continuará
Uma oportunidade aberta para desenvolvedores independentes
- Enquanto as empresas afundam coletivamente em dívida de IA, desenvolvedores independentes ganham a chance de criar software que antes estaria fora de seu alcance
- A expectativa em relação ao Android Auto dos carros ou ao site da LG é baixa, mas a frustração acumulada com o estado atual pode virar força para melhorar o software do dia a dia
- Já surgem movimentos de reação contra a situação atual de macOS e Windows
- Há expectativa de que essa tendência se espalhe por toda a stack de software
1 comentários
Comentários no Hacker News
Antes eu atualizava esperando ver que recurso novo apareceria de graça e até procurava as mudanças no Fedora Workstation 45, mas agora atualizações de celular, TV, carro e sistemas operacionais que não sejam Linux já começam dando medo
Fico preocupado se vão enfiar mais recursos indesejados e conexões externas, e o macOS já faz tempo matou essa expectativa com coisas como obrigar você a achar uma borda transparente minúscula para redimensionar janelas
O Windows 11 parece usar dark patterns do tipo voltar a recomendar recursos de conexão indesejados ou recursos de IA depois de uma atualização de segurança
Tirando videogames, odeio quase toda atualização de software, e até em Dead By Daylight o único consolo é que a incompetência da Behaviour fica presa dentro do jogo
Software proprietário não é mais feito para o usuário, mas parte do FOSS ainda coloca o usuário em primeiro lugar
Em vez disso, o “ambiente conectado” é distribuído por pacotes Store/AppX atualizados automaticamente, e ao reiniciar após o patch ele executa o OOBE para recomendar de novo ou ativar recursos
Tecnicamente não está amarrado à atualização de segurança, mas continua sendo um dark pattern que desrespeita o usuário
A combinação dessas ferramentas com a cultura de “move fast and break things” do Vale do Silício elevou as expectativas da gestão sobre a produção das equipes, e o pior é ter de aguentar essa cobrança
Dá para fazer software rápido, mas para ter confiança de que está certo é preciso mais tempo
Com geração de código por IA, um engenheiro experiente talvez faça em uma hora algo que antes levava uma semana, mas isso não reduz o tempo de validação da correção
Muitos desenvolvedores só aproveitam o ganho de velocidade na geração e ignoram o custo de verificar estabilidade, desempenho e ausência de defeitos, embora a queda de qualidade no software para o grande público já viesse de antes da IA
O efeito varia muito conforme a tarefa e não escala linearmente em projetos de longo prazo; às vezes a IA até causa atrasos maiores
Se você ignorar qualidade, dá para ir muito rápido, mas mesmo sem IA você vai bem mais rápido se não se importar com qualidade
Não importa quanto tempo tenha sido desenvolvido, três meses funcionando direito no mundo real são mais confiáveis, então é preciso lançar cedo e com frequência
A qualidade do software sempre dependeu dos incentivos de mercado, e a IA não cria sozinha motivação para fazer software robusto
O mercado recompensa escolher um produto one-stop da Microsoft em vez de um app que não quebra a cada atualização ou uma combinação de várias soluções independentes
No passado isso não era feito só por falta de desempenho dos computadores e de conhecimento; agora o setor parece ter encontrado as condições mínimas para o software ficar em pé por um fio e o limite de pequenos incômodos que o usuário aceita suportar
Software completo e correto só é feito quando o risco de responsabilidade legal por defeitos é alto
No Wayland do KDE Plasma existe uma configuração global para controlar quais janelas podem roubar o foco, e ela funciona muito bem
Sempre sinto falta disso quando uso um Mac do trabalho ou um PC com Windows, e a documentação está no item “Focus stealing prevention”: https://docs.kde.org/trunk_kf6/en/kwin/kcontrol/windowbehavi...
Parece um ambiente em que o Windows 7 continuou melhorando devagar e ganhou um nível útil de acabamento
O NixOS tem um problema antigo em que o carregamento de bibliotecas é n² e isso deixa a inicialização de programas GUI lenta, mas até num mini PC N100 tudo abre em cerca de 1 segundo e ele ainda toca um monitor 4K 240Hz HDR com tranquilidade
Acima de tudo, o computador faz exatamente o que foi mandado
Se o usuário espera e nesse meio-tempo faz outra ação, isso pode ser um sinal de que ele já não quer mais dar foco àquele app, mas o design parece partir apenas do cenário otimista em que o app abre imediatamente
As palavras sugeridas no teclado touch mudam no instante antes de o dedo tocar, e no iOS Liquid Glass ou em web apps instáveis até os botões se mexem
Também há um excesso de pop-ups e incentivos de engajamento como “você está gostando deste app?”
O roubo de foco no Windows já era um problema em 1995, e essas mudanças repentinas repetidas em intervalos de 100 ms continuam estimulando a resposta muscular de sobressalto e o sistema límbico, a ponto de depois de algumas horas o corpo começar a tremer
Precisamos parar com estímulos de caça-níquel e métricas de engajamento atrás de cliques, e deixar as pessoas se concentrarem no trabalho
O padrão deveria ser um debounce contra roubo de foco que impeça absolutamente qualquer outro app de tomar o foco enquanto o usuário está digitando ou interagindo com a UI
Mesmo usando pop-ups, sons ou ícones piscando, um app sem relação com o que está sendo feito no momento não deveria interceptar a entrada
Não faz sentido pedir exceção como o Cisco AnyConnect, que exige isso só porque conectou depois de clicar no botão de conexão, e assim como não se tolera que um app de terminal roube o STDIN, isso também não deveria ser permitido na GUI
Pode ser um bug, mas se o usuário clicou em outra janela antes de o app terminar de abrir, isso pode até ser o comportamento correto
Dá para não dar foco a novas janelas, como no X11, mas esse pode não ser o comportamento desejado pela maioria dos usuários
O problema nunca foi simplesmente escrever código, e sim o processo de construir algo com cuidado e rigor
O desenvolvimento de software evoluiu ao longo do tempo acumulando hábitos, salvaguardas e estruturas validadas, mas agora basta descrever o problema e o resultado gerado rápido demais não é devidamente revisado, a ponto de nem se saber direito o que foi colocado em produção
Assim como móveis artesanais viraram produtos de fábrica em que ninguém sabe quem fez qual parte e que já não duram tanto, o software também chegou à etapa de montagem e implantação sem entendimento
A precariedade vai se acumular, mas isso também pode ser o começo de um novo ciclo de reflexão séria sobre como voltar a fazer bem feito
Se não houver revisão de código, entregar código para a IA não é necessariamente pior do que executar
PIPouNPM installsem revisar nadaO software continua piorando porque a própria premissa de que programar foi resolvido está errada
Programar já era barato há muito tempo e as empresas terceirizavam para a mão de obra mais barata, mas a capacidade de identificar o problema e desenhar a solução é outra coisa
Código é mais dívida do que ativo, então deve-se escrever apenas o mínimo necessário para resolver o problema real, e isso exige engenheiros
Depois de revisar a saída da IA e corrigir os erros, o tempo fica parecido com escrever diretamente, então isso não ajuda tanto no trabalho
Concordo que o software está piorando, mas não dá para culpar só a IA
Falhas ao transmitir streaming para a TV, erro 500 no navegador e tela azul em touchscreen de serviço público já existiam antes
Além do crescimento exponencial no número de programadores, com metade tendo apenas poucos anos de experiência, praticar só algoritmos de thread única não basta para lidar com sistemas distribuídos, CQRS, event sourcing, auditabilidade e idempotência
Além disso, quando responsáveis de produto não técnicos (POs) dominam o ciclo de vida e fazem a equipe implementar apenas o caminho feliz do MVP, bugs e uma futura reescrita ficam garantidos
As linguagens ficaram mais amigáveis para iniciantes, passando de C++ para Java, JavaScript e Python, mas o trabalho ficou mais complexo, com sistemas distribuídos entre empresas, operação 24 horas, milhões de usuários, segurança e machine learning
Enquanto promoções de executivos e fusões de departamentos são embaladas como “notícias empolgantes”, desaparece a continuidade da melhoria do produto
Não é preciso aplicar o ágil de forma literalmente estúpida, e mesmo em infraestrutura ou apps para usuários dá para planejar, com base em produtos anteriores, concorrentes e experiência da equipe, os recursos necessários daqui a 3, 6 e 12 meses
Assim como ao seguir o GPS se olha a rota inteira e os próximos três passos, ágil não significa só pensar no próximo passo depois de terminar o anterior
Se uma máquina faz camas 150% mais rápido, mas com taxa de defeito de 70%, ao mesmo tempo aumentam os produtos defeituosos, desaparece a especialização em marcenaria e cai a motivação e a utilidade do artesão
Mesmo que um dia a máquina melhore, até lá muita gente vai ter de dormir em camas horríveis
Um LLM não consegue ler e entender toda a base de código de uma vez e depois tomar decisões com base nisso
A parte difícil da programação não é uma função ou classe isolada, e sim como elas interagem dentro de um sistema enorme, e a escala do software é fundamentalmente maior que a janela de contexto do LLM
Mesmo com uma janela de contexto maior, isso não equivale a acumular entendimento como um ser humano, então não dá para dizer que a IA resolveu a programação
Em projetos novos ela é útil, mas criar software novo rapidamente sempre foi mais fácil do que trabalhar em código antigo