Liderança técnica na Buser — o que é esperado de tech lead?
Vamos focar no “lead” do tech lead
Liderança, antes de ser um cargo, é um comportamento. E é um tipo de comportamento que inspira confiança nos outros. Líder costuma ser um tipo de pessoa para quem os outros olham quando precisam de ajuda. Então se você quer ser um líder, acredite, não tem ninguém te impedindo. Você pode e deve se comportar como um, independente do cargo. Na verdade, provavelmente o cargo só virá para formalizar o que já vem acontecendo na prática.
O que faz o cavaleiro é a bravura; a armadura é um detalhe.
O que tem nesse comportamento? Pense nas pessoas que você confia e que pode contar, o que elas têm em comum?
- Adoção voluntária de responsabilidade
- Dizer a verdade
Adoção de responsabilidade: amor pelo que faz, pela qualidade do código, cadastrar o bug na ferramenta de gestão assim que ele aparece, fazer o code review antes de começar algo novo, trabalhar para diminuir as dúvidas técnicas, procurar saber de antemão os impactos que seu trabalho tem no trabalho dos outros, saber que você é dono do seu sistema em produção 24/7, entender e enxergar o impacto que seu trabalho tem no negócio, é colocar o interesse da empresa e do time acima do seu.
Dizer a verdade não é questão de não mentir, não mentir é o mínimo. É não calar na hora de dar um feedback corretivo necessário, ter (e buscar) a competência para saber a verdade para começo de conversa, geralmente em tech a verdade não é óbvia, principalmente quando as coisas dão pau.
Líder: Ética + comportamento + verdade + responsabilidade = confiança = liderança.
E o “tech”?
Bom, começa que, enquanto uma pessoa desenvolvedora com menos experiencia (júnior) enxerga isso aqui…
Na realidade, se parece mais com isso aqui:
E sabemos que o desenho acima é uma simplificação da realidade 😅
O tech lead conhece o fluxo do software e dados do exemplo acima, cuida do bom funcionamento dos sistemas (de software e de trabalho), e ajuda mais pessoas a fazer o mesmo descomplicando a complexidade do software existente, descompactando um pouco mais, o tech lead:
- Ser par do PM (Prudct Manager), sendo responsável por escrever a visão de tecnologia do que o time desenvolvera (transcrevendo a visão de produto em um documento técnico de como implementaremos);
- Tem intimidade com cada módulo do software e/ou serviços (essas caixinhas). Sabe para que servem, como funcionam, quanto custam, quais são suas vantagens e desvantagens;
- Sabe como as partes se comunicam, onde estão os gargalos (débitos técnicos existentes);
- Mantém a pipeline de entrega (CI/CD);
- Conhece e usa com frequência as ferramentas de monitoramento. Se seu sistema cai, percebe e avisa (e não sendo avisado);
- Está o tempo todo de olho nos runtime bugs (sentry) e trazendo as melhorias necessárias para dia-a-dia;
- Escreve (rápido, tipo em 24h) os post-mortems dos problemas severos que acontecem, e compartilha conhecimento com todos do time e com outros times;
- Está de olho nos analytics para não perder de vista os impactos no negócio;
- Acompanha e revisa os commits dos colegas antevendo problemas — não "só" code style;
- “Ah, mas isso é responsabilidade dos Staff Enginner”, esse é um pensamento que não deve passar pela cabeça de uma liderança técnica (esperamos adoção voluntária de responsabilidade);
- Eleva o nível técnico dos colegas fazendo pair programming, escrevendo documentação e compartilhando conhecimento;
- Consegue "se virar sozinho", falando com quem precisa falar (independente da estrutura organizacional), quando confrontado com algo novo no dia-a-dia consegue aprender, trazer ideias de como solucionar o problema e melhorar/corrigir o problema encontrado;
- Tem curiosidade sobre o negócio e quer conhecer o "por que" do que será desenvolvido, ou seja, é Engenheiro de Produto — vale a leitura do artigo Pessoas desenvolvedoras com pensamento de produto — Engenharia de Produto
- Ajuda o time a escolher a melhor proposta de arquitetura para o software que será desenvolvido;
- “Vender” a proposta de arquitetura para o time de Staff Enginner da Buser, não dependendo dos Staff Enginner definir arquitetura.
Liderança técnica não é cargo e sim “chapéu” 🎩
Geralmente não somos sênior em tudo que fazemos, estudamos mais um assunto do que outro, ou seja, uma pessoa pode liderar tecnicamente quando ela estudou mais sobre o assunto.
Exemplo:
Eu (Avelino) tenho zero habilidade em desenvolvimento mobile, não tenho skill técnico necessário para liderar projetos que seja mobile, muito diferente do meu amigo do lado que trabalha/trabalho com desenvolvimento mobile por anos.
No exemplo acima o "meu amigo do lado" seria a melhor pessoa para liderar tecnicamente esse projeto, isso não quer dizer que não consigo liderar outro tipo de projeto, por isso a posição de liderança técnica na Buser não é cargo e sim chapéu 🎩.