Controlando o tempo gasto em projetos de software.

Em reuniões com gerentes de projetos tenho escutado com freqüência durante as mais diversas discussões que precedem uma implantação de Team System a suposta necessidade de controlar o tempo gasto pelo desenvolvedor desde o momento que ele senta na cadeira até o final do dia quando ele levanta colocando um relógio no estilo cronômetro para registrar cada "espirro" do mesmo no formato parecido com o reality show Big Brother.

Introdução
Esse é sempre um tema que rende calorosas e sadias discussões. Eu também já me perguntei muito lá no passado sobre qual o ganho desse controle e o porquê não se tem isso por padrão no Visual Studio Team System. Na verdade essa linha de pensamento praticamente parece que já vem definido como padrão em nossas mentes quando o assunto é gerenciamento de projetos e antes de continuar vale ressaltar que estamos aqui nesse momento justamente para propor alternativas a esses valores padrões e discutir sobre o tema.

Controlado as horas
Em todos os ensaios que fiz nos projetos que venho trabalhando ao longo dos anos na área de consultoria e conversando com outros amigos também especialistas no assunto formei a minha opinião contra essa primeira linha de pensamento.

Voltando a nosso projeto, nossa primeira expectativa inicial é entregar o projeto ou pelo menos deveria ser. Então vamos partir do principio que você já fez toda sua estimativa e planejamento de suas atividades. Se você programar uma tarefa para ser realizada em 4 horas quando o desenvolvedor pegar essa tarefa ele tem até 4 horas para fazer. Se medirmos o tempo dele respondendo emails, atendendo telefone e em outras atividades não sincronizadas com o projeto não vai nos garantir o principal objetivo que é entregar. Em função desse mundo de controles acabamos por perder o foco de controlar as entregas.
A meu ver o que temos que nos preocupar é com o real compromisso dele com foco em entregar aquela tarefa que deve ter dois status: entregue / não entregue.

Para você não interessa se ele gastou de duas a quatro horas e sim que está cumprindo o cronograma proposto baseado nas métricas de produtividade do grupo no projeto. É muito comum premiarmos os profissionais mais produtivos no projeto oferecendo nada mais nada menos que mais trabalho. Imagino que você deve está pensando nesse momento que isso já aconteceu com você ou você já fez com algum colaborador. Conforme já conversamos esse é mais um valor padrão que carregamos no gerenciamento de projetos.

Dai se ele tem uma atividade planejada pra ele o que espero é que faça no prazo estipulado com a quantidade de horas definidas, pois se não fez não cumpriu. E o tempo perdido com outras atividades extras não planejadas é de inteira responsabilidade do desenvolvedor que desviou de suas funções.

E o Visual Studio Team System

Para você que está acompanhando essa discussão já deve ter lido bastante coisa sobre a plataforma Visual Studio Team System que é uma solução da Microsoft para o promissor mercado de Application Lifecycle Management (ALM) cobrindo todos os processos de gerenciamento de projetos de software permitindo integração entre todos os papéis envolvidos: Patrocinador do projeto, Usuário, Gerente de projeto, Arquiteto, Desenvolvedor, Testador e Administrador do banco de dados (DBA).

A integração inicia diretamente do Microsoft Project que é a melhor ferramenta para gerenciamento de projetos do mercado. O gerente vai realizar seu planejamento normalmente da mesma forma que já usa o Microsoft Project no seu dia a dia com a diferença que as tarefas serão também publicadas no Team Foundation Server como itens de trabalho (Work Items) permitindo a distribuição para todos os colaboradores do projeto conforme figura 01 e figura 02.

clip_image002
Figura 01 – Planejamento realizado diretamente do Microsoft Project

clip_image004
Figura 02 – Visualizando Work Item no Team Foundation Server

Cada desenvolvedor vai alimentar o andamento de sua atividade e essa informação é atualizada diretamente no Microsoft Project trazendo para o gerente de projetos informações em tempo real sobre o andamento da atividade sem a necessidade de fircar mandando email. Toda comunicação fica padronizada e rastreada por meio das tarefas.

Mesmo assim eu ainda quero o relógio
Conforme conversamos no inicio se mesmo assim você acha que precisa “registrar o tempo do desenvolvedor sentado na sua cadeira” e não o tempo de produção, na plataforma do Team System não tem esse contador de tempo, mas tem um conjunto de WebServices que permite essa alimentação externa usando plug-ins com essa funcionalidade.

Comente esse artigo e sucesso em seus projetos!

[],

Ramon Durães
Software Engineer, MVP
2PC Professional Consulting
http://www.2pc.com.br

Para implementar um modelo de gestão estratégica em seu projeto
de software entre em contato com a 2PC.