quarta-feira, 31 de março de 2010

O que é que eu fiz esse tempo todo?

Muita gente não tem o costume de medir o seu tempo. Em que sentido? No sentido de quais atividades foram feitas para alcançar um determinado objetivo durante um certo tempo.

Para alguns isso pode ser neurose; para outros, perda de tempo; para outros desnecessário (nem inflói, nem contribói); para outros, vital para se ter controle da vida. Enfim, medir o tempo ainda divide as pessoas.

Existe um problema nessa divisão? Não! Pelo menos até o ponto onde não se fica prejudicado pelo passar do tempo. O tempo passa, o tempo voa, e tem gente que vive como se estivesse correndo atrás de um ladrão: "Ei, volte aqui seu ladrão de possiblidades de execução de atividades!". Só não sabem essas pessoas que o tempo é surdo e corre pra caramba. :) Só é possível pegá-lo com uma estratégia, um bote, uma tocaia; e só então domá-lo e deixá-lo sob seu controle. É mais ou menos como os humanóides (Na'vi) de Avatar faziam para capturar um animal voador para eles. :). E quem corre e não alcança o tempo, chega ao ponto de não ser capaz de responder à uma simples pergunta: o que você fez (em detalhes) nas últimas três horas?

O sujeito pode até dizer as atividades maiores, ou aquelas que ocuparam mais tempo dele, mas das menores ele não se lembra. Isso é o reflexo de as pequenas atividades não recebem a devida importância. Isso quer dizer que eu devo passar meu dia anotando tudo a cada minuto que se passa? Claro que não, mas alguém deve fazer isso por você. Quem? Algum processo automático. Hoje já existem ferramentas que automatizam essa medição, entretanto ainda têm muito o que melhorar. E esse é um dos projetos que ainda vou fazer na vida: "Melhorar o processo de medição automático de atividades diárias. Medir automaticamente e silenciosamente, sem intervenção humana".

Mas por que devo me preocupar (manual ou automaticamente) em medir o tempo gasto nessas atividades pequenas? Porque medir é bom, ajuda a estimar, e te dá subsídios para seus argumentos.

Certa vez tive que fazer a alteração de uma linha de código. E me entristecia com o tempo que levava para ter essa linha de código atualizada no produto final. Foi quando o meu o cliente chegou pra mim e começou:

- Quanto tempo você leva para fazer a alteração dessa linha de código?
- Duas horas?
- Por quê isso tudo?

E pensando só nas atividades grandes respondi:

- Os servidores demoram em torno de uma hora e meia para sincronizar. E os outros trinta minutos são para seguir o processo.

Mesmo sem acreditar, o cliente concordou. Foi então que eu decidi mostrar nos "mínimos detalhes" o tempo gasto em cada microatividade executada por mim. Foi quando eu mesmo me espantei:

  • Criar CR no bugtracker: 3 min
  • Configurar ambiente de codificação: 5 min
  • Criar branch: 2 min
  • Codificar: 13 min
  • Criar inspeção: 4 min
  • Improdutivo: 24 min
  • Inspeção: 9 min
  • Retrabalho: 0 min
  • Improdutivo: 11 min
  • Merge com a mainline: 10 min
  • Criar e passar label no código na mainline: 1 min
  • Transicionar CR: 8 min
  • Criar instalador: 8 min
  • Reunião com o cliente: 54 min
  • Criar instalador: 22 min
  • Liberar release no servidor do cliente: 6 min

Total: 180 min = 3h

A sorte é que o tempo de sincronização dos servidores aconteceu durante o horário de almoço.

Pude perceber alguns pontos com isso:

  1. Demorei 3h (e não 2h) para fazer o que deveria.
  2. O dia é feito de minutos (considerando que a granularidade de segundos não é tão apropriada para executar atividades normais). De minuto em minuto, o tempo passa. Atividades de poucos minutos quando somadas dão muitos minutos.
  3. Gastei 54 min numa reunião com o cliente. A culpa foi da reunião? De forma alguma. Reunião é o tipo de coisa acontece sempre numa semana. Sempre tem uma reunião surpresa que te toma 30 min, 1h, ou mais. Mas o seu prazo é o mesmo para fazer o que deve. Então isso deve ser contabilizado numa próxima estimativa.
  4. Gastei 13 min para modificar uma linha de código! Quanto processo eu tava seguindo, quantas interrupções eu sofri para chegar ao ponto de gastar 13 min para alterar uma linha? Repetindo: UMA LINHA!!!

Logo ficou claro na minha cabeça a resposta para a pergunta título desse post. E depois que eu mostrei isso para o cliente, num instante ele se convenceu da demora e começou a providenciar melhorias de infra-estrutura e processo nesse projeto que participo.

Resumindo essa conversa toda: medir é bom e ajuda a estimar, ajuda também a apontar as pedras do nosso caminho, e olhar para o relatório de tempo gasto é sempre um desafio de humildade, pois ele vai te dizer algumas verdades que você nem sabia que existiam.

Tempo total para escrever esse post: 1h.

3 comentários:

Claudio disse...

Emerson, especificamente sobre as reuniões, ouça esses dois rápidos podcasts:

http://www.ricardo-vargas.com/pt/podcasts/meetings1_2/

http://www.ricardo-vargas.com/pt/podcasts/meetings2_2/

Emerson disse...

Caramba, Cláudio. Tem gente aqui na empresa precisando ouvir isso. Vou dar um jeito de mostrar se ofender. :)

Gostei quando ele falou que "você vai mostrar desrespeito à agenda de outras pessoas". O jogo que estou fazendo serve justamente para educar as pessoas (principalmente do mundo corporativo).

sampaio-e-silva disse...

T_Produtivo = T_Codificando - T_Improdutivo - T_Processo - T_Reunioes - T_Interrupcoes - ...

Num tem jeito de ser produtivo assim.