This page is also available in English.Read in English →
Artigo

A Sutil Arte de Priorizar Tarefas para Desenvolvedores

Tradução do original em inglês.Ler o original

Photo by Brett Jordan / Unsplash
Neste artigo

Priorizar tarefas não é fácil, e todo mundo às vezes cai no buraco de pegar trabalho demais ao mesmo tempo e acabar sobrecarregado. Junto com as habilidades de comunicação, priorizar tarefas é outra habilidade que todo desenvolvedor deveria dominar para ser visto como alguém que entrega resultado.

A Mentalidade das 4 Prioridades Conhecidas

Toda vez que tento priorizar minhas tarefas, chego a algo que eu chamo de Mentalidade das 4 Prioridades Conhecidas (pois é, dar nome às coisas é difícil). Aqui está a 4KPMS:

Conheça as Prioridades do Seu Time

Essa é provavelmente a mais importante da 4KPM. Para entender quais devem ser as suas prioridades, primeiro entenda quais são as prioridades do seu time.

Todos nós (será?) queremos focar em projetos entre times e causar um impacto enorme na organização inteira, mas o que precisamos ter em mente é que as prioridades do seu time devem ser a sua prioridade número um (isso não vale para engenheiros de nível Staff+).

Então comece por aí. Você deve, antes de tudo, conhecer a prioridade do seu time, e se não conhece, tente descobrir agora mesmo: peça ao seu gestor direto para deixar isso visível para você e para o time. Você também pode ajudar a deixar isso visível criando uma página com o roadmap e as prioridades do time (acredito que algo parecido já exista na sua organização e no seu time, mas, se não existir, pergunte ao seu gestor como deixar isso mais visível para o time).

Agora que você conhece as prioridades do seu time, elas devem estar organizadas em ordem de prioridade, levando em conta qual delas entrega valor para o cliente.

Aviso: mesmo em times muito autônomos, com um board com todas as tarefas já priorizadas, alguém já fez essa priorização (provavelmente o nosso gestor ou o product manager), então vá em frente e, de tempos em tempos, alinhe as expectativas com essa pessoa.

Saiba Quando Dizer NÃO

Quando você acabou de entrar numa empresa, é fácil dizer SIM para tudo, e pode acreditar, já perdi a conta de quantas vezes alguém me pediu uma tarefa simples que virou uma bola de neve e me tirou do rumo dos objetivos do meu time. O mesmo vale para os objetivos do time: é fácil pegar primeiro as tarefas pequenas e fáceis.

Saiba quando e como dizer NÃO de forma respeitosa. Se você estiver realmente sobrecarregado, as pessoas vão entender, e você ainda pode indicar quais times ou pessoas podem ajudar com a tarefa.

Saiba Quando Delegar

Quando o tempo não é um problema, acredito que toda tarefa é uma oportunidade de aprender algo novo, mesmo aquelas com tecnologias ou domínios com os quais você nunca trabalhou. Mas às vezes, quando o tempo é curto e os prazos estão definidos, você precisa tomar a iniciativa e delegar tarefas para colegas que têm mais contexto e provavelmente vão entregar mais rápido. É uma troca... você pode pegar algumas tarefas deles e eles algumas suas... e você ainda vai aprender sobre o problema ao revisar os pull/merge requests deles.

Saiba Quando Pedir Ajuda

Seja transparente e claro com o seu time sempre que se sentir sobrecarregado e pergunte quem pode ajudar dividindo a carga de trabalho ou até quebrando as tarefas. Times que funcionam bem costumam se sair muito bem nisso.

Perguntas da 4KPM

Aqui vai uma lista de perguntas que você deveria se fazer sempre que alguém te pedir uma tarefa:

  1. Isso é um P0? (por exemplo, é um bug em produção ou algo que está bloqueando um cliente?)
  2. Essa tarefa está alinhada com os objetivos do meu time? Se não estiver, tente entender melhor por que pediram isso para você e como isso vai impactar a organização.
  3. Qual é a urgência do pedido? Às vezes as pessoas exageram o quanto uma tarefa é urgente, e ao pegar tarefas que não são urgentes e colocá-las na frente, você corre o risco de atrasar o seu time.

Estratégias

Estas são estratégias que venho usando nos últimos anos/meses trabalhando como desenvolvedor de software.

  1. Tenha um app de TODO externo: uso o Todoist há muitos anos (não é patrocinado... eu só adoro o produto) e, além do Kanban do seu time, você deveria ter um jeito de documentar e priorizar as suas tarefas atuais.
  2. Saiba suas prioridades no dia anterior: faço isso há vários meses, e é um alívio de verdade toda vez que começo meu dia de trabalho e tudo em que vou trabalhar já está definido e priorizado. Às vezes, quando você começa a trabalhar, surgem novas prioridades (como corrigir um bug em produção), mas aí é só questão de despriorizar outras tarefas.
  3. Faça a coisa mais importante primeiro: parece clichê, mas funciona de verdade... toda vez que começo o dia fazendo a coisa mais importante primeiro, mesmo que no fim do dia eu não tenha terminado mais nada além disso, ou nem tenha terminado ela, sinto que concluí algo no fim do dia.
  4. Limite sua carga de trabalho, mas tenha um buffer de trabalho: limito cada dia a três tarefas em que vou trabalhar, com base na prioridade delas... alguns dias termino todas, e outros não consigo terminar nem a primeira... nos dias em que termino tudo, só pego outras tarefas do meu Work Buffer, que é uma lista no Todoist com tarefas que posso pegar em seguida. Podem ser tarefas simples que a gente tende a nunca fazer (como documentar algo ou criar um script para automatizar alguma tarefa recorrente do time). Nos dias em que não avancei muito, costumo terminar o dia com uma reflexão: "O que deu errado hoje que eu posso corrigir para que amanhã seja um dia melhor?"

Uma frase que vi pela primeira vez nos vídeos do Ali Abdaal foi:

Para o que você precisa dizer não para ter espaço para aquilo a que você realmente quer dizer sim?

Então, no fim de cada dia, encerro fazendo três tarefas simples:

Tarefas de fim de dia no Todoist
  1. Preencher o Work Log: só escrevo num documento o que fiz no dia, interações, pedidos de suporte etc., tudo o que tem a ver com o meu trabalho. Achei essa técnica muito útil para usar com meus gestores no ciclo de avaliação de desempenho e também para entender como estou trabalhando no dia a dia.
  2. Planejar Cada Minuto do Dia Seguinte: essa é simples, mas muito poderosa. Só abro minha agenda, confiro todos os compromissos de trabalho (weeklies, dailies, alinhamentos do time, coffee chats etc.) e compromissos pessoais (como consultas médicas)... e digo NÃO às reuniões ou eventos em que minha presença não é necessária. Se vejo que é um dia com reuniões demais, costumo remarcar algumas para ter mais tempo de Deep Work. Isso também ajuda a entender quantas horas terei no dia seguinte para focar de verdade em deep work (por exemplo, programar ou escrever documentação).
  3. Listar Só as 3 Principais Tarefas do Dia Seguinte (Faça a Coisa Mais Importante Primeiro): como o nome diz, e como comentei antes, só listo as três principais tarefas em que vou trabalhar no dia seguinte, e como já sei quantas horas de deep work posso ter, fica mais fácil listar essas tarefas com base no tamanho e na prioridade delas.

Conclusão

Não existe um sistema simples que funcione para todo mundo, e devemos adaptar tudo com base nas suas necessidades. Eu, pessoalmente, uso uma mistura da matriz de Eisenhower e do Inbox zero com o método GTD, tudo junto no meu app Todoist.

Lembre que ser organizado é ótimo, mas tempo para descansar também é essencial, então planeje com antecedência suas pausas ao longo do dia entre as tarefas para evitar burnout e a mentalidade da produtividade tóxica.

Happy Coding :)