Gestão de tempo para desenvolvedores

Gestão de tempo para desenvolvedores

Guest-post escrito por Juliana Spitaliere,  conteudista da Umbler*, startup de Cloud Hosting pensada para agências e desenvolvedores, com foco total no usuário e na agilidade de publicação de sites e emails.

 

Horas debruçado sobre o mesmo código, turnos de expediente estendidos, inúmeras interrupções ao longo do processo, múltiplas tarefas a serem concluídas ao mesmo tempo, pressão para entrega, refação de códigos finalizados (e correção de bugs), notificações piscando por todos os lados. Ufa! Para quem está de fora parece até difícil imaginar, mas, sim, esse cenário caótico faz parte da realidade de quem trabalha com desenvolvimento (de software, de sites, de aplicativos mobile, não importa qual o segmento).

A identificação desses pontos em comum só levam a uma certeza: saber como fazer a própria gestão de tempo é tão importante quanto ter dedicação, experiência e conhecimento técnico. Essa skill, nem sempre valorizada como deveria no mercado de trabalho, resulta não só em benefícios profissionais e financeiros, mas, principalmente, na evolução pessoal, amadurecimento e aumento dos níveis de satisfação.

A rotina do desenvolvedor

Pesquisando ou conversando rapidamente com qualquer programador, torna-se muito claro quais são as principais preocupações envolvendo a administração de tempo (aliás, já citamos algumas anteriormente). Na prática, sabe-se que o tempo real de produção, em um dia normal de trabalho, é em torno de 60% a 75%. Diversas atividades pessoais, fisiológicas e profissionais impedem uma dedicação integral das pessoas nos projetos. E, se formos considerar apenas algumas atividades básicas previstas no escopo de um desenvolvedor, em teoria, elas já seriam muitas:

  • Tempo para entender e solucionar problemas difíceis;
  • Tempo para ajudar outros programadores a solucionarem problemas difíceis;
  • Tempo para aplicar testes;
  • Tempo para interação com cliente;
  • Tempo para estudar sobre programação, se atualizar em uma determinada linguagem, e
  • Tempo para, finalmente, escrever códigos;

Segundo um estudo realizado pelo professor Chris Parnin, na Georgia Institute of Technology deAtlanta (EUA), um dos principais motivadores da improdutividade de equipes de desenvolvimento é a interrupção constante, já que mais de 57% das tarefas costumam ser entrecortadas. Seja pelo grande apelo das redes sociais, de canais com o email, pelos pedidos de ajuda constantes, pelas inúmeras reuniões (que, infelizmente, ainda tomam boa parte do tempo), ter seu trabalho interrompido pode gerar inúmeras consequências negativas. Só para se ter ideia, em uma análise de 10 mil sessões de programação, Chris detectou que:

  • Um programador leva entre 10 e 15 minutos para retomar a edição de código depois de uma interrupção;
  • Em apenas 10% das vezes programadores conseguiram retornar ao trabalho que estavam fazendo, após uma interrupção, em menos de um minuto, e
  • Ao longo de todo um dia de trabalho, programadores geralmente conseguem manter apenas uma sessão ininterrupta de duas horas.

Isso é um fator agravante para uma boa gestão de tempo. Pense sobre quantas vezes isso acontece com você ao longo de seu expediente. Você já tinha se dado conta do quanto as interrupções são prejudiciais?

Além do desafio diário de aprender a lidar com as mais diversas distrações, as longas e intensas rotinas longas e as noites sem dormir, está a capacidade de estruturar um escopo de trabalho e torná-lo mais inteligente com relação a organização de tempo. Você pode começar por esse ponto: quais atitudes poderiam resultar em menos interrupções?

E, antes que você possa pensar em uma solução, já apresentamos outra questão importante: você acredita que realizar muitas tarefas ao mesmo tempo é produtivo? Muitas vezes, a origem do problema está aí! Não são somente os outros que interrompem seu trabalho, mas, muitas vezes, você mesmo. Trabalhar em dois, três projetos ao mesmo tempo, além de ser um hábito desgastante, não gera bons resultados. Esse é o famoso mito do multitasking, que segundo o psicólogo Jim Taylor, pode reduzir até 40% da produtividade – com a perda aumentando conforme aumenta a complexidade do trabalho sendo executado.

No âmbito da programação, quando falamos de gestão de tempo, e de técnicas importantes para seguir, somos surpreeendidos por um paradigma. Para administrar bem o tempo no ambiente de trabalho é importante entender como a produtividade funciona dentro daquele cenário (já que, ser produtivo em uma determinada área de atuação, pode não ter o mesmo significado em outra). No entanto, é possível monitorar a produtividade de equipes de desenvolvimento? Precisamos falar sobre isso!

>> Você vai gostar de ler: Indicadores de produtividade apontam a redução de e-mails.

Monitorando a produtividade de equipes de desenvolvimento: como não fazer

A gestão de tempo em equipes de desenvolvimento vai muito além de cronometrar o quanto cada profissional gasta para entregar um determinado projeto. Compreender o desempenho, de grupo e individual, é compreender toda a cadeia produtiva, que, geralmente, fica restrita a conhecimentos subjetivos dos colaboradores.

“O fulano é o mais rápido para terminar essa tarefa”, “o beltrano costuma demorar para entregar isso”, são pensamentos criados e mantidos no imaginário de equipes, onde nada é metrificado de forma eficiente e, por consequência, metas de produtividade não são atingidas. Claro, também é comum que elas estejam baseadas em pensamentos incoerentes, o que dificulta ainda mais o planejamento e execução de projetos.

Esse cenário, infelizmente bastante corriqueiro, assemelha-se a um jogo de sete erros. Entre as principais (e também mais incorretas)  formas de mensurar a produtividade de equipe estão:

  • Automação da análise de código (com casos totalmente absurdos e arcaicos como a quantidade de linhas de código escritas): como se escrever mais códigos, significasse mais produtividade;
  • Retorno financeiro sobre a entrega de projetos: como se trazer mais dinheiro para o negócio significasse mais produtividade;
  • Velocidade de entrega de um projeto: como se trabalhar mais rápido significasse mais produtividade, e
  • Mais tempo de ocupação e longos períodos de trabalho: como se trabalhar por mais tempo significasse mais produtividade.

O planejamento de tempo não pode envolver apenas metas ou desejos a serem alcançados, devem ser baseados em prazos de viabilidade reais. A automação da análise de código, por exemplo, é um método fadado à manipulação e, por consequência, ao fracasso. Ou será que alguém imagina que um desenvolvedor não poderia alterar esses dados ou se motivar a produzir de forma não eficaz para bater metas ilógicas?

A consideração de aspectos de rentabilidade também não é necessariamente eficaz. Nem sempre entender qual é o retorno financeiro de uma equipe demonstra a real entrega. É possível que alguns produtos envolvidos tenham uma grande demanda, mesmo que a entrega dos programadores seja ruim (por fatores comerciais que estão fora do controle), ou mesmo o contrário, quando ótimos serviços tecnológicos demoram a ter um bom retorno monetário.

Outro ponto importante é a velocidade: um índice de previsão, que muitas vezes é confundido com um dado de produtividade. Medir a velocidade de uma equipe para entender a quantidade de trabalho que pode abraçar, para calibrar estimativas e ajudar no planejamento podem, sim, fazer uma grande diferença, mas são informações que só fazem sentido dentro de um contexto, logo, comparar a agilidade é muito prejudicial, além de desmotivante. Nem sempre quem trabalha mais rápido, o faz de melhor forma.

>> Leitura recomendada: Os melhores aplicativos de gestão gratuitos

Como solucionar isso?

Um ponto interessante a ser levado em conta é a observação da qualidade do código produzido por desenvolvedores. E, nesse sentido, alguns itens podem ser ótimas unidades de medida da produtividade:

  • O prazo de entrega;
  • O número de problemas resultantes do trabalho (bugs e outros), e
  • O esforço necessário para corrigi-los.

Claro, é fundamental, que todos esses aspectos (seja os citados ou outros) sejam considerados em conjunto. Suponhamos que um desenvolvedor sempre entregue o que é solicitado dentro ou antes do prazo determinado, mas as demandas de retrabalho sobre o que entrega são muito grandes, por suas aplicações já nascerem repletas de bugs. Sim, bugs fazem parte da vida, mas avaliar seus tipos (e você pode usar técnicas excelentes para isso) pode ser a forma mais efetiva de entender a produtividade de um profissional.

Se um bug é ocasionado por um erro de digitação, mesmo que ele ocorra, é muito melhor do que outro motivado por um grande problema estrutural, por exemplo. Se alguém está constantemente atrasado em suas entregas, mas costuma entregar projetos com pouca margem de erro, pode-se dizer, por exemplo, que é tão ou mais produtivo do que um colaborador que entrega suas demandas mais rapidamente.

Se você é líder, pode contar com softwares de gerenciamento, para verificar o escopo, responsabilidade, status e tempo médio de entrega de um projeto (aliás, pode parecer suspeito, mas o Runrun.it é uma excelente opção), e esse dado é bastante relevante, mas é justamente a partir deles que o aspecto analítico entra em ação. Ainda que o reloginho esteja marcando o período necessário para entregar uma demanda (e que, futuramente, esse dado ajude na determinação de prazos), é impossível não considerar todos os aspectos subjetivos envolvidos. O ideal é encontrar unidades de medida que façam sentido para a evolução do negócio e, por mais difícil que seja, transcendam os números.

Agregando processos para gerenciar o tempo

Chegamos até aqui e você pode estar ansioso por alguma fórmula mágica para solucionar questões relativas à administração de tempo. Sabemos de todos os dramas que envolvem o desenvolvimento e infelizmente não a temos, mas, como contrapartida, temos uma excelente notícia: ao invés de se apropriar de técnicas fechadas, você pode contar com conhecimentos multidisciplinares para aprimorar ainda mais sua rotina produtiva – e que podem servir tanto para quem executa, quanto para quem lidera.

O passo básico está no entendimento de como você funciona. Não adianta lutar contra você mesmo. Entenda em quais horários você funciona melhor, selecione-os para executar tarefas mais complexas, e deixe aqueles momentos em que seu desempenho costuma desacelerar para realizar reuniões e aprimorar seus conhecimentos. Trabalha melhor no silêncio, ouvindo música, prefere quebrar sua produção em períodos de tempo? Perceba suas dificuldades e facilidades, e agregue a elas processos comprovadamente bem sucedidos.

Torne-se ágil

Pode parecer chover no molhado, mas os métodos ágeis dominam atualmente o universo do desenvolvimento. Scrum, Extreme Programming, Lean, Kanban, são muitas as opções. Para a gestão de tempo são ideais, já que consideram as semanas como unidade de medida. Por centrarem a produção em curtos períodos de tempo (Sprints), de 15 dias, geralmente, permitem a experimentação e rápida resolução de problemas. A extinção de reuniões infinitas e a qualquer momento também é um ponto relevante das metodologias ágeis.

Encontros no início das sprints, reuniões diárias realizadas de pé para poupar tempo, e conferências de retrospectiva no final do período, ajudam a evitar distrações e interrupções e incentivam a produtividade. Outro ponto importante da agilidade: a priorização de tarefas. Os desenvolvedores deixam a síndrome da troca de abas e passam a focar em tarefas realmente prioritárias.

>> Você vai gostar de ler: Por que perdemos prazos e como acabar com isso?

Seja adepto ao time tracking

Como deixar o Pomodoro de lado? É inevitável falar sobre ele, ainda mais em um cenário repleto de interrupções. Intercalar períodos de tempo de produção e folga, é uma maneira muito eficaz. Ao monitorar esses períodos, você também pode compreender melhor seu funcionamento. Existem diversas maneiras de fazer isso, seja por meio de softwares ou mesmo cronômetros. O importante é entender que você não funciona em 100% do tempo como deveria, por isso, pausas são importantes (com moderação).

>> Você vai gostar de ler: 7 táticas polêmicas de administração do tempo que costumam funcionar

Utilize as ferramentas certas

Repensar as ferramentas e processos que você está utilizando. O uso de frameworks de desenvolvimento, de plataformas de detecção de bugs e editores de códigos mais automatizados, por exemplo, são apenas algumas das formas de ampliar a produtividade. As soluções no mercado são diversas, mas temos duas excelente opções.

A primeira, é claro, é o Runrun.it, que pode ser muito bem aplicado à rotinas de TI. Não estoure prazos por conta de um turnover elevado, pelas constantes mudanças de briefing ou por correções infindáveis de erros. Além de um excelente software de gestão de tarefas, tempo e talento, que vai ajudar a respeitar os prazos prometidos ao cliente, o Runrun.it permite a aplicação de diferentes metodologias de desenvolvimento. Clique aqui para saber mais!

Depois de tudo planejamento e bem estruturado, imagine,poder focar totalmente na programação e ficar tranquilo com relação ao funcionamento eficaz de todas as suas aplicações. Não precisa mais imaginar! Pensada justamente para desenvolvedores, a Umbler considera todos os princípios fundamentais para ampliar a produtividade de desenvolvedores. Oferece soluções de cloud sites e email profissional, em um serviço totalmente focado no usuário, que prioriza feedbacks de clientes e foca na praticidade e na ausência de burocracia. Em um sistema de créditos, com pagamento sob demanda, e um painel de gerenciamento facilitado, você poupa tempo, sendo notificado quando e como quiser sobre o desempenho de seus site e aplicativos. Ficou curioso? Clique aqui e ganhe R$100 em créditos para testar.

gestão de tempo

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios estão marcados com *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>