|
Nos últimos meses construí um projeto pessoal usando Claude como principal ferramenta de desenvolvimento. A ideia parecia simples: Criar um bolão da Copa do Mundo onde os participantes fazem todos os palpites antes do torneio começar, como fazíamos em excel até pouco tempo atrás. O software ficou pronto muito mais rápido do que eu imaginava. Mas o mais interessante foram os aprendizados ao longo do caminho. Alguns deles: Testes são obrigatórios. Em um momento eu decidi que iria ler todos os testes unitários gerados pelo Claude. Foi quando descobri que ele estava colocando parte importante da lógica dentro do banco de dados. Quando questionei, a resposta foi basicamente: “Ah, vou mover para o código então. Fica mais fácil de testar.” Touché. Outro aprendizado: os testes encontraram muito mais problemas do que eu esperava. Peguei:
Outra coisa que aprendi foi o conceito de testes de mutação. Não basta ter testes. A pergunta é: os testes são bons? Ferramentas de mutation testing alteram automaticamente o código para verificar se os testes detectam o problema. Se os testes continuam passando, eles provavelmente não estão cobrindo o comportamento que deveriam. Existem testes que parecem simples e são absurdamente difíceis. Um exemplo foi validar a classificação dos grupos da Copa. Empate em pontos. Saldo de gols. Gols marcados. Confronto direto. Testar todas as combinações possíveis de quatro seleções foi muito mais complicado do que implementar a funcionalidade. Usuários enxergam coisas que você não enxerga. Mostrei a home para um amigo publicitário. Ele bateu o olho e falou: “A fonte está velha.” Achei que fosse opinião. Era um bug. O CSS estava carregando errado. Dar nome para as coisas continua sendo difícil. Até hoje não sei qual é a melhor forma de explicar o produto. É um bolão? Um bolão raiz? Um bolão até a final? E encontrar um bom domínio então... Achei que o problema seria desenvolver. Acabei gastando muito mais tempo tentando explicar o que eu tinha desenvolvido. Traduzir é fácil. Entender o mercado é difícil. Como a barreira de implementação ficou muito menor com IA, uma das primeiras ideias que tive foi lançar o produto em vários idiomas. Traduzir a interface seria trivial. O problema apareceu antes. Se eu já estava tendo dificuldade para explicar o produto no Brasil, como eu descobriria qual é o equivalente desse tipo de bolão em outros países? Como ele é conhecido? As pessoas jogam desse jeito? Existe demanda? Perguntei para uma amiga argentina se esse tipo de bolão era comum por lá. A resposta foi negativa. Meu research internacional terminou ali mesmo. Foi uma boa lembrança de que IA reduziu drasticamente o custo de construir software. Mas não reduziu na mesma proporção o custo de entender clientes e mercados. Nem toda automação vale a pena. Optei por validar os pagamentos via Pix manualmente. Poderia automatizar? Claro. Mas para o volume esperado, a complexidade não compensava. Foi uma boa lembrança de que a melhor solução nem sempre é a mais tecnológica. IA gera landing pages muito rápido. Usei IA para criar praticamente todas as páginas de SEO. Li cada uma delas com atenção? Não. Poderiam ser melhores? Provavelmente. Mas também aprendi que SEO é um jogo de longo prazo. As páginas foram publicadas quase dois meses antes da Copa para dar tempo de indexar. E por último: os problemas mais perigosos são os de especificação. Quatro dias antes do início da Copa um usuário me avisou que os cruzamentos dos 16-avos de final estavam errados. O código estava funcionando exatamente como especificado. O problema era a especificação. Eu tinha interpretado errado uma parte do regulamento da FIFA. O Claude não questionou. Eu não reli o Anexo C. E o erro passou. Resultado: Tive que reimplementar toda a lógica dos cruzamentos e avisar cerca de 30 pessoas que já tinham preenchido os palpites do mata-mata para revisarem tudo novamente. Não foi uma experiência agradável. Talvez essa tenha sido a principal lição do projeto. IA reduz muito o custo da implementação. Mas continua não substituindo entendimento do problema. E, quando você entende o problema errado, ela implementa o erro com uma velocidade impressionante. PS: Se você quiser testar o produto, ele está no ar em www.obolaodacopa.com.br |
Ex-VP Engineering @ Creditas ($4.8B). 20+ years building and scaling tech teams. Today, I help CTOs make better decisions.
Imagina la siguiente situación: eres responsable de algunos equipos de desarrollo. Esos equipos tienen stakeholders. El CEO de la empresa se acerca a uno de ellos y le pregunta por qué una determinada iniciativa está retrasada o por qué no se alcanzó algún resultado. Escenario A: el stakeholder se queja del equipo de tecnología. Dice que el equipo no entrega, que es lento, que no entiende lo que realmente necesita. Escenario B: el stakeholder dice que hubo algunos obstáculos, pero que está...
Imagine a seguinte situação: você é responsável por alguns times de desenvolvimento. Esses times tem stakeholders. O CEO da empresa chega para um dos stakeholders e pergunta por que uma determinada iniciativa está atrasada ou algum resultado não foi entregue. Cenário A: o stakeholder reclama do time de tecnologia. Diz que o pessoal não entrega, que é lento, que não entendem o que ele realmente precisa. Cenário B: o stakeholder diz que houve alguns obstáculos, mas que ele está trabalhando bem...
Camille Fournier escribió un muy buen artículo sobre el uso de IA en equipos. Es la autora de The Manager's Path, uno de los libros que más recomiendo para quienes lideran equipos de tecnología. La idea central del artículo es diferente de la mayoría de las discusiones sobre IA. No trata de seguridad ni de compliance. Trata de respeto hacia tus compañeros de trabajo. La idea es simple: La IA puede aumentar mucho la productividad individual. Pero eso no puede ocurrir a costa de la...