Assemble - Tech Lead Training - Rocketseat
No último final de semana participei de um treinamento para líderes na área de técnologia (Tech Leads) chamado Assemble e conduzido pela Rocketseat. Foi uma ótima oportunidade de reforçar conceitos, validar metodologias e aprender muito conteúdo. Mas o que marcou mais foram as trocas de idéias e o relacionamento entre os participantes. Deixo com vocês algumas anotações que me marcaram, um notion com os conteúdos das palestras, assim como as respostas das dinâmicas do treinamento e no final fiz um plano de ação.
Fernanda Vieira falou sobre o que é Liderar.
"Defino liderança como o processo pelo qual uma pessoa (líder) elicita o compromisso interno de outras pessoas (seguidores) de cumprir uma missão alinhada aos valores do grupo. Liderança é conseguir o que não pode ser tomado e merecer o que é dado livremente." Fonte: Fred Kofman – The Meaning Revolution (Tradução Livre)
Fernanda nos trouxe uma analogia interessante sobre o desenvolvimento de produtos:
- Metodologia - Raízes (sustentação) para o resto rodar, melhoria contínua, inspercionar os processos, dar transparência. O lider não pode estar nos caminhos críticos dos processos, se não o time trava.
- Tecnologia - Tronco para sustentar. Ser bom é transitório, temos que refatorar sempre.
- Produto - Fruto para entregar valor. O time precisa entender o porquê está trabalhando, fazer um dual track para construção em conjunto do produto.
- Pessoas - Elementos naturais que vão alimentar a árvore
Eduardo Matos falou sobre os 4 arquétipos de um lider.
1. Tecnólogo - Focado em tecnologias (Carro autônomo, blockchain...). O perigo é não se preocupar com o business.
2. Humanista - Focado em pessoas. EX: Tony da Zappos, dá 2k USD para a pessoa que escolher sair da empresa depois do onboard. O perigo é ser complacente demais.
3. Processual - Focado em métodos, melhoria contínua (KAIZEN). Perigo é ser lento em casos que é necessário sair dos processos.
4. Executivo - Focado em dados, metas, KPIs e resultados. Perigo é passar por cima de tudo e todos.
Não existe um arquétipo matador, é preciso se conhecer e desenvolver um pouco de cada para ser situacional e balanceá-los.
Eduardo Matos falou sobre o que você precisa fazer para ter uma equipe engajada.
- Se alguém entra no time já desmotivada, o processo de onboard foi mal conduzido.
- Precisamos atacar as fontes que estão levando ao desengajamento
- Tenha interesse genuíno pela pessoa
- O local mais importante da empresa é a equipe
- Estimule a colaboração, trabalhe na construção das pessoas como um time (Team Building)
- Reforce boas ações em público e más no particular
- Crescimento é diferente de promoção. Mas crescimento leva à promoção. Alinhe espectativas
Lais Mendes falou sobre times comprometidos criam produtos de sucesso.
- Gestão de produtos é resolver problemas reais dos clientes de uma maneira que atenda às necessidades do negócio.
- Pessoas desenvolvedores envolvidas no discovery
- Partir das dores dos clientes
- Tomar decisões com base em dados
- Entregar pequeno e validar rápido
Simara Conceição falou sobre como avançar rumo à liderança técnica usando padrões sensatos
- Levar para dentro da empresa aprendizados externos;
- Seja honesto sobre sua situação atual, auto análise;
Padrões sensatos (Thoughtworks) são práticas indicadas para uma entrega extraordinária em três áreas:
1. Tecnologia: Práticas adotadas por nossos times de desenvolvimento.
2. Modo de trabalho: Descreve o dia a dia das nossas equipes e cerimônias;
3. Gestão de entregas: Planejamento e monitoramento da nossas entregas;
- Liderança Técnica: Não são atividades exclusivas da líder, mas ela deve garantir que as atividades aconteçam. - Diagramas de arquitetura; - Documentação de decisões; - Tech Huddles - Reuniões de alinhamento técnico; - Post Mortems - Retrospectiva de incidentes; - Gerenciar, pagar dívidas técnicas e tech radar;
- Segurança: Responsabilidade de todo time. Refere-se à segurança de dados, de segredos e ferramentas. O time implementa uma baseline de controles de segurança. - Dependency Checker; - Nenhum dado de prod chega em pré-prod; - Requisitos de segurança fazem parte do escopo;
- Trunk Based Development: Entregar software com feedback rápido. Evita retrabalho, dá visibilidade sobre incompatibilidades do código, facilita confiança para refatorações. - Time integra mudanças na trunk/main várias vezes ao dia; - Branches duram horas, nuncas dias ou semanas; - Segurança para trabalho que está em progresso - feature flags/toggles;
- Entrega Contínua: Dá confiança de conhecer o caminho pra produção, independente da funcionalidade estar pronta ou não. Todo o time tem segurança de rodar o deploy e tem visibilidade da build. - Build rápido; - Feedback rápido;
- TDD: Design dirigido por testes. Fazer o desenho do software de fora pra dentro. Melhor encapsulamento e modularidade. Códigos limpos e mais fáceis de entender. Testes rodam toda vez que incluímos novas mudanças no código dando feedback rápido e segurança. - Cobertura de testes automatizados; - Testes devem ser parte do escopo; - Código em produção apenas com testes; - Todo time é responsável;
- Gestão efetiva de dívidas técnicas: Continuar adicionando funcionalidades de valor de negócio num ritmo sustentável. Gera qualidade e priorização de trabalho de melhorias. - Métodos efetivos; - Produtividade; - Qualidade; - Redução de riscos; - Esforço de refatoração;
- Pareamento: Diminui o retrabalho, aumenta a qualidade das entregas, aumenta a consistência do time para lidar com ausências e mudanças. - Usar mecanismos de compartilhamento de tela diariamente; - Na maior parte do tempo escrever código de forma coletiva; - Rotacionar de maneira regular para que todas tenham contexto técnico;
- Observabilidade da aplicação: Garantir feedback rápido e resiliência do sistema. Todas devem estar preparadas em caso de falhas e indisponibilidade do serviço.
- Garantia que a aplicação é observável e suportada em prod
- DOD garante logs, monitoramento e alertas em prod;
Raphael Cuba falou sobre metodologias e práticas para construção de times de tecnologia de alto nível
Times de alta performance são eficazes.
-
Eficiência: Fazer rápido (o que);
-
Eficácia: Fazer mais com menos (como);
-
Seja resiliente e cuide do seu time;
-
Fortaleça a diversidade de perfis no seu time;
-
Construa a cultura de um time participativo em todas as etapas da criação do seu produto;
-
É menos sobre entrega, é mais sobre o resultado.
-
Feedback antecipado é ouro;
Ferramentas:
- North star metric - Métrica norte da empresa. EX: Rocketseat - Pessoas desenvolvedoras inexperientes empregadas como desenvolvedores;
- OKR com o olhar correto -> Direcionamento para ser eficaz.
- Matrizes de priorização (gut, rice, ice, eisenhower...)
Felipe Nunes falou sobre desenvolvendo aplicações modernas e inteligentes com Banco de Dados Grafos
- Conceito de banco de dados com relacionamento.
- Relacionamentos e estruturas interconectadas são altamente preditivos e subutilizados – e já estão em seus dados. Os grafos são uma maneira natural de armazenar e usar essas informações preditivas.
Rodrigo Gonçalves falou sobre testes automatizados em aplicações mobile
- Garanta a qualidade de suas aplicações;
- Testes E2E são importantes para validar funcionalidades e também pode inspirar melhorias na usabilidade da aplicação;
- Detox: Testes E2E para React Native. É preciso do simulador e no CI é preciso de um ambiente preparado para mobile (Bitrise) APP Exemplo com testes.
Otávio Lemos falou sobre arquitetura de software - Trade-offs de arquitetura e boas práticas em projetos de software
- Não abra mão de qualidade, pesquisas mostram que negociar arquitetura e boas práticas não levam a entregar mais rápido.
- Não acoplar muito os testes a estrutura, mas sim ao comportamento da aplicação;
- Kent Beck - TDD, CI/CD, Refatoração, Design Simples, Pair Programing;
- Dave Farley Canal de Tecnologia - Continuous Delivery
Vinicius Campanate falou sobre Cultura DevOps: base-module e charts
- O gerenciador de pacotes para Kubernetes - https://helm.sh/
Gabriel Buzzi falou sobre documentação de times de desenvolvimento
- Pense que você está escrevendo para outras pessoas lerem seu código;
- Use clean code para o código se auto documentar;
Documente:
- Times/Responsabilidades
- API Docs
- Componentes
- Integrações
- Infra
- Aplicações paralelas
Diego Fernandes falou sobre tendências, a era dos serviços
- Você não deveria CRIAR NADA que não é core do seu negócio;
- Não banque o super herói, você vai se tornar o gargalo da empresa;
- Pare de pensar em escalabilidade técnica e pense em escalabilidade de negócio, você não é pago pelo seu conhecimento técnico e sim pelo resultado que entrega;
- Escalabilidade é difícil (e caro). Se você não tem profissionais qualificados no assunto, não vale a pena arriscar.
Gabriel Bolzi falou sobre mentalidade de solução: as escolhas difíceis que um tech lead deve fazer e suas vantagens e desvantagens
Gabriel trouxe vários tópicos e fez um painel para discutirmos as aplicações das opções:
- Monolito x Microserviço
- Construir do Zero x Consumir Plataformas
- Especialista x Generalista
- Testes A/B x Data Driven
- Tech Lead x Contribuidor Individual
Sergio Fiorotti falou sobre mentalidade de solução: as escolhas difíceis que um tech lead deve fazer e suas vantagens e desvantagens
- Meça o desempenho dos liderados;
- Dê feedbacks específicos (baseados em dados) e recorrentes;
Alex Salgado falou sobre mindfulness e saúde mental
- “Observabilidade” descreve o quão bem você pode entender o que está acontecendo em um sistema, frequentemente instrumentando-o para coletar métricas, logs ou rastreamentos.
- Balancear a vida pessoa/profissional: Foque no que realmente importa
- Gerenciar sobre carga: Elimite hábitos ineficiêntes, peça ajuda e diga não.
- Lidar com colegas de trabalho: Se auto conheça, aprenda a colaborar, observe, veja as necessidades das pessoas
Jakeliny Gracielly falou sobre como dar feedback técnico e apoiar o crescimento de DEVs do meu time
- Feedback entre os liderados (pares), Feedback não agressivo. Comece mediando essas reuniões.
- O objetivo é observar os comportamentos que dificultam o relacionamento interpessoal.
- As vezes é preciso evoluir na enfase do seu feedback: Eu gostaria que… Eu preciso que… Eu vou ter que te demitir caso você não…
Mayk Brito, Diego Fernandes e Gabriel Buzzi falaram sobre equilíbrio entre velocidade e qualidade, mentalidade de MVP sem abrir mão do refactoring
- Waze | O Melhor MVP da história (Minimum Viable Product)
- Feedback contínuo: Validar público, problema, solução.
- Rocketseat tinha idéia de ensinar empreendedorismo para desenvolvedores. Mas após validações, pivotaram.
- Regra do escoteiro: Ao sair do lugar ele tem que estar mais limpo de quanto você chegou. Pagar debitos técnicos gradualmente
Metodologias e ferramentas citadas no evento:
- Failure Wall
A ideia era criar uma “parede de falhas”, pegando uma grande parede branca na sala de descanso do escritório e incentivando funcionários e parceiros a anotarem seus maiores erros, em preto e branco, para que todos pudessem ler.
- PDI - Plano de desenvolvimento individual
Desenvolver um plano para desenvolver seus liderados, tanto tecnicamente (https://roadmap.sh/) como com soft-skills.
- Dual Track - Discovery e Delivery
Envolver os desenvolvedores no discovery irá poupar muito tempo e retrabalho futuro.
- Trunk Based Development
É uma prática de gerenciamento de controle de versão em que os desenvolvedores mesclam atualizações pequenas e frequentes em um “tronco” principal ou ramificação principal.
- Backstage - IDP - Internal Developer Platform
Ferramenta para o desenvolvedor documentar (DOC-LIKE-CODE)
- DORA - DevOps Report
https://www.devops-research.com/research.html
- Feedback SCI
Comece pela situação, mostre o comportamento e explique o impacto.
- Janela de Johari
O objetivo é observar os comportamentos que dificultam o relacionamento interpessoal.
Frases que marcaram:
- "Se você tem tempo para corrigir os bugs você tem tempo para escrever testes automatizados"
- “Prefira pagar por coisas boas do que desenvolver coisas ruins” - Diego Fernandes
- "Determinar para onde você vai é muito mais importante do que como chegar lá. o "como chegar" se modifica, o 'onde chegar' nunca muda" - Chico Montenegro
- "O Júnior é o precursor do Sênior" - Otávio Lemos
- "64% das funcionalidades que criamos em softwares são raramente ou nunca usadas pelos usuários" Jim Johnson
Notion com materiais:
Embedded content: https://platinum-aletopelta-2e5.notion.site/Assemble-Rocketseat-b33fa5942c1e4813a2bb0c22818a34bd
Plano de ação:
- ✅ Adicionar colegas participantes para continuar o network
- ✅ Compilar aprendizados do treinamento em um post.
- Fazer o teste rápido DORA.
- Metrificar velocity do time (cicletime, commits, prs);
- Buscar North Star Metric e passar para o time cultura de eficácia;
- Dailys falando o que poderia ter feito melhor (microretro);
- Documentar fluxos de qualidade: Definition of Read, Definition of Done, Pull Requests/Code Review, Testes Automatizados.
- Fazer POC do Backstage e validar benefícios para empresa;
- Aplicar testes e2e com DETOX quando o fluxos do app estiverem mais maduros;
- Montar um RADAR TECH
OBRIGADO ROCKETSEAT, TODOS OS PALESTRANTES E COLEGAS PARTICIPANTES!