Abílio Azevedo.

Assemble - Tech Lead Training - Rocketseat

Cover Image for Assemble - Tech Lead Training - Rocketseat
Abílio Azevedo
Abílio Azevedo

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:

PRODUTO

  1. 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.
  2. Tecnologia - Tronco para sustentar. Ser bom é transitório, temos que refatorar sempre.
  3. Produto - Fruto para entregar valor. O time precisa entender o porquê está trabalhando, fazer um dual track para construção em conjunto do produto.
  4. 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.

Requisitos de Produto

  • 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; Espinha dorsal de produto

Ferramentas:

  1. North star metric - Métrica norte da empresa. EX: Rocketseat - Pessoas desenvolvedoras inexperientes empregadas como desenvolvedores;
  2. OKR com o olhar correto -> Direcionamento para ser eficaz.
  3. 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. Grafo

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. Modelo V 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 Dora Metrics

Vinicius Campanate falou sobre Cultura DevOps: base-module e charts

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; Onboard -> Offboard

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.   Janela de JOHARI

Frases que marcaram:

  1. "Se você tem tempo para corrigir os bugs você tem tempo para escrever testes automatizados"
  2. “Prefira pagar por coisas boas do que desenvolver coisas ruins” - Diego Fernandes
  3. "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
  4. "O Júnior é o precursor do Sênior" - Otávio Lemos
  5. "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!

certificadoAssembleRocketseat2022


More posts

Cover Image for The Phychology of Money

The Phychology of Money

Morgan Housel offers valuable insights on financial management and decision-making. The author emphasizes that financial success depends more on behavior than on intelligence or technical knowledge. Housel highlights the importance of long-term vision and resilience in the face of market volatility, encouraging us to focus on sustainability rather than short-term gains.

Cover Image for Bellsant

Bellsant

I've been at the forefront of developing a cutting-edge health and wellness app. Our tech stack combines React Native for cross-platform mobile development with a serverless NodeJS backend, leveraging AWS Lambda for scalability and cost-efficiency.

Abílio Azevedo
Abílio Azevedo

NewsLetter

I will send the content posted here. No Spam =)

Experienced Software Engineer with degree in Electrical Engineering with over 10 years of hands-on expertise in building robust and scalable mobile, web and backend applications across various projects mainly in the fintech sector. Mobile (React Native), Web (React and Next.JS) and Backend (Node.JS, PHP and DJANGO). My goal is to create products that add value to people. - © 2024, Abílio Azevedo