INTRODUÇÃO
À PROFISSÃO TECH LEAD
Módulo
2 — Habilidades essenciais de um Tech Lead iniciante
Aula 1 — Comunicação técnica clara e sem arrogância
Quando se fala em liderança técnica, muita
gente pensa primeiro em arquitetura, decisões complexas, revisão de código e
conhecimento profundo sobre sistemas. Tudo isso realmente importa. Mas existe
uma habilidade que, na prática, separa profissionais tecnicamente fortes de
líderes técnicos realmente eficazes: a comunicação. E aqui vale dizer algo sem
rodeios: não adianta quase nada ser excelente tecnicamente se ninguém entende o
que você quer dizer, se o time sai das conversas mais confuso do que entrou ou se
sua maneira de se comunicar afasta as pessoas em vez de aproximá-las do
problema.
Isso acontece com muito mais frequência do
que deveria. Em tecnologia, ainda existe uma cultura meio doente que confunde
linguagem complicada com inteligência, frieza com profissionalismo e arrogância
com autoridade. Muita gente cresce acreditando que, para parecer competente,
precisa falar difícil, corrigir com dureza, usar jargão em excesso e tratar
dúvidas simples como se fossem perda de tempo. O problema é que esse tipo de
comportamento destrói exatamente aquilo que um Tech Lead mais precisa construir:
clareza, confiança e alinhamento dentro do time.
A comunicação técnica não é importante
apenas porque o Tech Lead fala com frequência. Ela é importante porque boa
parte do trabalho dessa função depende de organizar pensamento coletivo. Em um
time de tecnologia, os problemas raramente se resolvem só com conhecimento
individual. As pessoas precisam entender riscos, critérios, impactos,
prioridades e decisões. Precisam discutir caminhos diferentes, expor dúvidas,
registrar escolhas e alinhar expectativas. Quando a comunicação falha, o
conhecimento técnico fica preso na cabeça de poucas pessoas. E conhecimento
preso não fortalece time nenhum.
Por isso, comunicar bem em contexto técnico não significa “falar bonito”. Significa explicar com clareza. Significa transformar assuntos que podem ser complexos em algo compreensível para o público certo. Significa saber quando aprofundar, quando simplificar e quando parar de falar para ouvir. Parece básico, mas não é. Muita gente que domina tecnologia não domina o esforço de tornar seu raciocínio acessível aos outros. Às vezes, a pessoa entende muito, mas explica mal. Em outros casos, até explica, mas com um tom que humilha, afasta ou intimida. Em ambos os casos, o resultado é
ruim.
Imagine uma situação bastante comum: a
equipe está discutindo como implementar uma nova funcionalidade. Um
desenvolvedor sugere uma solução rápida. O Tech Lead percebe que essa solução
pode gerar acoplamento excessivo e dificultar a manutenção futura. Ele pode
reagir de duas formas. A primeira seria dizer: “Isso está errado. Essa
abordagem é ruim e vai comprometer a arquitetura.” Pode até haver verdade
técnica aí, mas a comunicação foi pobre. Soa como corte seco, não como
construção de entendimento. A segunda forma seria algo como: “Essa solução
resolve rápido agora, mas provavelmente vai dificultar mudanças futuras e
aumentar dependência entre partes do sistema. Vamos pensar em uma alternativa
que mantenha a entrega viável sem criar esse problema depois.” Perceba a
diferença. A segunda fala não apenas rejeita uma ideia: ela explica a razão,
apresenta consequência e convida ao raciocínio conjunto.
Esse ponto é essencial. O Tech Lead não se
comunica bem quando vence discussões. Ele se comunica bem quando ajuda o time a
compreender melhor o problema. E isso muda completamente a lógica da atuação. O
foco deixa de ser “mostrar que eu sei mais” e passa a ser “garantir que o time
está entendendo o que está em jogo”. Um líder técnico que entra em toda
conversa para provar superioridade pode até impressionar em curto prazo, mas
tende a empobrecer a inteligência coletiva da equipe. As pessoas param de perguntar,
evitam se expor e começam a concordar só para evitar desgaste. Parece paz, mas
é silêncio defensivo. E silêncio defensivo em tecnologia é um risco enorme.
Outro erro comum é esquecer que
comunicação técnica não acontece só com desenvolvedores. Um Tech Lead fala com
gente de perfis muito diferentes: produto, design, QA, liderança, suporte,
cliente interno e, dependendo da empresa, até público externo. Cada um desses
grupos tem um repertório diferente. Falar com uma pessoa de produto como se ela
fosse especialista em arquitetura é burrice prática. E o contrário também vale:
reduzir demais uma conversa com o time técnico pode gerar superficialidade e
ruído. Comunicar bem, portanto, não é repetir a mesma explicação para todo
mundo. É adaptar a linguagem sem distorcer a essência.
Pense em uma área de produto perguntando por que uma entrega vai demorar mais do que o previsto. Um Tech Lead ruim pode responder algo como: “Estamos tendo problemas de escalabilidade por causa do acoplamento entre os serviços e do impacto na camada de persistência.”
Tecnicamente isso pode até estar correto, mas para quem não vive esse
vocabulário, a explicação diz pouco. Uma resposta melhor seria: “Se entregarmos
do jeito mais rápido agora, aumentamos a chance de falhas e retrabalho logo em
seguida. Estamos ajustando uma parte da estrutura para evitar que isso vire
instabilidade quando o uso crescer.” A segunda fala continua honesta, continua
técnica no que importa, mas está conectada ao entendimento de quem ouve.
Isso não significa “traduzir tudo para o
simplório” ou tratar pessoas de outras áreas como incapazes de compreender.
Significa respeitar contexto. Quem se comunica bem não usa complexidade como
barreira de status. Usa o conhecimento para gerar entendimento. É uma diferença
brutal.
Há também um aspecto decisivo na
comunicação técnica que costuma ser negligenciado: ouvir. Muita gente acha que
se comunicar bem é saber falar. Não. Metade do trabalho está em escutar com
atenção. E escutar, nesse caso, não é só esperar a vez de responder. É
realmente tentar entender o raciocínio do outro, o medo por trás de uma
objeção, a insegurança por trás de uma dúvida ou a lógica por trás de uma
proposta que, à primeira vista, parece ruim. Um Tech Lead que não escuta
direito corre o risco de tomar decisões rápidas demais, corrigir coisas erradas
e perder informações valiosas que estavam presentes na fala de outras pessoas.
Em um time saudável, dúvidas precisam
circular. Objeções também. Discordância técnica não é problema; muitas vezes, é
sinal de maturidade. O problema é quando a forma de comunicação faz com que as
pessoas deixem de participar. Se um desenvolvedor júnior percebe que toda
pergunta sua gera ironia, ele para de perguntar. Se um profissional pleno
percebe que toda sugestão diferente da do Tech Lead é descartada sem análise,
ele para de contribuir. Se uma pessoa de produto percebe que toda conversa com
a equipe técnica vira um muro de termos incompreensíveis, ela começa a tomar
decisões sem envolver tecnologia cedo o suficiente. Tudo isso piora a qualidade
do trabalho. E note: o problema, nesse caso, não começou na arquitetura, na
linguagem de programação ou na ferramenta. Começou na comunicação.
Outro ponto importante é que comunicar com clareza não significa falar demais. Esse é um erro clássico de gente técnica que tenta compensar insegurança com excesso de explicação. Às vezes, a pessoa despeja tantos detalhes, tantos cenários, tantas justificativas e tantos termos que a mensagem principal se perde.
Comunicação boa não é avalanche verbal. É
precisão com contexto. É saber dizer o que importa, com a profundidade
adequada, no momento certo. Um Tech Lead didático não é o que transforma toda
conversa em aula longa. É o que consegue tornar o essencial compreensível sem
virar prolixo e sem usar a fala como espetáculo de conhecimento.
A revisão de código é um ótimo exemplo de
como comunicação técnica pode construir ou destruir um ambiente. Um comentário
como “isso está ruim” ou “refaz” não ensina nada. No máximo, sinaliza
reprovação. Agora compare com algo como: “A implementação resolve o fluxo, mas
esse trecho repete lógica que já existe em outro ponto do sistema. Se
extrairmos isso para um método reutilizável, reduzimos risco de manutenção
duplicada.” A segunda forma não só corrige; ela orienta. Ela mostra o problema,
apresenta consequência e aponta caminho. Esse tipo de comunicação desenvolve
gente. A outra só gera insegurança.
Além disso, o modo como um Tech Lead
comunica críticas define muito do clima técnico do time. Crítica não precisa
ser agressiva para ser firme. E firmeza não exige arrogância. Há uma diferença
enorme entre dizer “isso não está bom” e dizer “há um risco real aqui, e
precisamos ajustar antes de seguir”. A segunda formulação mantém
responsabilidade sem atacar a pessoa. Isso é importante porque times de
tecnologia erram, testam, revisam, ajustam e aprendem o tempo todo. Se cada
erro vira exposição ou desdém, o time passa a jogar na defensiva. E time
defensivo não inova, não pergunta, não experimenta e não cresce.
Também é importante registrar decisões.
Comunicação técnica não vive só de conversa oral. Muitos problemas em equipes
surgem porque uma decisão foi discutida, parecia clara no momento, mas depois
ninguém lembra exatamente por que ela foi tomada. O Tech Lead precisa ajudar a
transformar parte dessas conversas em registros úteis: critérios, alternativas
avaliadas, riscos aceitos, motivos da escolha. Isso evita repetição de debate,
reduz ruído e ajuda pessoas novas a entenderem o contexto do sistema. Registrar
decisão não é burocracia vazia. É cuidado com memória coletiva.
No fundo, boa comunicação técnica exige humildade. E aqui está uma verdade que muita gente evita admitir: a arrogância geralmente não nasce da força, mas da insegurança mal administrada. O profissional arrogante muitas vezes precisa parecer superior o tempo inteiro porque não sabe lidar com o fato de que também não domina tudo. Já o Tech Lead maduro consegue
fundo, boa comunicação técnica exige
humildade. E aqui está uma verdade que muita gente evita admitir: a arrogância
geralmente não nasce da força, mas da insegurança mal administrada. O
profissional arrogante muitas vezes precisa parecer superior o tempo inteiro
porque não sabe lidar com o fato de que também não domina tudo. Já o Tech Lead
maduro consegue dizer “não sei ainda”, “vamos analisar melhor”, “boa
observação”, “essa parte faz sentido” ou “acho que sua preocupação procede”.
Isso não enfraquece sua liderança. Pelo contrário. Fortalece. Porque mostra
critério, abertura e segurança real, não pose.
Para quem está começando a entender a profissão, uma lição precisa ficar clara: liderança técnica não é só sobre decidir bem. É sobre conseguir fazer com que as boas decisões sejam compreendidas, compartilhadas e sustentadas pelo time. Sem isso, o conhecimento vira ilhamento. E ilhamento técnico sempre cobra preço alto.
Em resumo, comunicação técnica clara e sem
arrogância é uma habilidade central para qualquer Tech Lead porque permite
transformar conhecimento em direção coletiva. Um líder técnico precisa explicar
bem, ouvir com atenção, adaptar linguagem ao contexto, registrar decisões
relevantes e corrigir sem humilhar. Isso não é detalhe comportamental
secundário. Isso é parte da competência profissional. Em ambientes complexos, a
qualidade da comunicação afeta diretamente a qualidade das decisões, das
entregas e das relações de trabalho.
No fim das contas, um Tech Lead não se destaca apenas pelo que sabe. Ele se destaca pelo que consegue tornar compreensível, praticável e útil para o time. Saber muito e comunicar mal é um desperdício. Saber bem e ajudar os outros a entenderem melhor é o que realmente gera liderança técnica.
Referências bibliográficas
BALM, Todd; HELLER, Jamie. Liderança
técnica: conduzindo equipes de tecnologia com equilíbrio entre pessoas,
processo e arquitetura. São Paulo: Novatec, 2021.
CHIAVENATO, Idalberto. Gestão de
pessoas: o novo papel dos recursos humanos nas organizações. 4. ed.
Barueri: Manole, 2014.
CIALDINI, Robert B. As armas da
persuasão: como influenciar e não se deixar influenciar. Rio de Janeiro:
Sextante, 2012.
MARTIN, Robert C. Código limpo:
habilidades práticas do Agile Software. Rio de Janeiro: Alta Books, 2009.
MARTIN, Robert C. Arquitetura limpa: o
guia do artesão para estrutura e design de software. Rio de Janeiro: Alta
Books, 2019.
ROSENBERG, Marshall B. Comunicação não violenta: técnicas para
aprimorar relacionamentos pessoais e profissionais.
São Paulo: Ágora, 2006.
SUTHERLAND, Jeff. Scrum: a arte de
fazer o dobro do trabalho na metade do tempo. São Paulo: LeYa, 2016.
VIEIRA, Renato. Comunicação
empresarial: etiqueta e ética nos negócios. São Paulo: Senac, 2015.
Aula 2 — Tomada de decisão: equilíbrio
entre perfeição e realidade
Uma das imagens mais distorcidas sobre
liderança técnica é a ideia de que um bom Tech Lead é aquele que sempre escolhe
a melhor solução possível do ponto de vista técnico. Parece bonito, mas no
mundo real isso quase nunca funciona desse jeito. Em equipes de tecnologia,
decisões não acontecem em laboratório, em um cenário limpo, sem pressão, sem
limite de prazo, sem restrição de equipe e sem impacto de negócio. Elas
acontecem no meio de demandas urgentes, sistemas legados, prioridades mudando,
orçamento limitado, pessoas com diferentes níveis de experiência e expectativas
externas que nem sempre respeitam o tempo ideal de construção. É justamente por
isso que a tomada de decisão é uma das habilidades mais importantes para um
Tech Lead.
Tomar boas decisões não significa
perseguir perfeição técnica a qualquer custo. Significa entender o contexto e
escolher o caminho mais responsável dentro da realidade disponível. Isso parece
óbvio quando escrito assim, mas muita gente erra exatamente aqui. Há
profissionais que se apaixonam tanto pela solução tecnicamente mais elegante
que perdem a capacidade de enxergar o que o contexto permite. Também existe o
extremo oposto: profissionais que, sob pressão, aceitam qualquer atalho sem
medir consequência nenhuma. Um Tech Lead maduro precisa fugir dos dois lados.
Nem perfeccionismo paralisante, nem improviso irresponsável.
O primeiro ponto que um iniciante precisa
entender é que toda decisão técnica envolve troca. Sempre se renuncia a alguma
coisa para ganhar outra. Uma escolha pode trazer mais velocidade, mas aumentar
risco futuro. Outra pode ser mais organizada e sustentável, mas exigir mais
tempo e mais preparo da equipe. Às vezes, uma solução é excelente do ponto de
vista arquitetural, mas completamente incompatível com o prazo de entrega. Em
outros casos, uma alternativa mais simples resolve bem o problema atual, mas
precisa ser monitorada porque pode não sustentar crescimento depois. O trabalho
do Tech Lead não é fingir que existe uma resposta perfeita para tudo. É tornar
essas trocas visíveis e decidir com consciência.
Pense em uma reforma dentro de uma casa em que as
pessoas continuam morando. Em teoria, talvez fosse melhor derrubar tudo
e reconstruir da forma mais organizada possível. Mas isso nem sempre é viável.
Há custo, tempo, rotina e limitações concretas. Então a decisão mais
inteligente não é necessariamente a mais bonita no papel, e sim a que resolve o
problema sem inviabilizar a vida de quem depende daquele espaço. Em tecnologia
acontece algo parecido. O sistema continua rodando, o negócio continua exigindo
entregas e os usuários continuam usando o produto enquanto as mudanças
acontecem. Decidir bem, nesse cenário, exige senso de realidade.
É comum que profissionais mais técnicos
caiam na tentação de tratar toda decisão como se fosse uma disputa entre
“certo” e “errado”. Só que, em muitos casos, o problema não está nesses termos.
O que existe são alternativas com custos, riscos e impactos diferentes. Um Tech
Lead precisa aprender a perguntar menos “qual é a solução ideal?” e mais “qual
solução resolve esse problema de forma responsável neste contexto?”. Essa
mudança de pergunta melhora muito a qualidade da decisão, porque tira o foco do
ego técnico e leva a análise para o terreno do impacto real.
Imagine um time que precisa lançar uma
nova funcionalidade em três semanas. Durante a análise, percebe-se que uma
parte antiga do sistema está mal estruturada e mereceria refatoração. Do ponto
de vista técnico, refatorar antes de seguir pode parecer a melhor escolha. Mas
a pergunta correta não é apenas se a refatoração seria boa. A pergunta é: ela é
necessária agora? O prazo permite? O risco de não fazer é alto ou
administrável? A equipe tem domínio suficiente para executar essa mudança com
segurança? Existe uma alternativa intermediária que reduza o risco sem
comprometer a entrega? É aqui que o Tech Lead mostra maturidade. Ele não decide
por impulso nem por purismo. Ele decide olhando a relação entre urgência,
sustentabilidade e capacidade real de execução.
Um erro muito comum de quem está começando em liderança técnica é acreditar que ceder ao contexto é sempre “aceitar algo ruim”. Não é. Há uma diferença enorme entre pragmatismo e negligência. Pragmatismo é reconhecer as restrições e buscar o melhor caminho possível dentro delas. Negligência é ignorar risco, qualidade e consequência só para apagar o incêndio da vez. O Tech Lead precisa saber onde está essa linha. Se ele se torna rígido demais, passa a travar a equipe e a transformar tecnologia em obstáculo. Se se torna permissivo demais, ajuda a construir um
ambiente de
dívida técnica acumulada, retrabalho constante e perda de confiança.
Outro ponto importante é que decisão
técnica não pode ser pensada só pelo prisma da ferramenta ou da arquitetura.
Ela precisa considerar o time. Essa é uma dimensão que muitos profissionais
tecnicamente fortes subestimam. Não adianta escolher uma solução sofisticada se
a equipe ainda não tem maturidade para entendê-la, implementá-la bem e
sustentá-la depois. A melhor decisão não é a que impressiona. É a que pode ser
executada com qualidade e mantida com segurança. Um Tech Lead que ignora a
maturidade do time corre o risco de tomar decisões tecnicamente brilhantes e
operacionalmente desastrosas.
Também é preciso considerar o negócio, e
aqui muita gente da área técnica torce o nariz sem motivo. Não faz sentido
tomar decisões como se o sistema existisse por si só. Software serve a um
produto, a um processo, a um cliente, a uma operação. Isso significa que
impacto de negócio importa, sim. Uma decisão tecnicamente refinada, mas que
atrasa uma validação crítica do produto por meses, pode ser ruim para a
empresa. Por outro lado, uma decisão extremamente rápida que compromete
estabilidade em uma funcionalidade central também pode sair cara. O Tech Lead
precisa conseguir enxergar essa tensão sem cair no discurso preguiçoso de que
“o negócio só quer pressa” ou de que “a tecnologia só complica”. A função dele
é justamente ajudar a traduzir essa tensão em escolhas mais equilibradas.
Em muitos momentos, decidir bem também
significa aceitar imperfeições temporárias, desde que elas sejam conscientes.
Essa parte é importante. Há situações em que a melhor escolha é lançar uma
solução menos elegante, com escopo controlado, risco monitorado e plano de
ajuste posterior. Isso é diferente de empurrar problema para frente de forma
irresponsável. A diferença está no nível de consciência. Se a equipe sabe qual
dívida está assumindo, porque está assumindo, qual impacto pode ter e quando
pretende revisitar o ponto, a decisão pode ser defensável. O que destrói times
e sistemas não é a existência de imperfeições. É a acumulação de imperfeições
não reconhecidas, não registradas e não tratadas.
Por isso, um Tech Lead precisa desenvolver o hábito de explicitar critérios. Quando uma decisão é tomada, vale perguntar: qual problema queremos resolver? Quais alternativas foram consideradas? Por que esta foi escolhida? Que risco estamos aceitando? O que precisa ser monitorado depois? Isso melhora não só a
qualidade da decisão atual, mas também o
aprendizado do time. Quando os critérios ficam claros, as pessoas começam a
entender o raciocínio por trás das escolhas e amadurecem junto. Sem isso, o
time só enxerga ordens soltas, e a liderança técnica vira opacidade.
Outro erro clássico é o medo de decidir.
Às vezes, a pessoa sabe que não existe solução perfeita e, justamente por isso,
entra em paralisia. Fica esperando mais informação, mais validação, mais
consenso, mais tempo. Só que, em tecnologia, não decidir também é uma decisão —
e frequentemente uma decisão ruim. Projetos andam, prazos correm e problemas se
acumulam. O papel do Tech Lead não é garantir certeza antes de agir. Isso é
impossível em muitos contextos. O papel dele é reduzir incerteza o suficiente para
escolher com responsabilidade. Isso exige coragem, mas não coragem teatral;
exige coragem racional, baseada em análise, diálogo e consequência.
Vale lembrar também que uma decisão boa
hoje pode deixar de ser boa depois. E tudo bem. Contexto muda. Produto cresce.
Equipe amadurece. Volume de uso aumenta. O que seria excesso de estrutura em
uma fase inicial pode se tornar necessário mais adiante. O que antes era uma
solução suficiente pode virar gargalo meses depois. Um Tech Lead maduro não
trata decisões passadas como dogmas intocáveis. Ele entende que parte da
qualidade da liderança técnica está em revisar escolhas quando o contexto
mudou. Apego cego ao que já foi decidido não é consistência; muitas vezes, é só
teimosia com aparência de firmeza.
Há também uma dimensão emocional nessa
aula que não deveria ser ignorada. Decidir sob pressão desgasta. Em várias
situações, o Tech Lead vai precisar fazer escolhas sabendo que nenhuma opção é
totalmente confortável. Isso pode gerar insegurança, medo de errar e tentação
de se apoiar em discursos absolutos para parecer mais firme do que realmente se
sente. Mas maturidade não está em fingir convicção total. Está em reconhecer
limites, ouvir o time, pesar critérios e sustentar a decisão com honestidade.
Às vezes, a melhor fala de um líder técnico é algo como: “Não é a solução
perfeita, mas, dadas as restrições de prazo e o risco controlado, é a escolha
mais sensata agora. Vamos registrar isso e acompanhar de perto.” Isso é muito
mais profissional do que vender certeza falsa.
Na prática, a tomada de decisão em liderança técnica exige algumas perguntas que deveriam virar hábito. Este problema precisa mesmo ser resolvido agora? Estamos tentando corrigir algo
liderança técnica exige algumas perguntas que deveriam virar hábito. Este
problema precisa mesmo ser resolvido agora? Estamos tentando corrigir algo
essencial ou apenas perseguindo uma melhoria desejável fora de hora? A solução
escolhida é compatível com o prazo? O time consegue manter isso depois? O risco
futuro é pequeno, médio ou alto? Existe um caminho intermediário? O ganho
justifica a complexidade? Perguntas assim obrigam a sair da impulsividade e
reduzem tanto o perfeccionismo quanto o improviso.
No fim das contas, um Tech Lead não é
alguém que sempre escolhe a opção mais sofisticada. É alguém que sabe
equilibrar qualidade técnica, contexto de negócio, capacidade do time e
responsabilidade futura. Isso exige visão, critério e uma boa dose de humildade.
Porque decidir bem, na maioria das vezes, não é escolher o cenário ideal. É
escolher o caminho mais lúcido dentro do cenário real.
Essa é a grande lição da aula: perfeição técnica isolada não sustenta produto, não sustenta time e não sustenta empresa. Mas decisões apressadas e mal pensadas também não. O valor do Tech Lead está justamente em construir essa ponte entre excelência e viabilidade, entre ambição técnica e realidade operacional. Quando ele aprende a fazer isso, deixa de ser apenas alguém que entende tecnologia e passa a ser alguém que ajuda a tecnologia a funcionar melhor no mundo real.
Referências bibliográficas
BALM, Todd; HELLER, Jamie. Liderança
técnica: conduzindo equipes de tecnologia com equilíbrio entre pessoas,
processo e arquitetura. São Paulo: Novatec, 2021.
CAMPO, Vicente Falconi. Gerenciamento
da rotina do trabalho do dia a dia. 9. ed. Nova Lima: Falconi Editora,
2013.
KIM, Gene; HUMBLE, Jez; DEBOIS, Patrick;
WILLIS, John. O manual de DevOps: como obter agilidade, confiabilidade e
segurança em organizações tecnológicas. Rio de Janeiro: Alta Books, 2021.
LARMAN, Craig. Utilizando UML e
padrões: uma introdução à análise e ao projeto orientados a objetos e ao
desenvolvimento iterativo. 3. ed. Porto Alegre: Bookman, 2007.
MARTIN, Robert C. Código limpo:
habilidades práticas do Agile Software. Rio de Janeiro: Alta Books, 2009.
MARTIN, Robert C. Arquitetura limpa: o
guia do artesão para estrutura e design de software. Rio de Janeiro: Alta
Books, 2019.
SUTHERLAND, Jeff. Scrum: a arte de
fazer o dobro do trabalho na metade do tempo. São Paulo: LeYa, 2016.
TAKEUCHI, Hirotaka; NONAKA, Ikujiro. Gestão
do conhecimento. Porto Alegre: Bookman, 2008.
Aula 3 — Apoio ao time,
revisão de código
e desenvolvimento técnico de pessoas
Quando alguém começa a observar a atuação
de um Tech Lead, é comum imaginar que sua principal contribuição está nas
grandes decisões técnicas, nas arquiteturas mais complexas ou na solução de
problemas difíceis que travam o time. Isso realmente faz parte da função, mas
está longe de resumir o que torna essa atuação valiosa. Um Tech Lead não
fortalece uma equipe apenas pelo que sabe fazer sozinho. Ele fortalece a
equipe, principalmente, pela capacidade de ajudar outras pessoas a crescerem
tecnicamente, trabalharem com mais segurança e desenvolverem mais autonomia no
dia a dia.
Esse ponto é essencial porque existe um
erro muito comum em tecnologia: confundir ajuda com centralização. Às vezes, um
profissional experiente acredita que está sendo útil porque resolve tudo
rápido. Sempre que alguém trava, ele assume a tarefa. Sempre que há uma dúvida,
ele responde imediatamente sem explicar o raciocínio. Sempre que encontra um
problema em revisão de código, ele mesmo corrige. No curto prazo, isso pode até
parecer eficiência. O time anda, os problemas somem rápido e a sensação é de que
existe alguém “segurando tudo”. Só que esse modelo cobra um preço alto. As
pessoas deixam de aprender, passam a depender da mesma referência para tudo e o
conhecimento não circula de verdade. Em vez de construir um time mais forte,
constrói-se um time mais frágil.
Por isso, um dos papéis mais importantes
do Tech Lead é apoiar sem sufocar. E isso exige maturidade. Apoiar não
significa abandonar o time à própria sorte em nome de uma falsa autonomia.
Também não significa tomar tudo para si para garantir qualidade. O equilíbrio
está em orientar, acompanhar, desenvolver critério e criar condições para que
as pessoas avancem com mais independência ao longo do tempo. Em outras
palavras, o Tech Lead não existe para ser o centro permanente de todas as
soluções. Ele existe para reduzir a necessidade de centralização no futuro.
Essa lógica aparece com muita força na revisão de código. Muita gente enxerga a revisão apenas como um filtro de erros, uma etapa em que alguém mais experiente verifica se a implementação “passa” ou “não passa”. Essa visão é pobre. Revisão de código não deveria servir apenas para barrar problemas. Ela é também um espaço de aprendizado, alinhamento técnico e amadurecimento coletivo. Quando bem conduzida, ajuda a equipe a entender padrões, refinar raciocínio, perceber riscos e construir uma linguagem comum sobre
lógica aparece com muita força na
revisão de código. Muita gente enxerga a revisão apenas como um filtro de
erros, uma etapa em que alguém mais experiente verifica se a implementação
“passa” ou “não passa”. Essa visão é pobre. Revisão de código não deveria
servir apenas para barrar problemas. Ela é também um espaço de aprendizado,
alinhamento técnico e amadurecimento coletivo. Quando bem conduzida, ajuda a
equipe a entender padrões, refinar raciocínio, perceber riscos e construir uma
linguagem comum sobre qualidade.
O problema é que muita revisão de código é
feita de forma preguiçosa ou destrutiva. Comentários como “isso está ruim”,
“refaz”, “não gostei”, “não faz assim” ou “esse código está feio” não ensinam
nada. No máximo, deixam a pessoa insegura. Esse tipo de abordagem pode até
apontar que algo precisa mudar, mas não contribui para o crescimento técnico de
quem escreveu. O resultado é um time que passa a associar revisão com
exposição, constrangimento ou mera burocracia, em vez de enxergá-la como
ferramenta de melhoria.
Uma revisão realmente útil é diferente.
Ela explica o problema, mostra consequência e, quando possível, sugere direção.
Em vez de dizer apenas que determinado trecho “não está bom”, o Tech Lead pode
comentar, por exemplo, que aquela implementação repete lógica já existente,
aumenta custo de manutenção ou cria acoplamento desnecessário. A diferença
parece pequena, mas não é. Quando o comentário vem acompanhado de raciocínio, a
pessoa não recebe apenas uma correção. Ela recebe um critério. E critério é o que
permite evolução real.
Esse cuidado com a forma de revisar também
tem impacto direto no clima do time. Equipes em que a revisão de código vira
espaço de arrogância tendem a se tornar defensivas. As pessoas começam a
codificar com medo, evitam expor ideias, tentam apenas “sobreviver” ao processo
e, com o tempo, param de usar a revisão como oportunidade de troca. Já em
equipes onde a revisão é feita com clareza, respeito e firmeza técnica, o
efeito costuma ser o oposto: o time aprende mais, compartilha melhor
conhecimento e desenvolve uma noção mais consistente de qualidade.
Vale deixar algo claro: revisar com respeito não significa aliviar problema técnico para evitar desconforto. Isso seria outro erro. O Tech Lead não deve transformar revisão em elogio vazio nem aprovar código ruim para parecer simpático. O ponto não é suavizar a análise; é tornar a análise útil. Uma liderança técnica madura consegue ser exigente sem ser
agressiva. Consegue apontar risco sem humilhar. Consegue cobrar melhoria
sem transformar cada comentário em demonstração de superioridade.
Além da revisão de código, o apoio ao time
aparece em muitas outras situações do cotidiano. Às vezes, alguém trava em uma
tarefa e precisa de ajuda para destravar o raciocínio. Nessa hora, o Tech Lead
pode simplesmente entregar a resposta pronta ou pode conduzir a pessoa por
perguntas que ajudem a estruturar o pensamento. A segunda opção costuma ser
mais trabalhosa no começo, mas muito mais valiosa no médio prazo. Quando alguém
aprende a pensar melhor sobre um problema, passa a depender menos de salvamento
externo. E esse é um dos sinais mais claros de um bom trabalho de liderança
técnica: o time evolui em capacidade, não apenas em volume de entrega.
Desenvolver pessoas tecnicamente também
significa perceber padrões. Um Tech Lead atento não olha apenas para erros
isolados. Ele observa repetições. Se três pessoas estão cometendo o mesmo tipo
de falha, talvez o problema não esteja só nelas. Talvez falte documentação,
alinhamento, critério compartilhado ou até uma conversa mais didática sobre
aquele tema. Essa é uma mudança importante de postura. Em vez de tratar todo
erro como falha individual, o Tech Lead começa a perguntar o que o time, como
sistema, ainda não consolidou bem. Isso torna a atuação muito mais inteligente.
Imagine, por exemplo, que diferentes
membros da equipe estão implementando integrações com APIs externas de forma
inconsistente. Um, valida dados na entrada, outro não. Um trata erro com
clareza, outro devolve mensagens genéricas. Um isola responsabilidades, outro
mistura tudo na mesma função. O Tech Lead poderia ficar corrigindo cada caso em
silêncio, um por um, toda semana. Mas isso seria enxugar gelo. Uma atuação mais
madura seria reunir os padrões mais recorrentes, construir uma referência
simples de implementação, alinhar um checklist mínimo e explicar o porquê
dessas escolhas. Isso economiza energia, melhora a qualidade do trabalho e
aumenta a autonomia do time.
Outro ponto importante é que desenvolver tecnicamente pessoas não significa dar aula o tempo inteiro. Há Tech Leads que caem no erro oposto: transformam qualquer dúvida em uma longa exposição teórica, como se toda interação precisasse virar uma palestra improvisada. Isso cansa, confunde e nem sempre ajuda. Ser didático não é despejar conhecimento. É oferecer o nível certo de explicação para a necessidade do momento. Às vezes, uma
pergunta curta resolve. Às vezes, uma analogia simples ajuda mais do que uma
explicação sofisticada. Às vezes, o melhor apoio é mostrar onde procurar
informação e como pensar, em vez de responder tudo diretamente.
Também é importante entender que
desenvolver autonomia não significa deixar o time completamente solto. Há
momentos em que o Tech Lead precisa intervir mais de perto, especialmente
quando o risco é alto, quando alguém ainda está muito no início de aprendizado
ou quando uma decisão técnica pode gerar impacto maior no sistema. O erro está
em transformar exceção em padrão. Se todo desafio precisa sempre da mesma
pessoa para ser resolvido, alguma coisa está errada no processo de
desenvolvimento do time. A liderança técnica deveria diminuir dependências
progressivamente, não as perpetuar.
Existe ainda uma dimensão humana
fundamental nessa aula: pessoas aprendem melhor em ambientes onde podem errar,
ajustar e receber orientação sem medo de humilhação. Isso não significa
permissividade nem ausência de cobrança. Significa reconhecer que crescimento
técnico exige tentativa, revisão, refinamento e prática. Quando o Tech Lead
cria um ambiente em que o erro é tratado apenas como incompetência, ele
empobrece a aprendizagem coletiva. Quando trata o erro como parte do processo,
mas com responsabilidade e critério, ele fortalece a equipe.
No fundo, apoiar tecnicamente um time é
acreditar que desenvolvimento profissional não acontece só por exposição ao
trabalho. A experiência, sozinha, não ensina tudo. Repetir tarefa sem reflexão
pode gerar vício, não evolução. O que acelera o crescimento é a combinação
entre prática, feedback, contexto e orientação. É exatamente aí que o Tech Lead
pode gerar um valor enorme. Ele ajuda as pessoas a enxergarem melhor o que
estão fazendo, por que estão fazendo daquele jeito e como poderiam fazer com
mais qualidade.
Essa atuação também melhora a
escalabilidade do time. Uma equipe que depende demais de uma ou duas pessoas
experientes tende a travar quando cresce. Já uma equipe em que o conhecimento
circula, os critérios são compartilhados e a revisão é usada como espaço de
alinhamento consegue absorver mais complexidade com menos caos. Ou seja,
desenvolver pessoas não é só algo “bonito” do ponto de vista humano. É uma
necessidade prática para a sustentabilidade técnica da equipe.
Outro aspecto importante é que o Tech Lead precisa saber reconhecer momentos de evolução. Nem todo feedback precisa ser corretivo. Apontar progresso,
destacar boas decisões e mostrar o que foi
bem-feito também ajuda a consolidar aprendizado. Só que isso precisa ser
honesto. Elogio vazio não desenvolve ninguém. O que ajuda é um reconhecimento
específico: mostrar exatamente qual escolha foi boa, porque ela foi boa e como
esse raciocínio pode ser repetido em outros contextos. Isso fortalece confiança
sem cair em bajulação.
Em resumo, o apoio ao time, a revisão de
código e o desenvolvimento técnico de pessoas são partes centrais da atuação de
um Tech Lead porque transformam conhecimento individual em capacidade coletiva.
Um líder técnico maduro não mede sua importância pelo número de problemas que
resolve sozinho, mas pela quantidade de autonomia, clareza e qualidade que
ajuda o time a construir. Ele revisa para orientar, não para humilhar. Apoia
para desenvolver, não para prender as pessoas à própria dependência. Observa padrões,
compartilha critérios e ajuda o grupo a crescer com mais consistência.
No fim das contas, um Tech Lead realmente útil não é o que faz o time parecer fraco ao lado dele. É o que faz o time ficar mais forte com o tempo. E esse talvez seja um dos sinais mais claros de liderança técnica bem exercida: quando a equipe passa a tomar decisões melhores, escrever código com mais consciência e depender menos de salvamento constante, porque aprendeu a pensar com mais profundidade e responsabilidade.
Referências bibliográficas
BALM, Todd; HELLER, Jamie. Liderança
técnica: conduzindo equipes de tecnologia com equilíbrio entre pessoas,
processo e arquitetura. São Paulo: Novatec, 2021.
CHIAVENATO, Idalberto. Gestão de
pessoas: o novo papel dos recursos humanos nas organizações. 4. ed.
Barueri: Manole, 2014.
KIM, Gene; HUMBLE, Jez; DEBOIS, Patrick;
WILLIS, John. O manual de DevOps: como obter agilidade, confiabilidade e
segurança em organizações tecnológicas. Rio de Janeiro: Alta Books, 2021.
LARMAN, Craig. Utilizando UML e
padrões: uma introdução à análise e ao projeto orientados a objetos e ao
desenvolvimento iterativo. 3. ed. Porto Alegre: Bookman, 2007.
MARTIN, Robert C. Código limpo:
habilidades práticas do Agile Software. Rio de Janeiro: Alta Books, 2009.
MARTIN, Robert C. Arquitetura limpa: o
guia do artesão para estrutura e design de software. Rio de Janeiro: Alta
Books, 2019.
ROSENBERG, Marshall B. Comunicação não
violenta: técnicas para aprimorar relacionamentos pessoais e profissionais.
São Paulo: Ágora, 2006.
SUTHERLAND, Jeff. Scrum: a arte de fazer o dobro do trabalho na
metade do tempo. São Paulo: LeYa, 2016.
Estudo de Caso do Módulo 2 — O Tech Lead
que sabia muito, mas estava falhando no essencial
A
Orbitra Sistemas era uma empresa de tecnologia em crescimento, com um
produto de gestão usado por pequenas e médias empresas. O sistema vinha
ganhando novos clientes, o time de desenvolvimento havia aumentado e a empresa
estava em um momento típico de expansão: mais demanda, mais pressão por entrega
e mais dependência da área técnica para sustentar o crescimento.
Dentro
desse cenário, Lucas era visto como uma das pessoas mais brilhantes da equipe.
Tinha domínio técnico forte, resolvia bugs difíceis com rapidez, conhecia bem a
estrutura do sistema e costumava ser o primeiro nome lembrado quando aparecia
algum problema complexo. Quando a empresa decidiu criar uma referência técnica
mais clara para o time, parecia natural promovê-lo para a função de Tech Lead.
No
papel, a escolha parecia certa. Na prática, o começo foi turbulento.
Lucas
entrou no novo papel achando que liderança técnica significava, acima de tudo,
manter um padrão técnico elevado a qualquer custo. Isso, por si só, não era um
problema. O problema foi a forma como ele tentou fazer isso. Nas primeiras
semanas, passou a revisar todos os códigos com severidade excessiva, corrigia
publicamente detalhes pequenos como se fossem falhas graves e usava explicações
longas, cheias de termos técnicos, que deixavam parte do time mais confusa do
que esclarecida. Quando alguém sugeria uma alternativa, ele respondia rápido
demais, quase sempre encerrando a conversa com frases como: “isso não escala”,
“essa abordagem é fraca” ou “isso não é arquitetura de verdade”.
Ele
acreditava estar protegendo a qualidade do sistema. Na prática, estava criando
um ambiente de medo.
O
primeiro erro ficou claro ali: confundir comunicação técnica com
demonstração de superioridade. Lucas sabia muito, mas se comunicava como
quem precisava provar o tempo todo que sabia mais do que os outros. Em vez de
tornar o raciocínio claro, ele tornava a conversa pesada. Em vez de orientar,
intimidava. Os desenvolvedores mais iniciantes começaram a evitar fazer
perguntas. Os profissionais plenos passaram a levar dúvidas para conversas
paralelas, com receio de serem expostos em reuniões. Aos poucos, o time foi
ficando mais silencioso.
E
silêncio em time técnico quase nunca é sinal de maturidade. Normalmente é sinal
de retração.
Com o tempo, surgiu o segundo erro: tratar toda decisão como uma busca
pela
solução ideal. Em uma sprint importante, o time precisava entregar uma
melhoria relevante no módulo financeiro do sistema. Havia um prazo apertado
porque um cliente estratégico dependia daquela entrega para renovar contrato.
Durante a análise, Lucas identificou uma oportunidade real de refatorar uma
parte antiga do sistema que, de fato, estava mal organizada. O problema é que
essa refatoração aumentaria bastante o tempo de desenvolvimento.
O
time sugeriu uma alternativa intermediária: fazer uma melhoria pontual, com
menos elegância técnica, mas com risco controlado e possibilidade de ajuste
futuro. Lucas rejeitou a ideia quase imediatamente. Para ele, se havia uma
forma melhor de fazer, essa deveria ser a escolhida. O prazo virou problema
secundário.
Resultado:
a entrega atrasou, o cliente ficou insatisfeito, a área de produto perdeu
confiança nas estimativas técnicas e o próprio time ficou frustrado. A solução
final ficou mais bonita no papel, mas a decisão foi ruim no contexto real.
Aqui
apareceu um erro clássico de liderança técnica iniciante: confundir
excelência com inflexibilidade. Lucas não percebeu que decisão técnica
madura não é escolher sempre a opção mais refinada; é escolher a mais
responsável dentro da realidade do projeto, do prazo, do time e do impacto de
negócio.
Mas
os problemas não pararam aí.
Na
tentativa de garantir qualidade, Lucas também começou a centralizar o
desenvolvimento técnico do time. Sempre que alguém travava, ele assumia a
tarefa. Sempre que um código vinha abaixo do padrão que ele considerava
aceitável, em vez de orientar, ele ajustava sozinho. Sempre que surgia uma
decisão mais sensível, não delegava a discussão: decidia e comunicava depois.
No começo, isso parecia eficiência. Só que o efeito foi perverso.
Os
profissionais mais novos começaram a depender dele para tudo. Os plenos
passaram a sentir que não valia a pena propor caminhos alternativos. A revisão
de código se transformou em um corredor estreito: para avançar, era preciso
agradar Lucas, não necessariamente compreender melhor o problema. A equipe
ficou tecnicamente mais insegura, não mais forte.
Esse
foi o terceiro erro: ajudar demais do jeito errado. Lucas não estava
desenvolvendo autonomia; estava produzindo dependência. E dependência
disfarçada de liderança é uma armadilha comum. O líder se sente indispensável,
a empresa acredita que tem uma referência forte, mas o time vai perdendo
capacidade de pensar coletivamente.
A situação começou a ficar
mais visível quando duas entregas diferentes
apresentaram o mesmo tipo de problema em produção: tratamento inconsistente de
erro em integrações com APIs externas. O curioso é que Lucas havia revisado os
dois códigos. Quando foram analisar a causa, perceberam que o problema não era
apenas individual. Faltava ao time um critério compartilhado sobre como
implementar esse tipo de integração. Cada pessoa fazia de um jeito, e a revisão
estava servindo apenas para correção pontual, não para formação de padrão.
Foi
nesse momento que a empresa percebeu uma falha mais profunda: Lucas estava
atuando como fiscal técnico, não como líder técnico.
Após
uma conversa mais franca com a direção e com o próprio time, algumas mudanças
começaram a acontecer. A primeira foi na comunicação. Lucas recebeu feedback
direto: seu conhecimento era respeitado, mas sua forma de se comunicar estava
bloqueando participação. Ele precisou entender algo fundamental: não basta
estar certo; é preciso ser compreensível e útil.
A
partir daí, passou a revisar código de outro jeito. Em vez de comentários secos
como “isso está errado” ou “essa abordagem é ruim”, começou a explicar impacto,
risco e critério. Em lugar de derrubar uma proposta com meia dúzia de termos
técnicos, passou a mostrar por que determinada escolha poderia gerar
acoplamento, retrabalho ou dificuldade de manutenção. A mudança não foi mágica,
mas foi perceptível. As pessoas começaram a entender mais o raciocínio por trás
das correções.
A
segunda mudança foi na forma de decidir. Lucas precisou abandonar a obsessão
pela solução mais perfeita e começar a considerar perguntas mais maduras: “o
prazo comporta isso?”, “o time consegue sustentar essa decisão?”, “o risco de
uma solução intermediária é aceitável?”, “o que é essencial resolver agora e o
que pode ser tratado depois?”. Esse ajuste foi decisivo. Ele não passou a
aprovar qualquer coisa. Passou a equilibrar melhor qualidade e realidade.
A
terceira mudança foi no apoio ao time. Em vez de tomar tudo para si, Lucas
começou a observar padrões de erro e agir na causa. Quando percebeu repetição
de falhas em integrações, organizou uma referência simples com boas práticas,
exemplos objetivos e checklist mínimo para revisão. Quando viu dúvidas
recorrentes sobre organização de código, promoveu uma conversa curta com o time
para alinhar critérios. Quando alguém travava em tarefa complexa, passou a
orientar por perguntas e caminhos possíveis, em vez de resolver sozinho de
imediato.
Com
isso, a equipe começou a mudar. Os desenvolvedores passaram a perguntar mais.
As revisões ficaram menos tensas e mais educativas. O time de produto voltou a
confiar mais nas discussões técnicas porque as respostas deixaram de soar como
barreira e passaram a soar como análise. O código melhorou não porque Lucas
controlava tudo, mas porque o time começou a entender melhor o que estava
fazendo.
O
que esse caso ensina sobre o Módulo 2
Esse
estudo de caso mostra, com bastante clareza, três pontos centrais do módulo.
O
primeiro é que comunicação técnica ruim destrói liderança, mesmo quando
o conhecimento técnico é forte. Não adianta dominar arquitetura, performance e
boas práticas se a forma de se comunicar afasta o time, constrange dúvidas e
transforma toda conversa em disputa de ego. Comunicação boa não é enfeite; é
parte da competência do Tech Lead.
O
segundo é que tomar decisão não é escolher a solução mais bonita, e sim a
mais responsável no contexto real. Quando o líder técnico ignora prazo,
maturidade da equipe e impacto de negócio, começa a decidir para agradar a
própria visão de excelência, não para resolver o problema de forma madura.
O
terceiro é que apoiar o time não é fazer tudo no lugar dele. Quando o
Tech Lead corrige tudo sozinho, responde tudo sozinho e decide tudo sozinho,
ele até pode parecer forte por um tempo, mas enfraquece a equipe. O verdadeiro
apoio desenvolve autonomia, distribui critério e melhora a capacidade coletiva.
Erros
comuns mostrados no caso
Ao
longo da história, apareceram erros muito típicos de quem está entrando na
liderança técnica:
1.
Falar difícil para parecer mais competente
Isso cria distância, não respeito.
2.
Corrigir com dureza e pouca explicação
Isso gera medo, não aprendizado.
3.
Buscar sempre a solução tecnicamente perfeita
Isso pode comprometer prazo, negócio e capacidade de execução.
4.
Ignorar o contexto do time
Uma boa decisão precisa considerar quem vai implementá-la e sustentá-la.
5.
Centralizar apoio e decisões
Isso cria dependência e sufoca o crescimento técnico do grupo.
6.
Corrigir efeitos sem tratar causas
Se o mesmo erro se repete em várias pessoas, provavelmente falta alinhamento
coletivo.
Como
evitar esses erros
Para
não cair nessas armadilhas, um Tech Lead iniciante precisa praticar algumas
posturas simples, mas difíceis.
Primeiro, deve aprender a explicar melhor do que impressionar. Falar com clareza vale mais do que exibir repertório. Quem lidera tecnicamente precisa tornar o
raciocínio acessível ao time.
Segundo,
precisa decidir com contexto. Nem toda solução ideal cabe no prazo, e
nem toda solução rápida é irresponsável. A maturidade está em pesar risco,
impacto, prazo e capacidade de sustentação.
Terceiro,
precisa usar revisão de código como ferramenta de desenvolvimento, não
como vitrine de autoridade. Revisar bem é apontar problema com critério,
contexto e intenção pedagógica.
Quarto,
deve observar padrões, não apenas erros isolados. Se as falhas se
repetem, o problema é do sistema de trabalho, não apenas da pessoa que escreveu
o código.
Por
fim, precisa entender que liderança técnica de verdade reduz dependência ao
longo do tempo. O objetivo não é que o time precise sempre do Tech Lead
para tudo. O objetivo é que, com o tempo, o time pense melhor, decida melhor e
trabalhe com mais autonomia.
Fechamento
O
caso da Orbitra mostra uma verdade importante: um Tech Lead pode fracassar
mesmo sendo tecnicamente muito bom, se não souber comunicar, decidir e
desenvolver pessoas. O Módulo 2 existe justamente para atacar esse ponto.
Liderança técnica não é só sobre dominar tecnologia. É sobre fazer esse domínio
servir ao coletivo de forma clara, equilibrada e útil.
No fim, o líder técnico mais valioso não é o que parece mais brilhante sozinho. É o que torna o time inteiro mais forte.
Acesse materiais, apostilas e vídeos em mais de 3000 cursos, tudo isso gratuitamente!
Matricule-se AgoraAcesse materiais, apostilas e vídeos em mais de 3000 cursos, tudo isso gratuitamente!
Matricule-se Agora