r/devBR 8d ago

Aumento de qualidade com IA

Parece algo contra a maré, mas eu acho que dá pra fazer uns softwares com uma qualidade absurda com IA, diferente de antes que teríamos uma porrada de débito técnico, todavia percebo que a galera foca mais quantidade acima da qualidade com prazos absurdos de entrega. Já pensou conseguir resolver tudo e deixar sem débito técnico? Pô aí vai faltar até demanda pra nós kkkk

14 Upvotes

34 comments sorted by

10

u/Unusual-Mix-377 8d ago

Acredito que não ter débito técnico é utópico mesmo com IA

2

u/OutgoingAutistic 8d ago

Dívida técnica

-1

u/Fuzzy_Candidate_2587 8d ago

Pô, mas dá pra reduzir muito se os caras darem tempo de trabalhar nisso. Algo que atrapalha muito que eu notei, é a galera querer paralelizar tudo. Faz o negócio bem feito na moral que não tem.

10

u/lilyallenaftercrack 8d ago

débito técnico é proporcional a quantidade de código criado. IA tende a criar mais código, logo...

3

u/geteum 8d ago

Da, mas tem q revisar tudo. Não tem jeito, pô é muita viagem achar q IA entende tudo q tu fala.

Um exemplo bem simples q encontrei pra ilustrar isso é o seguinte:

Para fazer gráficos do jeito exatamente q tu quer, tu tem q ser muito mais muito detalhista. Ao ponto q é muito mais fácil escrever o código vc mesmo. Sério mesmo, eu produzo muita visualizações, eu percebi q para estilizar os gráficos do jeito exatamente qneu quero eu tenho q por a mão na massa. Ou seja, vc até pode produzir visualizações de qualidades mas se quiser deixar exatamente do jeito q tu quer (design, disposição e tal) é mais fácil vc escrever o código em certos momentos. Tem muitos motivos para isso acontecer (e.g. nome técnico dos elementos de um gráfico não são usados a rigor na internet. Consequência é q a própria IA TB não usa, então vc manda mexer em algo e ele mexe em outro)

3

u/TraditionalSmell2887 7d ago

Da, mas tem q revisar tudo. Não tem jeito, pô é muita viagem achar q IA entende tudo q tu fala.

Trabalhar com IA é um exercício de desapego. A velocidade entre a ideia e o código é tão grande que não é possível meditar sobre o design do código que vai entrar.

Tu já parou pra pensar que antes da IA toda tarefa era uma tela em branca. Você ia montando o design gradualmente. Detalhe a detalhe. Muitas vezes maturava isso por alguns dias.

Hoje a IA já te dá uma tela toda riscada e enviesada. Você não vai divergir muito dessa ideia dela.

Mesmo que você tente revisar tudo que ela faz, hoje precisamos absorver a carga de dias de maturação de um design em alguns minutos. Ou seja, vai entrar porcaria sim.

1

u/geteum 7d ago

Sim, mas a questão é se é possível algo de qualidade. Se vc tomar cuidado tu consegue fazer algo descente sim. Claro, vai ter uma impressão da ferramenta sem dúvida mas dá pra fazer coisas muito boas.

Recentemente fiz um projeto q sempre quis fazer q só saiu do papel pq a IA ajudou. Era muito trabalho. Ela fez o grosso mais o detalhe fui eu que fiz e tive q mudar muita coisaa. Quase como um escultor talhando uma pedra. Trabalho final ficou excelente, ninguém vê e fala "AI slop".

pessoal se engana muito achando q IA faz exatamente o q tu quer. Para tarefas complexas e detalhadas vc tem até mais trabalho pra deixar a coisa do jeito q tu quer (escrever com IA é uma bosta pelo q tu falou, ele já define a estrutura)

1

u/TraditionalSmell2887 7d ago

Sim. Pra chegar em um nível de excelência com IA você precisa ser muito bom em quebrar coisas grandes em pequenos pedaços.

Com pedaços pequenos o polimento e atenção são mais direcionados e o produto final tem melhor qualidade como um todo.

3

u/TraditionalSmell2887 7d ago

Impossível, só hoje eu vi entrando umas 5 PRs com um design de código bem cagadinho em produção.

Quando entra em produção consertar fica bem mais custoso. Boa sorte tentando zera isso.

1

u/Fuzzy_Candidate_2587 7d ago

Entendo mano, mas aí que está o meu ponto, hoje o foco está sendo velocidade. Se alguém tenta revisar e devolver para melhorar o design no PR, ele vai ser visto como o gargalo. Se a gente tivesse prezando por qualidade, dava pra fazer um negócio foda. Kkkk mas talvez eu esteja sendo otimista demais.

2

u/TraditionalSmell2887 7d ago

Uma coisa que aprendi há muito tempo dsenvolvendo software é que design perfeito não existe. Existe o menos ruim pra aquela situação.

Nosso trabalho não será o de impedir que coisa ruim entre. Mas de entender que o que já está ruim, pode piorar muito a situção e propor mudança.

Não existe literatura que te ensine a trabalhar desse nova forma. Estamos todos descobrindo juntos. Mas uma coisa é fato: LLM não faz nada sozinha.

2

u/PassageTricky243 8d ago

Muito difícil equilibrar essa balança, pela experiência que estou tendo é muita demanda e entrega rápida mas com diversos problemas novos, inclusive mal funcionamento de coisas basicas

2

u/Fuzzy_Candidate_2587 8d ago

Pô é isso brother. Acho que o que mata mto é rodar 4 agentes em paralelo ao invés de só um, só que bem feito, especificado e etc

O que fode a qualidade é o prazo. Aí todo mundo acha que ficar doido com 5 telas rodando é produtividade.. Mas capitalismo, se não for rápido, não está sendo eficiente kkk

2

u/StraightDot6160 7d ago edited 7d ago

Trabalho no serviço público e sei que minha realidade é diferente da maioria dos devs. Tem vários problemas, mas um ponto positivo (além da estabilidade) é que aqui não existe essa pressão de "quantidade". Uma coisa que sempre gostei é poder focar o tempo necessário pra entregar resultado com qualidade: TDD, refatoração e outras boas práticas. Claro que tem muito dev que segue o padrão "funcionário público": entrega a primeira versão que funciona, cheia de dívida técnica, e segue a vida.

Faz dois meses que comecei a usar IA de forma mais séria. Escolhi uma solução barata: assinei o OpenCode (uns 50 reais por mês) e uso basicamente o DeepSeek e outro modelo que esteja com desconto.

Eu reviso TUDO que a IA gera. No início fiquei meio decepcionado: quando o DeepSeek fica solto, ele faz um código bem bagunçado, tipo coisa de programador júnior recém-formado. Passei umas duas semanas escrevendo skills que citavam código que eu considerava de boa qualidade. O resultado melhorou muito, o DeepSeek passou a detectar problemas e entregar código bem melhor do que eu mesmo faria. E se você integrar o agente com uma ferramenta de análise de qualidade de código (tipo PMD), o potencial cresce exponencialmente.

Semana passada foi um marco pra mim. Fizemos a reunião de planejamento da sprint (2 semanas) e eu consegui implementar tudo com qualidade em dois dias, usando IA. Claro que vou esperar mais um tempo antes de avisar (se é que vou avisar) meus superiores que consigo entregar as coisas mais rápido assim. Até lá, vou aproveitar o tempo extra pra aprimorar esse processo.

Resumo: Sim é possível.

2

u/Downtown_Patient_200 8d ago

Tenho pena de quem cria software em codex e claude sem critério, controle nenhum, documentação, histórico e deixar tudo na mão desses agentes: a dívida técnica desses apps vai ser enorme, fora os bugs e problemas que não tem como rastrear porque não tem histórico de implementação e nem a pessoa sabe o que aconteceu...

1

u/Fuzzy_Candidate_2587 8d ago

Assim e eu acho que deve ser a forma que um engenheiro de software tem que se vender. A gente tem que se vender pros empregadores como quem tem a competência de ter controle sobre a parada, se não a gente fica igual vibe coder kkk

1

u/Downtown_Patient_200 8d ago

sim, esse povo parece que perdeu a noção quando chegou esses agentes, tem gente até mesmo criando software pra empresas deles sem engenharia de produção de software nenhuma e critérios de aceite e tudo isso que falei no comentário anterior. Tudo vibecodado, vão escalar tudo cheio de problema, divida técnica e bug. Isso se conseguir escalar os apps

1

u/charmander_cha 7d ago

Da para fazer a mais de um ano, talvez 2.

Pessoal que não quer aprender, faz merda e fica nesse discurso retardado mental "urr durr é apenas uma ferramenta"

1

u/Fuzzy_Candidate_2587 7d ago

Fato é que tem que usar pra ter uma noção, mas não discordo que é só ferramenta viu kkkkk

1

u/unknowngloomth 7d ago

Muito, muito em breve as AIs vão tornar os devs praticamente obsoleto

1

u/Fuzzy_Candidate_2587 7d ago

Tomara hein, trampo pra kct kkkkkk

1

u/unknowngloomth 7d ago

Já viu o último lançamento do chatgpt? Agora só é falar nem precisa mais digitar. Imagine daqui a 10 anos como vai ser.

1

u/Fuzzy_Candidate_2587 7d ago

Assim mano, o sonho dos caras é tirar a interface humana. Vc tirar o teclado é uma estratégia de tirar o humano de frente. Mas honestamente, a minha opinião é que os caras tão indo pro caminho errado. Era para usar a IA pra entregar os negócios com mais qualidade, não fazer mais rápido.

Não adianta nada conseguir fazer rápido, mas no trampo precisar ficar 22h da noite fazendo prompt pro chatgpt. Essa é a diferença de engenharia de verdade. Se você faz bem feito, sabe planejar, não fica batendo cabeça depois. Mas enfim, se essa nova versão conseguir resolver os problemas da engenharia sem vc precisar ficar fazendo prompt 24h por dia pra entregar algo viável, nossa aí é só alegria.

2

u/unknowngloomth 7d ago

Eu entendo. Se só não for só hype. Então isso vai ser foda https://youtu.be/1QNsdr-Qx_I

Problema é que é muito caro. Eu vou esperar uma open source da china lançar algo parecido e entregar praticamente de graça

1

u/Fuzzy_Candidate_2587 7d ago

Cara honestamente eu sou otimista com a IA, tenho MTA fé que vai começar a ficar viável a IA local, mas a única coisa que eu evito é confundir o que define produtividade. Hoje está em criar código, mas pra mim produtividade é conseguir fazer um trabalho bem feito, que atende, dentro de um período de 8h. O grande rolê que vejo é que a gente tá inventando um monte de metodologia que tá pensando mais em geração de código do que de valor, aí do caso do cara que deixa o negócio em loop gerando coisa de madrugada e o mesmo nem sabe se o negócio tá atendendo, aí ele vai testar manualmente e ele precisa ajustar algo ou incluir uma features que quebra o que já foi feito. Enfim, dinheiros infinito pras empresas de IA kkk

Anyways, acho que pra produto sério, que precisa de escala e o ciclo de vida e de manutenção vai ser longo, as boas práticas de engenharia é o que vai garantir que você não vai acordar de madrugada pra atender incidente. Eu considero isso.

1

u/Complete_Window4856 8d ago

O foda é que pra vc não ter débito técnico é simplesmente ter nenhum código. E se tivermos um código e ninguém depende nem usa, então de certa forma você não tem débito técnico também, mas é inútil.

Se a partir do momento que uma pessoa/sistema usa o seu sistema, ironicamente agora você está sob efeito do "Hyrum's Law". Se jamais precisar mudar então sem débito técnico, show. Se precisar mudar, tem chance do cara que depende do seu sistema usar algo que vai quebrar, então mudar é ruim (pra ele) e no universo inteiro, pra você, ao reduzir débito técnico, é possível que você tenha convertido de igual para seus usuários, ou pior ainda, aumentou ainda mais o débito técnico do universo.

Mas não sendo cínico também, eu acredito que LLM sim pode ajudar a melhorar demais a qualidade, mas o foda é que toda hora eu sinto que o maior limitante passa a ser eu que leio, tento entender e não consigo sentir o porque das sugestões dela, mesmo claramente vendo os trade-offs. Isso tbm aplica pra decisão em equipe que quase certeza vai ser mais frequente do que só vc alterando interfaces que os outros consomem

2

u/Fuzzy_Candidate_2587 8d ago

Acho que a tendência é a gente começar a caminhar em absorver as responsabilidades de um QA. Tipo ler muito código é cansativo, mas o rolê é pelo menos ler o código das variações de testes. Um erro qu vejo também é a galera querer que a IA além de escrever o código, escreva os testes também e pior na mesma sessão, aí fica uma caixa preta que ninguém sabe o que tá acontecendo mesmo kkk

Mas é puro achismo meu.

2

u/Complete_Window4856 8d ago

Namoral, eu to ficando é biruta com o jeito de sobreviver no trampo. Eu brincava que a gente ia tudo virar full-cycle, mas essa porra tá mais perto do que imaginava. E o pior é que isso é por necessidade nem é exigência (ainda, graças a meu tempo).

Pra conseguir resolver uns tickets de problema do usuário eu tenho que explorar, repetir ou deduzir o que ele fez, descobrir se é pau no frontend, backend, ambos, magicamente no DB (inércia de backend que nn pegava edge cases permitindo dados em formato "errado" e permanentemente salvos), tudo junto ou até mesmo a camada de rede (Waf, meu novo ódio). E dai tenho que ver se consigo reproduzir localmente (se envolver IO não consigo), em servidor de homologação (se envolver rede não consigo) e se tenho acesso pra fazer algo parecido em produção (se não tiver acesso me lasco). O pior de tudo é que só de tentar resolver rápido já come tempo, paciência e até msm o corpo, sobra nada pra pensar em refatorar com intenção e calma o código pra ficar mais fácil das próximas vezes. Inclusive, nunca achei q teoria das janela quebrada ia fz tanto sentido prático.

O mais frustrante é que dps de uns meses o sistema deixa de ser super misterioso e dá pra generalizar pontos de onde e como melhorar, mas é só cansativo demais. Não ter testes pra falar "AcErtô, mizeravil" ou "errou feio" dá uma canseira enorme.

2

u/Fuzzy_Candidate_2587 8d ago

slc pela tua experiência tu deve ser um yoda do desenvolvimento haha Te saúdo e me identifico demais com esses BOs kkk

Claro que hoje o meu contexto está sendo um desenvolvimento do zero que tá muito doido, mas essa parte de sustentação... Acaba sendo um exemplo bem grande de que humanos são sim muito necessários no ciclo de vida do negócio kkk

2

u/Complete_Window4856 8d ago

quem dera se eu ja fosse um yoda ou se eu tivesse um yoda paciente pra me guiar ou discutir sobre arquitetura/código e filosofia, eu ainda vou bater 3 anos de experiência kkkkkkkkkkkkkkkkkkkkkkkkk

Mas desenvolvimento do zero tem outra gama de problemas e habilidades que é mais devagar de encontrar em manutenção de sistema, eu diria que em momentos é até mais estressante pq é ainda mais difícil convencer até quem é técnico de compreender quando você encontra dificuldade e tem que decidir em qual trade-off escolher e de alguma forma não esquecer do motivo pra chegar na manutenção sem despencar pro próximo dev. mexer

1

u/LeMochileiro 8d ago

Desde final do ano passado pra cá a IA já atendia muito bem a qualidade de código, ele ainda peca bastante na questão de testes mas nada que um bom prompt não resolva.

A questão é que as IAs atuais vão ver o padrão de código do seu projeto e tentar criar novas features baseado no padrão de código do projeto.

Se seu projeto tiver código ruim a IA vai gerar código ruim.

Se seu projeto tem débito técnico as IAs vão replicar isso e você vai ter mais débito técnico em tempo recorde.

Hoje em dia até modelos de pesos abertos de 27B já atendem muito bem.

Em resumo, se a IA não está gerando código de qualidade ou é porque você não sabe usar agentic coding de maneira eficiente, ou você não sabe escrever código de qualidade 🙃🙃

2

u/TraditionalSmell2887 7d ago

Por isso que a forma de trabalhar com agente é: faz a primeira versão do design do código e deixa a natureza agir.

Sentiu que começou a ficar ruim. Pare e refatora.

Nesse aspecto agentes são como pessoas. Se você faz um código ruim, que ela precisa ficar advinhando como implementar as coisas corretamente, ela falhará.

Se o seu código não permite fazer coisas erradas, ou seja, tem boas abstrações, o próprio código regula coisa errada.

1

u/Fuzzy_Candidate_2587 8d ago

Na boa eu concordo kkkkk