Crie uma conta gratuita ou Faça login
Podcast
Tech Leadership Rocks
Episódio 230

Strategic software engineering com Filipe Ximenes

• 1 hora e 2 minutos

Neste episódio, Edu Matos conversa com Filipe Ximenes, co-fundador da Vinta Software, sobre seu novo livro “Strategic Software Engineering”. Filipe compartilha sua visão sobre a importância da auto-gestão, proatividade, como a inteligência artificial está mudando o cenário do desenvolvimento de software, como superar bloqueios durante o desenvolvimento e muito mais.

Reaja nos momentos marcantes
Curti
Boa ideia
Amei
Engraçado
Parabéns
Mind blown

Entregar com qualidade uma vez é fácil. O difícil é entregar com qualidade sempre.

— Filipe Ximenes

Capítulos

00:00 Introdução
00:28 Quem é Filipe Ximenes
04:01 O que é engenharia de software estratégica
10:43 Os engenheiros terão mais responsabilidades
16:02 Como nos desenvolver na era de inteligência artifical
30:32 Como evitar bloqueio durante o desenvolvimento
39:50 Qual o melhor fluxo de desenvolvimento
43:00 Erro mais comum que engenheiros de software cometem
52:20 Como descobrir se estou fazendo overengineering
57:58 Mensagem final

Resumo deste episódio

O que é Engenharia de Software Estratégica

Engenharia de software estratégica é sobre consistência. Não se trata apenas de escrever código de qualidade uma vez, mas de entregar valor com qualidade de forma constante. Vai além da programação e arquitetura: envolve habilidades que sustentam uma entrega previsível, consciente e sustentável.

Essa abordagem estratégica inclui o domínio de habilidades como auto-organização, visibilidade do trabalho, comunicação clara e pensamento crítico. Em um cenário onde IAs escrevem código com cada vez mais facilidade, são essas habilidades humanas e contextuais que fazem a diferença.

Por que engenheiros se desorganizam — e como evitar

A desorganização muitas vezes nasce da falta de autogestão. Não saber o que precisa ser feito, não ter clareza das prioridades, ou não acompanhar a própria evolução são fatores comuns. A solução? Adotar práticas que aumentem a visibilidade do trabalho e criar rituais pessoais de acompanhamento.

Frameworks de produtividade podem ajudar como ponto de partida, mas o mais importante é experimentar e adaptar ao seu contexto. Praticar diferentes métodos é a chave para descobrir o que funciona para você.

O papel da proatividade no trabalho do engenheiro

Hoje, espera-se que engenheiros participem da descoberta dos requisitos junto com times de produto. Não basta mais receber tarefas. É preciso analisar criticamente, negociar prazos e propor alternativas mais simples ou eficientes.

Essa postura proativa passa por aprender a dizer “não” (com justificativa), reportar avanços e bloqueios com clareza, manter boa visibilidade e se comunicar com responsabilidade. Ser um bom engenheiro, nesse contexto, é também ser um bom “parceiro de negócio”.

Como continuar se desenvolvendo na era da IA

Com a IA entregando código quase pronto, o aprendizado muda de foco: entender o “porquê” das coisas é mais importante do que nunca.

Livros e cursos ainda são ferramentas valiosas — especialmente para quem está em níveis mais iniciantes — porque oferecem um caminho estruturado. A IA pode ser usada como reforço, ajudando a interpretar trechos difíceis ou acelerando testes de hipóteses. O segredo está em saber fazer boas perguntas e refletir sobre as respostas. A IA ainda tem dificuldade de capturar contexto — essa parte continua com você.

Como evitar bloqueios no desenvolvimento

Bloqueios são normais, e o erro mais comum é travar e não avisar ninguém. A comunicação é a principal arma para reduzir o impacto dos bloqueios. Informe rapidamente quando algo sair do planejado — mesmo que seja só para alinhar expectativas.

Outro ponto importante é não assumir que a solução de negócio está fechada. Conversar com pessoas de produto pode revelar caminhos muito mais simples para entregar valor com menos esforço técnico.

O fluxo de desenvolvimento mais eficiente

Não existe um fluxo “ideal”, mas algumas boas práticas permanecem fortes:

  • Testes são essenciais para garantir consistência.
  • A IA pode ajudar gerando casos de testes rapidamente, inclusive cobrindo cenários que poderiam ser ignorados.
  • TDD continua sendo útil, mas pode ser ajustado conforme seu ritmo e preferências.
  • Separar código de refatoração do código funcional em pull requests distintos ajuda muito na revisão.

Refatoração: quando fazer e quando parar

Refatorar é importante, mas também pode virar uma armadilha. Um bom caminho é usar limites de tempo: separe 30 minutos, avalie o progresso e só continue se fizer sentido. Isso evita se perder em refatorações infinitas que nunca chegam à produção.

E lembre-se: refatoração também é mudar o nome de uma variável para algo mais claro. Comece pelas pequenas dores do dia a dia. Compartilhar essas melhorias com o time também multiplica o valor da ação.

Como saber se estou fazendo overengineering

A chave é pensar em risco versus custo de mitigação. Se algo tem alta chance de dar errado e corrigir o problema depois é caro, talvez valha a pena investir mais desde o início. Se corrigir for barato, talvez seja melhor adiar a solução complexa até que o problema realmente apareça.

A arquitetura de software é, no fundo, uma forma de gestão de risco. Você vai ajustando a complexidade conforme o risco e os recursos disponíveis.

Considerações finais

Ser um engenheiro melhor envolve mais do que escrever um bom código. Envolve refletir, se comunicar, tomar decisões melhores com base em contexto e trabalhar de forma consistente. O livro Strategic Software Engineering oferece ótimas provocações e ferramentas práticas para quem quer evoluir na carreira com os dois pés no chão.

Para ler todo o resumo Crie uma conta grátis ou Faça login