3

Acho que o TDD assim como outras práticas surgiram para resolver problemas, porém ao longo dos anos o programador foi limitado a posição de escrever código e a maioria ficou bem com isso.

Acho que um programador resolve um problema, mas nós fomos ensinados a pensar no problema apenas como um codigo e a solução como uma linguagem.

É fácil perceber isso, quando olhamos projetos aqui mesmo do tabnews e Plenos e Sêniors, não se dão ao trabalho nem de criar uma branch no github, fazem tudo na main, quando vemos diversos cursos ensinando linguagens que ninguém usa, mas nenhum ensinando sobre planejamento ou teste.

Acredito que o problema não é o TDD, o problema é o fato que a base dos programadores é baseada tanto em framework e linguagem, que o básico de testes muitos não sabe, que em vez de planejar, já abre o vscode e sai codando o que vem a cabeça.

Essa é apenas minha forma de vê as coisas, a IA chega escrevendo código mais rápido doque qualquer programador é capaz, mas a questão segue sendo: qual ia é melhor e não o que eu preciso estudar para ser um desenvolvedor melhor.

TDD na prática não é usado, pois o tempo para desenvolver o projeto é curto, como falei: o dev não aprende nem a planejar, então os prazos sempre ficam apertados e código vai para teste em produção e depois a gente corrige.

Não vou mentir, assim como cleancode, isso é aquela prática que na teoria é boa, mas no dia a dia com prazos limitados e zero noção de entrega, você deixa de lado, porque o cliente quer saber se funciona, se voce está num projeto com uma equipe bem estruturada e tudo planejado, fica fácil aplicar certas coisas e perceber que não e nada demais, porém na maior parte do tempo, voce está em projetos que ninguém tem noção do tempo gasto para nada e o resultado é o que já sabemos: coloca em prod e quando o cliente reclamar a gente ajeita.

Sempre que possível aprenda a teoria das coisas e aplique em pequenos projetos de final de semana, independente doque for, esse codigo vai para o lixo, mas você aos poucos está aplicando aquela teoria que você leu, mesmo que não precise disse agora, em algum momento pode surgi a oportunidade de você usar e muito desses conhecimentos se conectam com outros, nada vai realmente ser jogado fora, além de algumas linhas de código.

Livros seguem sendo ainda uma excelente fonte de consulta, não precisa ser escravo deles, pegue algum, leia, veja um vídeo, a teoria vai fazer sentido mesmo que em diversos vídeos o programador fale abobrinha as vezes.

Carregando publicação patrocinada...
1

Concordo com o ponto sobre a base fraca em planejamento. O TDD acaba sendo sintoma disso: não é só sobre teste, é sobre pensar antes de sair codando. O que me preocupa com a IA é exatamente o que você apontou: ela escreve código rápido, mas quem define se o comportamento esperado está certo ainda é o dev. Sem testes, você só sabe que o código compila, não que faz o que deveria. Você acredita que isso vai forçar a próxima geração a aprender testes por necessidade, ou vai continuar sendo opcional no mercado?

3

Quando eu olho para trás eu penso que estamos criando novos problemas e novas possibilidades, de forma direta, acho que um programador Jr ele agora tem que ter uma base mais generalista e isso vai chegar nos próximos cargos, acho que a base da linguagem vai diminuir, mas o conjunto necessário de conhecimentos vai aumentar.

Antes você queria entrar rápido no mercado, bastava as vagas tinhas Desenvedor Front: HTML, CSS, Javascript e React.

Um monte de git com o mesmo projeto ou projetos parecidos, acredito que vamos voltar levemente para o que vimos no passado ou o que temos em empresas com 1 ou 2 dev, você é tudo ao mesmo tempo e se precisar ainda puxa fio e fura parede durante o expediente.

Voce não domina muito uma coisa, mas sabe uma média de muitas e vai se virando em 3 para fazer tudo.

Aquela frase do Akita faz muito sentido, um sênior com IA, facilmente vai assumir um projeto inteiro e fazer sozinho.

Mas boa parte do t trabalho é em software em produção, então acho que vamos gastar mais tempo tomando decisões e planejamento, doque fazemos hoje, também acho que as temidas vagas de liderança, vão seguir crescendo mais, pois 1 bom lider com uma equipe menor vai fazer muita coisa.

Estágio, infelizmente esse não sei o que vai ser, pois não vejo essa posição sendo valorizada e sim limitada a cada vez mais assumir tarefas simples e que o impacto no software será quase zero.

Vamos esperar e vê, estou curioso.

1

Essa visão do dev 'fullstack de tudo' voltando faz sentido, e acho que o TDD se encaixa nisso: quando você é o único tomando decisões no projeto, teste bem escrito vira rede de segurança, não burocracia.

O ponto sobre estágio é o que mais me preocupa. Se o impacto dos juniores já era questionado antes, com IA vai piorar. O estágio vai virar uma triagem de quem consegue usar as ferramentas certas rápido, não um período de aprendizado real.

Mas tenho dúvida se 'dominar uma média de muitas coisas' vai ser suficiente. Um sênior com IA consegue cobrir muito chão, mas quando vai fundo num problema específico de infra ou banco, ainda precisa de alguém que entenda de verdade. Ou você acha que a IA vai cobrir isso também?