Meus 2 cents:

Uma dica que aprendi no inicio da carreira foi: quando for construir uma aplicacao, veja quais os relatorios (as saidas) que ela precisa gerar, mapeie os dados e parta dai.

OK, mantidas as proporcoes e devidas atualizacoes (afinal a dica eh dos anos 80) - sempre achei uma metodologia interessante: identificar primeiro no levantamento de dados quais as informacoes que de fato o usuario precisa para dai mapear a estrutura necessaria que o sistema devera ter.

Existe um monte de armadilhas aqui, como a possibilidade do usuario passar uma necessidade que eh apenas legada e nao real:

Entao: mapeamento de dados => BD => aplicacao.


Atualmente, nas experiencias de "vibe coding" com IA, tenho tentado o seguinte: criar um PRD descrevendo as tabelas e o que o sistema deve fazer e depois passar no replit/loveble/etc.

1. Exemplo de prompt "vibe coding" primeiro no chatGPT/deepseek/claude/quewn/etc:

Crie um PRD para o seguinte aplicativo:

Um app para atividade X: precisa ter uma landing page com botao de login. Apos o login devera abrir uma dashboard com menu vertical com as opcoes disponiveis.

O app precisa ter CRUD de users, roles e permission em tabelas separadas

O app precisa ter CRUD de XXX.

Descreva as tabelas e campos necessarios.

2. Com o PRD gerado acima, ai eh so passar no replit/lovavle/v0/etc e ver no que da

Eu gosto de muitas da suas respostas, mas vou discordar de parte desta. Embora pareça uma boa ideia, e eu já fiz muito isso, e não descarto como uma forma de fazer uma parte, tentar descobrir quais relatórios serão necessários para montar a estrutura de dados costuma dar errado, até porque semrpe surgirá nos relatórios, e a estrutura não pode mudar em função disso, ela tem que ser bem feita e relativamente estável para suportar os relatórios. Não quer dizer que não posso colocar novos dados, mas quem deve definir quais serão eles é o coração da aplicação, não a saída. Mais uma vez, eventualmente a saída pode ser usada como ideia básica para entender o que o sistema precisa.

O que primeiro deve ser feito sempre é levantamento de requisitos. EM alguns casos os relatórios, provavelmente já existentes, podem ser parte da equação para achar os requisitos, mas ele deve ser feito de forma muito mais ampla.

Levantar os dados corretamente é fundamental, e isso a maioria sdas pessoas não sabem fazer bem, eu mesmo sonhecendo as técnicas e muita experiência ainda falho nisso. Depois estruturar os dados baseando-se nos requisitos tem grande importância para o resto sair certo, e isso eu já sou bem melhor, ainda que não perfeito, mas vejo que muita gente não faz certo porque aprenderam fazer errado desde o início. O resto do sistema tem alguyma importância, claro, mas bem menor. E os relatõrios é quase algo burocrático.

De fato o usuário não sabe o que ele precisa, e por isso é difícil levantar requisitos, até porque você não é o usuário, e por isso não se sabe bem quais relatórios são úteis.

Vou me abster sobre Vibe Coding, já falei bastante sobre isso, ou eu sou burro demais ou...

Meus 2 cents extendidos: De boa, discordar nao eh um problema. Levantamento de requisitos eh quase trabalho de detetive (dr. house ?) - os usuarios mentem/omitem, as vezes mesmo sem intencao. Como precisamos de um ponto de partida - usar os relatorios/saidas que os usuarios utilizam no seu dia-a-dia pode ser uma opcao. E concordo contigo quando diz que o sistema nao pode ser apenas uma imagem dos relatorios - ate porque a burocracia muda (contabilidade/folha alguem ai ?). Quanto ao "Vibe Coding", longe de gostar dele - conseguir algo que preste no replit/v0/cursor/etc eh um exercicio de masoquismo e paciencia - eh algo que vejo como futuro inevitavel, por isso compartilho o que tenho experimentado. Como ja gastei muita sola de sapato em livrarias/bibliotecas e quetais - vejo a IA apenas como uma extensao disso: tinha gente que simplesmente copiava o codigo dos livros, tinha gente que procurava entende-los: isso nao mudou muito (hummm, talvez a facilidade e velocidade). Enfim, a ver como isso vai funcionar.