Incentivar os engenheiros de software a rastrear o tempo


24

Como posso incentivar meus colegas de trabalho a rastrear o tempo que gastam resolvendo problemas e implementando recursos? Temos software para fazer isso, mas eles simplesmente não inserem os números.

Quero que a equipe melhore no fornecimento de estimativas de projetos comparando nossas estimativas anteriores com o tempo real gasto. Suspeito que meus colegas de trabalho não vejam o benefício pessoal, uma vez que não estão frequentemente envolvidos no cronograma do projeto.


6
Talvez o problema seja que eles precisam digitar os números em vez de fazer com que o software rastreie o tempo e apenas solicitando periodicamente que definam a descrição da atividade e pressione o registro. Eu escrevi um programa, para mim, para abordar exatamente isso, porque eu passava o dia inteiro na zona e depois aparecia e tinha dificuldade em gerar meu "registro de horário" para o dia. Veja softwaremonkey.org/Program/TimeKeeper
Lawrence Dol

3
Basta fazer com eles o que foi feito comigo em uma empresa em que trabalhei. Designe uma tarefa para ele, faça com que ele passe 3 dias seguidos nas reuniões que você frequenta e, imediatamente após as reuniões, exija saber por que a tarefa não foi concluída.
user16764

2
Onde coloco os números para o momento em que resolvo um problema no caminho de casa?
Pieter B

11
@PieterB IMO Se você gasta regularmente tempo suficiente pensando em problemas de trabalho no carro para aumentar sua produtividade, acho que o tempo deve ser rastreado para as estimativas do projeto, mesmo que não sejam compensadas. Chegou a hora de você gastar o pensamento em sua mesa. Por outro lado, se é uma revelação única no carro, não acho que valha a pena rastrear, já que não é algo em que você basearia uma estimativa de projeto.
M. Dudley

11
@PieterB Definitivamente, uma área cinza. Tudo depende se é útil rastrear ao fazer cronogramas e estimativas de projeto.
M. Dudley

Respostas:


41

Suspeito que meus colegas de trabalho não vejam o benefício pessoal, uma vez que não estão frequentemente envolvidos no cronograma do projeto.

Isso é corrigível.

Envolva-os no agendamento.


2
Há uma citação sobre isso, mas a maioria dos meus livros ainda está guardada. Algo sobre os engenheiros serem os melhores no agendamento, portanto, eles devem estar envolvidos no agendamento de um projeto a partir do primeiro dia. Quero dizer que vem do Rapid Development de Steve McConnell, mas não tenho certeza.
Thomas Owens

4
Vi recentemente em um projeto meu (projeto de 6 meses) em que nosso PM alocou 4 horas para uma integração com outro aplicativo. Basta dizer que a integração levará um tempo substancial e eu e outro desenvolvedor pensamos que isso era bastante cômico.
Chris

@ThomasOwens Ainda me confunde toda vez que me dizem quanto tempo algo levará por um BA ou PM. Essa falácia é tão completamente desmascarado é entristecedor para perceber isso apenas significa que nenhum dos BAs ou PMs fazer a menor leitura sobre a indústria em que trabalham.
Jimmy Hoffa

21

Joel Spolsky escreveu um artigo sobre agendamento baseado em evidências que pode ajudá-lo a encontrar alguns argumentos.

Você precisa convencer seus colegas de trabalho de que melhores habilidades de estimativa podem ajudá-los a produzir um software melhor. Aqui estão alguns pontos a favor do rastreamento do tempo da tarefa:

  • Se você tiver um prazo arbitrário definido pelo gerenciamento, boas estimativas indicarão o que você realmente pode realizar nesse período. Como bônus, você tem alguns gráficos interessantes para convencer o gerente de que você sabe do que está falando.
  • Você precisa pensar no projeto com mais cuidado. O artigo ao qual vinculei declara: "Você precisa dividir sua agenda em tarefas muito pequenas que podem ser medidas em horas ". Como você pensou em praticamente todas as facetas do projeto (espero escrever uma especificação !), É muito menos provável que você se surpreenda com algo em que não pensou.
  • Faz de você um desenvolvedor melhor. Você verá com o tempo quais tipos de tarefas você costuma subestimar, para que possa passar algum tempo melhorando nessas tarefas específicas, em vez de otimizar cegamente.

11
+1, para o segundo ponto. Descobri que quaisquer estimativas que usem medidas de tempo em dias ou semanas sempre serão imprecisas em termos de dias ou semanas. Se você estiver de folga por algumas horas, sempre poderá recalcular as outras estimativas com mais precisão. E escrever uma especificação ou construir um artefato de PoC gera estimativas mais precisas, embora não seja tão simples elaborar estimativas para esses itens.
Vineet Reynolds

10

Você pode fazer isso da maneira padrão - cenouras e palitos.

A cenoura (s) neste caso pode ser "melhor estimativa futura entendendo nossa velocidade atual" - mas você teria que seguir adiante.

Seu comentário de que eles não costumam estar envolvidos no cronograma do projeto pode fazer com que seja uma venda difícil.

O mais alto entre eles, principalmente se você tem seguidores do PSP , é que você está ajudando-os a melhorar.

O bastão mais comum (bater com eles, não segurar a cenoura na frente deles) é "é obrigatório, faça". Embora não seja muito motivador; pelo menos a posição é clara.

Por fim, o software que você está usando contribui para a reticência deles? É desajeitado? Eles precisam procurar códigos de tempo no sistema A antes de dedicar seu tempo ao sistema B? É muito granular, não permite folga e exige uma contabilidade de 8 horas por dia. Torne-o o mais livre de atritos possível para também ajudar na adoção.

Boa sorte


5
+1 no último parágrafo. Torne mais fácil rastrear o tempo do que não fazê-lo, e de repente ele será feito magicamente.
Scott

5
Ótimo último ponto - eu odiava ter que procurar um número de 8 dígitos quando uma lista suspensa baseada na Web poderia ser escrita em 10 minutos (minha estimativa usando os dados de estimativa que mantenho em minha mesa). Além disso, eu não usaria termos do Management Bingo como "entender nossa velocidade atual", mas sim "você não terá que fazer muitas horas extras obrigatórias e não pagas tentando obter as coisas no final do cronograma se tornarmos nossos cronogramas realistas. começar com."
Wonko the Sane

@Wonko +1 para "dados de estimativa" :-)
sdg

8

Na minha experiência, a seguir estão os problemas com a maioria dos softwares de rastreamento de tempo:

  • O desenvolvedor não tem a capacidade ou autoridade para dividir uma tarefa em subtarefas mais facilmente estimadas em tempo real.
  • Não há uma boa maneira de explicar subtarefas que você não conhecia até começar a trabalhar em algo, uma situação que surge o tempo todo no desenvolvimento e na depuração de software.
  • O tempo gasto é inserido após o fato, quando é difícil lembrar exatamente quanto esforço concentrado foi feito em uma tarefa e quanto foi para reuniões, perguntas de colegas, revisões por pares e outras despesas gerais.
  • Não há uma boa maneira de contabilizar tarefas não rastreadas. No final do dia, você adia 8 horas, apesar de seis delas terem passado em reuniões e coisas assim?
  • Não há uma boa maneira de explicar e comunicar incerteza em suas estimativas.

Eu lidei com muitos desses problemas, começando a usar a técnica pomodoro para mim. Se trabalho 25 minutos ininterruptamente em uma tarefa, ela é registrada imediatamente e minhas estimativas são feitas em termos desses intervalos ininterruptos. Ainda estou trabalhando na incorporação de agendamento com base em evidências para comunicar a incerteza e em traduzir meu próprio rastreamento refinado nas estimativas de agendamento grosseiro que as PMs gostam, mas definitivamente tem sido uma melhoria até agora.


6

Bom caminho

Use um software que torne isso fácil e quase transparente, como por exemplo o Mylyn. Combine-o com ferramentas como, por exemplo, um gráfico de queima de horas.

Maneira ruim

Forçá-los a preencher planilhas de horas tediosas, nas quais é necessário especificar manualmente projeto, tarefa, datas e horários exatos etc.


3
Espero que você tenha preenchido o formulário tt-proc-1b para registrar o tempo gasto respondendo a essa pergunta e obtendo aprovação administrativa para concordar com o tempo gasto. e você preencheu o formulário tt-est-1a para registrar o tempo estimado que gastaria em responder a essa pergunta antes de começar a trabalhar para respondê-la?
Gbjbaanb

mylyn / tasktop ... não é perfeito, mas com certeza ajuda bastante no rastreamento do tempo, como efeito colateral de outra ferramenta que traz benefícios reais diretamente aos programadores ... não é perfeito, mas é maravilhoso!
Newtopian

2

Se você não é o líder da equipe / PM, então você vai lutar com este. As pessoas não gostam de ouvir seus colegas se isso exigir que eles trabalhem mais do que o absolutamente necessário (na minha experiência, esse é o caso, de qualquer maneira). Tente conversar com o líder da equipe ou com o gerente geral e, se eles concordarem com o seu caso, provavelmente poderão tornar obrigatório o registro de horas (é o que aconteceu onde atualmente trabalho).

Se você é o líder da equipe / PM, precisa ser mais vigoroso em seu papel: essas pessoas estão lá para fazer o que você manda (efetivamente), e se você precisar de mais informações para fazer seu trabalho, peça que elas forneçam isso em formação. Se eles não estão dispostos a ajudá-lo a obter as informações, provavelmente porque eles não entendem por que é útil, tente conversar com eles para explicar como seus projetos geralmente ficam fora do cronograma / superestimados / o que quer que seja e porque está causando isso. você problemas, veja se você pode transformá-los!


2

Acompanhe seu tempo ou não seja pago. Milhões de pessoas fazem isso (consultores, advogados, etc.), por que não podem?

Alguns podem pensar que isso é bastante draconiano, mas não é. Se você trabalha na Starbucks, precisa limpar o banheiro . Se você trabalha em um banco, usa terno e gravata para trabalhar todos os dias , e se você é um engenheiro de software em uma equipe que precisa que você acompanhe seu tempo, faça isso !

Às vezes, temos que fazer coisas em nossos trabalhos que não gostamos. Somos todos meninos e meninas grandes, acho que deveríamos ser capazes de lidar com isso.


11
Exatamente o que eu ia dizer. Especialmente se você tiver clientes pagando a conta - de que outra forma você pode saber o que cobrar? Garanto que um salário atrasado, porque alguém não carregou seu tempo, resolveria o problema para sempre.
HLGEM

2
Essa é uma excelente maneira de ser processada por não pagar horas extras aos funcionários que você está reivindicando como isentos de FLSA, mas que não se qualificam para isenção porque você está pagando com base no desempenho.
Wooble

11
@Wooble: Obviamente, não defendo ações que o tornariam vulnerável a ser processado ou maltratasse seus funcionários. Mas a ideia é a mesma. Deve haver reprecussões por não fazer seu trabalho. E, em muitos casos, acompanhar o seu tempo faz parte do seu trabalho. Então, talvez você não pague os salários, mas avise, coloque em liberdade condicional, seja o que for que faça sentido, mas o fato é que você deve fazer seu trabalho . É egoísta não fazê-lo, porque afeta todos os membros da sua equipe também.
Richard

@HLGEM: Seu ponto é exatamente correto. Se seu contrato com o cliente é baseado em T&M, é melhor você controlar seu tempo ou está sendo desonesto.
Richard

Infelizmente, não estou em condições de exigir nenhum acompanhamento de tempo, portanto, preciso encontrar métodos alternativos.
M. Dudley

1

Obviamente, a melhor resposta depende inteiramente da mistura psicológica de sua equipe. Eles são competitivos? Crie um concurso recorrente que premie o vencedor por inserir seu tempo no sistema. Ajuste e afine o concurso para que os jogadores pensem que é justo e divertido. Faça disso um jogo.

Talvez eles estejam preocupados que, se houvesse transparência em quanto tempo eles realmente gastaram na execução de uma tarefa, haveria consequências negativas. Eu sempre me perguntei sobre o design de uma "ferramenta de rastreamento de esforço" que era anônima e onde os buckets eram suficientemente altos o suficiente para haver vários indivíduos despejando quantias gastas em esforço em cada bucket, para que colaboradores individuais não pudessem ser destacados. Mesmo apenas a obtenção de custos de esforço mais precisos para baldes de alto nível do projeto pode ser um dado útil para o planejamento do projeto e a velocidade geral da equipe, mas isso evitaria o "OMG, não acredito que Joe tirou 3x sua estimativa para fazer algo tão simples. . "ou outras coisas que as pessoas têm medo de relatar em um sistema tradicional de controle de tempo.

Eu acho que esses são apenas dois exemplos, mas, na verdade, ter uma boa noção da composição psicológica de sua equipe fornecerá a resposta certa para como incentivar ou encorajá-los a contribuir com suas informações de custo de esforço.


+1 para a transparência. Eu tive que fazer um sistema de controle de tempo uma vez e, deliberadamente, tornei muito difícil para a gerência escolher o horário exato de início e término, em vez disso, eles podiam ver o tempo total gasto. Dessa forma, não importava quando um membro da equipe fazia o trabalho, apenas que ele estava feito e quanto tempo levou. Um pequeno detalhe, mas ainda assim.
James

1

Pense no motivo pelo qual eles não respondem bem a essa solicitação. Não pense apenas que eles são preguiçosos ou evitam esforços.

Os desenvolvedores que evitam produzir evidências geralmente são

  • Preocupado com a forma como pode ser usado e / ou
  • Preocupado com a validade dos dados

É por isso que a estimativa baseada em pontos e o tamanho da camisa decolaram nos últimos anos. Ele leva em conta a natureza muito incerta do processo de estimativa e permite que a "mágica" (também conhecida como média das incertezas) assuma o controle do agendamento.

E, embora possa não parecer lógico, funciona principalmente - pelo menos tão bem quanto um sistema baseado em horas ou dias. Também é muito difícil agredir uma equipe ou indivíduo de cabeça para baixo com o que eles alcançaram em um mês, se isso for feito de maneira arbitrária.

O Scrum também permite que os desenvolvedores controlem a velocidade, o que significa que eles estão prometendo alcançar o que você escolher entre A, B e C ou A, Y e Z. Quando eles fizeram essa promessa, os desenvolvedores não gostam de falhar; mas se você fizer essa promessa para eles, eles não se importarão. A culpa é sua se estiver errada.

Entendo que você está dizendo que não usaria as reestimações dessa maneira, mas qual a certeza das pessoas de sua equipe sobre isso?


1

Qualquer ferramenta que exija que os programadores dediquem ainda mais tempo à programação não é necessariamente uma grande coisa. Os programadores já têm muita sobrecarga, não estão tendo reuniões de cinco minutos e então estão programando uma tempestade.

Se você tem o poder, pode forçá-los a fazê-lo. Mas, de longe, a melhor solução é criar uma ferramenta perfeita que a torne indolor. Não sei como fazer isso no design, mas na codificação, você deseja registrar as alterações feitas no ambiente de desenvolvimento. Isso costumava ser uma barra impossivelmente alta, mas se você estiver usando algo como o Eclipse, não é tão ruim assim, talvez já exista. Dessa forma, você pode medir quanto tempo está passando em cada arquivo e, potencialmente, em Java, em cada método. São informações muito mais refinadas do que as solicitadas, e podem ser bastante precisas.

Da mesma forma, se você tiver uma ferramenta para inserir desenhos, poderá interceptar lá.


0

Depende de como e por que você deseja que eles controlem o tempo, também estamos contando o tempo no escritório ou o tempo gasto no trajeto para trabalhar pensando também no problema?

O agendamento do projeto é difícil e há uma boa chance de as métricas obtidas não serem tão úteis quanto você imagina. Como não há dois problemas iguais, uma tarefa pode levar oito horas, enquanto outra pode levar 32 horas para terminar.

Você pode examinar o agendamento baseado em evidências, pois o desenvolvedor estima quanto tempo levará uma tarefa e, em seguida, ajusta-se ao longo do tempo com base na qualidade das estimativas; no entanto, não é tão bom para projetos grandes, pois talvez você não conheça todas as tarefas antecipadamente. Para projetos grandes, é melhor analisar projetos anteriores de escopo semelhante e usá-los como parâmetro, em vez de tentar agregar estimativas individuais.


0

Tente apresentá-los a sistemas de organização pessoal, como a técnica Pomodoro, por exemplo (existem muitos outros, mas é o que estou tentando agora)

A técnica usa um temporizador para dividir os períodos de trabalho em intervalos de 25 minutos chamados 'Pomodori' (da palavra italiana para 'tomates') separados por intervalos curtos. Intimamente relacionado a conceitos como timeboxing e desenvolvimento iterativo e incremental usado no design de software, o método foi adotado em contextos de programação em pares. O método baseia-se na ideia de que pausas frequentes podem melhorar a agilidade mental.


0

Em vez de convencê-los a inserir seus números, use um software que funcione sem esforço. Estou usando o ScreenAware: https://www.screenaware.com/en/ Ele rastreia seu tempo automaticamente e o atribui aos respectivos projetos. Portanto, é sempre preciso e ninguém precisa mais adivinhar


Esta solução específica pode não funcionar para a pergunta geral do OP. Embora seja bom fornecer links, da próxima vez tente fornecer uma solução mais geral, a menos que o OP mencione especificamente a solicitação de soluções de software para o seu problema.
Neil

-1

Você já pensou em usar seu sistema de tickets existente? Nosso sistema de tickets monitora o tempo entre a criação de um ticket e quando ele é fechado. Se você criar tickets para tarefas e tornar um número de ticket um requisito para confirmar o código, estará obtendo mais retorno.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.