25 de Janeiro de 2025
Como quebrar problemas
Um jeito simples de transformar ticket confuso ou pergunta de entrevista em partes menores e decisões mais seguras.
Andrews Ribeiro
Founder & Engineer
4 min Intermediario Pensamento
O problema
Quando chega um ticket confuso ou uma pergunta agressiva de entrevista, o reflexo comum e correr para o editor.
O problema e que, quando você acelera cedo demais, aumenta muito a chance de resolver a versão errada do problema.
Você gasta energia em sintaxe antes de travar entrada, saída, restrição e critério de sucesso.
Muita gente chama isso de “ser rápido”.
Na prática, quase sempre e só pressa mal direcionada.
Modelo mental
Trate problema cru como algo que precisa ganhar forma antes de virar código.
Antes de escrever um if, você precisa organizar quatro limites:
- o que entra
- o que precisa sair
- o que não pode quebrar
- o que ainda esta ambiguo
Quando esses quatro pontos ficam claros, metade da dificuldade vai embora.
O ponto não e transformar tudo em documento.
O ponto e parar de carregar dúvida escondida para dentro da implementação.
Quebrando o problema
Uma forma prática de reduzir risco e esta:
- Reescreva o problema com suas palavras.
- Separe entradas, saídas e restrições.
- Nomeie a maior dúvida aberta.
- Reduza o escopo para a menor versão que prova o caminho.
O objetivo não e parecer genial. E diminuir ruido até o problema ficar confiavel.
1. Reescrever ajuda a expor mal-entendido cedo
Quando você repete o pedido com suas palavras, duas coisas acontecem:
- você confirma se entendeu mesmo
- a outra pessoa percebe rápido o que ficou vago
Isso evita meia hora de implementação em cima de premissa errada.
2. Entrada, saída e restrição mudam a forma da solução
Sem isso, você só tem um tema, não um problema.
Entrada define o que você recebe.
Saída define o que precisa entregar.
Restrição define o que limita a solução:
- tempo
- custo
- volume
- compatibilidade
- corretude
3. Nomeie a maior dúvida aberta
As vezes o problema não esta difícil.
Ele esta mal especificado.
Exemplos de dúvida que valem ouro:
- o ranking e global ou por tenant?
- a busca precisa ser eventual ou em tempo real?
- esse endpoint precisa ser paginado?
- qual erro e aceitavel e qual não e?
4. Resolva a menor versão honesta
Não e para fazer MVP mal feito.
E para escolher a menor fatia que prova o caminho com segurança.
Essa diferença importa bastante.
Exemplo simples
Imagine este pedido:
“Precisamos de um endpoint que devolva os 10 clientes com maior receita.”
Uma resposta afobada seria sair escrevendo SQL.
Uma resposta melhor pausa e mapeia:
- entrada: existe faixa de data? tenant? filtro escondido?
- saída: só nome ou também valor da receita?
- restrição: precisa responder em menos de quanto?
- falha: o que acontece se empatar? e se não houver cliente?
Agora o problema deixou de ser vago e virou especificacao mais segura.
Outro exemplo bem comum em entrevista:
“Desenhe um sistema de fila para enviar notificacoes.”
Antes de sair falando de Kafka, vale travar coisas como:
- estamos falando de email, push ou SMS?
- precisa garantir ordem por usuário?
- qual volume muda a arquitetura?
- pode haver reenvio?
- qual latência e aceitavel?
Sem isso, a pessoa só esta despejando ferramenta.
Erros comuns
- Começar implementação antes de entender o formato do pedido.
- Ignorar edge case até descobrir tarde demais que ele inválida a solução.
- Resolver cenario futuro que ninguém pediu.
- Assumir requisito ambiguo e torcer para o chute estar certo.
- Confundir “quebrar o problema” com listar subtarefa aleatoria.
Como um senior pensa
Quem tem mais experiência não corre só para parecer rápido.
Primeiro derruba ambiguidade.
O tom costuma ser:
“Antes de abrir o editor, eu quero travar entrada, saída e principal restrição. Só depois vale resolver.”
Essa disciplina aumenta confiança e reduz retrabalho.
O que o entrevistador quer ver
Em entrevista de sistema ou algoritmo, isso mostra maturidade logo no começo.
- Você ouviu e entendeu a forma do problema.
- Você sabe reduzir incerteza antes de codar.
- Você consegue narrar escolha e trade-off sem se perder.
Uma resposta forte costuma soar assim:
“Antes de resolver, eu quero alinhar entrada, saída, restrições e principal incerteza. Sem isso, qualquer implementação corre o risco de estar certa para o problema errado.”
Se você ainda não consegue dizer claramente entrada, saída e restrição, ainda e cedo para implementar.
Resumo rápido
O que vale manter na cabeça
- Quebrar problema bem reduz ambiguidade antes de reduzir código.
- Entrada, saída, restrição e dúvida aberta formam um bom ponto de partida.
- Resolver a menor versão honesta do problema costuma ser mais seguro do que atacar tudo de uma vez.
- Em entrevista e no trabalho, calma com estrutura costuma parecer mais senior do que pressa com sintaxe.
Checklist de pratica
Use isto ao responder
- Consigo reescrever um pedido vago com minhas palavras antes de sair implementando?
- Sei separar entrada, saída, restrição e critério de sucesso?
- Consigo apontar a maior incerteza antes de propor solução?
- Sei reduzir o problema para a menor versão que prova o caminho?
Você concluiu este artigo
Próximo passo
Enquadrar o problema antes de codificar Próximo passo →Compartilhar esta página
Copie o link manualmente no campo abaixo.