Meu tempo minhas regras

Como dev e como manager, já tive essa conversa sobre gerenciamento de tempo e priorização algumas vezes, então decidi documentar ~para economizar tempo~. Meu foco aqui são os líderes técnicos, mas usem como quiserem, tem ideias genéricas que podem ser aplicadas em outros contextos. Advice Monster

Como líder, você tem responsabilidades extras, mas a expectativa é que você continue programando, com impacto crescente no que você faz. A conta não fecha. Gerenciar essa expectativa e todas as responsabilidades é o desafio e você vai se cobrar por não conseguir fazer tudo.

Essas são minhas ideias básicas para facilitar decisões de gerenciamento de tempo pessoal. Suas decisões impactam o resultado da empresa, mas a base de tudo é pensar no melhor uso do seu tempo.

Faça o time não depender de você

Seu objetivo principal como líder é contribuir para o desenvolvimento do time, chegando no limite em que o time já roda sem você. Esse é o cenário ideal, que te deixa livre para pensar em problemas maiores.

Para chegar aí, é bastante tempo de acompanhamento e mentorias. Entenda onde cada um quer se desenvolver e libere seu tempo delegando a responsabilidade para o time, de preferência alinhando com a expectativa de desenvolvimento de cada liderado.

Não limite as tarefas ao que cada um já sabe. Se você já sabe fazer algo bem, deixar alguém fazer é uma oportunidade excelente de aprendizado. Nesse caso, use seu tempo para ensinar, não para executar. Para isso funcionar, incentive a autonomia, desapegue da solução. É muito provável que não fique no mesmo nível de qualidade que você faria ou até que seja uma solução bem diferente. Use isso para novas rodadas de aprendizado, mas não tente assumir a solução para fazer do seu jeito. Você vai se surpreender e ficar orgulhoso quando seus liderados fizerem uma solução que você não pensou e é melhor do que você faria.

Seu objetivo é se escalar

Como contribuidor individual, você tem tempo limitado, ~8h/dia. Liderando um time, seu tempo disponível para executar é ainda menor. Você precisa usar seu time para escalar sua capacidade e conhecimento, aumentando seu impacto total. Para isso, você precisa:

  • Contribuir com o aprendizado do time.
  • Saber quando você precisa implementar a solução.
  • Saber quando é melhor só desenhar a ideia ou definir a solução.
  • Saber quando você pode só deixar para outro resolver o problema.
  • Saber amplificar os resultados e comportamentos positivos do time, deixando claro o que você valoriza. Isso direciona seus liderados e pessoas próximas para o caminho que você quer que aconteça mais. Why Great Leaders Are Amplifiers

Quando for alçado para uma posição de liderança, é comum achar que não está sendo produtivo por ter menos tempo para programar. Quando somos apenas devs, atrelamos nossa medida de produtividade a entregas feitas por nós. Na posição de liderança, você deve medir o impacto e funcionalidades entregues pelo time, esse é sua grande métrica. Se você fizer cada pessoa de um time de 10 pessoas render 10% a mais, sua produtividade terá aumentado 100%.

Deixe cair alguns pratos

Você tem muito mais trabalho possível do que tempo. Saber quais são os maiores impactos ajuda na priorização, mas só isso não é suficiente. Você ainda acaba com muitos trabalhos urgentes e prioritários. Foque no que faz mais sentido, delegue para o time o que der e comunique o que não for possível fazer. Está tudo bem, alinhe com os envolvidos e gerencie as dores maiores.

Comunique muito

É sua responsabilidade tomar decisões. No seu time ninguém tem mais maturidade e conhecimento do que você para isso e esperam a ação vinda de você, mesmo que estejam todos de acordo. Mais difícil do que tomar a decisão é garantir que todos entendam o que foi feito e os motivos.

Consulte quem é impactado e quem sabe mais. Execute e comunique para todos a ação e os motivos. Isso reduz retrabalho e os pontos de contato para explicar a decisão. Isso aumenta a confiança de todos em você. Documentação boa é comunicação eficiente.

Não se compare com os outros

Olhe para a sua evolução. Cada um tem uma velocidade de aprendizado, um tempo disponível diferente. Se comparar só gera frustração, sempre tem alguém melhor que você. Aprenda com eles, mas não compare seus resultados.

Tem quem trabalhe mais que 8h/dia, quem tem tempo para estudar a noite toda ou já carrega o conhecimento de vários anos. O resultado atual importa bem menos do que o seu potencial de crescimento e como você aumenta seu impacto com o tempo.

Saiba dizer não

Proteja seu tempo. Seu tempo de trabalho é limitado, foque nas prioridades já definidas e fuja da reunião com assunto pouco definido. Incentive a conversa/documentação assíncrona para facilitar a reunião futura.

Mudanças de prioridade acontecem e quando algo urgente surgir, redefina datas acordadas para outras entregas, alinhe o que é mais prioritário e estabeleça novos prazos de acordo com a nova realidade. Tentar ser o herói e assumir mais responsabilidades do que pode não é sustentável no médio/longo prazo.

Seu tempo fora do trabalho é também limitado. Contribua com o que for necessário, mas saiba diferenciar o que é uma urgência do que é um problema que pode esperar o dia seguinte ou segunda-feira.

Não se compare, tem quem pode dedicar mais tempo, tem quem pode estudar mais, tem quem pode estar online 24/7 e é muito fácil cair na armadilha de querer seguir a rotina dos outros. Intensidade é necessária, mas construa uma rotina saudável, para fazer isso por bastante tempo.

Blocos de trabalho no calendário

Defina blocos sem reuniões. Focus time que pode ser usado para qualquer tarefa individual. Escrever código, escrever documentação, revisar código do time, etc.

Incentive seu time a ter blocos assim também e respeite esse tempo. Você já tem isso informalmente nos squads. Por exemplo, a daily pode ser sempre a tarde para deixar a manhã sem interrupções. Levando isso para o calendário, você incentiva outros times a respeitarem esse tempo também.

Nem sempre é possível, às vezes vão passar por cima do seu bloco de tempo porque as agendas não batem, mas é um sinal para orientar quem precisa falar com você.

Maker's schedule

Reduza o tempo de troca de contexto

Anote todos seus contextos. Reuniões, conversas de corredor, dúvidas genéricas, escrita de código, revisão de código, impossível manter tudo na cabeça. Escreva para consolidar suas ideias e ter onde consultar quando não souber mais o que está acontecendo.

Você muda muito de contexto e o tempo de recuperação da troca de contexto é alto. Mesmo com toda otimização de tempo feita, é inevitável ter interrupções.

Quando precisar largar o código pela metade, sempre anote qual é o próximo passo. Um comentário no código é suficiente para você saber exatamente onde parou e o que precisa fazer na sequência. Se a interrupção for um pouco mais planejada, pare com um teste quebrado, que o próximo passo é implementar a correção para ele. A recuperação de contexto é muito mais rápida assim.

Simon Willison DjangoCon US 2022 talk

Qualidade é velocidade

Débito técnico custa caro e tem juros. Aumentar qualidade e reduzir bugs te permite avançar mais rápido. Ter menos bugs para se preocupar é mais tempo para trabalhar na evolução do produto.

Faça um esforço consciente para manter a cultura de qualidade. O ganho direto é um código melhor, mas os efeitos secundários são muito maiores e acumulam. As próximas entregas são mais rápidas, o aprendizado acumulado do time é maior por trabalhar com exemplos cada vez melhores, a velocidade é maior por existir muito mais confiança no sistema de trabalho.

Leia mais uns links

How to scale yourself, from founder to leader

Our 6 Must Reads for Scaling Yourself as a Leader

Why Comparing Yourself to Others Derails Your Leadership Development

Comments !

links

social