PSP (Personal Software Process) com o Eclipse - Parte 1: Tapando os Buracos do Tempo!
Primeiro artigo da série: PSP para Leigos
Você chega para trabalhar as 8:30. Examina a sua lista de tarefas do seu projeto alvo, cujo número está em cinco tarefas abertas. De forma entusiástica, você começa a examinar a primeira tarefa.
As 8:45, o telefone toca. Você é chamado para uma reunião sobre um problema residual de um outro projeto. Você fica nesta reunião até as 10:00.
Às 10:10, o seu colega do lado o chama para resolver um complicado problema de depuração. Mais vinte minutos se passam sem que você se dê conta.
Você consegue retornar para o seu projeto, mas somente até 11:00. Neste momento um cliente telefona e interage com você por mais quinze minutos.
Às 11:15, você para ler apenas 3 ou 4 emails - afinal, ninguém é de ferro. Infelizmente você precisa responder dois deles e gasta mais vinte minutos.
…
As 18:00, você está estressado e cansado. A sua lista de tarefas ainda está com 4 tarefas em aberto, e o seu tempo foi dragado por vilões invisíveis. Infelizmente você apropria no seu timesheet 8 horas no seu projeto original, vai para casa desaminado e pensa: “Para onde foi o meu tempo?”.
Se você já viveu o sintoma acima, você realmente trabalha com desenvolvimento de software. Neste trabalho, o volume de interrupções é enorme e se não tivermos ferramentas para gerenciar o nosso tempo, não temos ciência sobre a nossa real produtividade.
Um dos objetivos do PSP é aumentar a nossa produtividade. Isso somente é possível através de medição. A primeira lei da gerência é: “Não se gerencia o que não se mede”. O PSP, então, trabalha fortemente a auto-gerência do tempo, i.e, mecanismos onde você irá vigiar o seu tempo rigorosamente para saber o que você faz durante um típico dia de trabalho.
O Mylar, plugin gratuito para o Eclipse, permite que você faça este controle exigido pelo PSP. Isso é realizado através do conceito de tarefas pessoais (Personal Task). Dentro do Eclipse com este plugin já instalado, você tem a possibilidade de criar uma lista de tarefas, como mostrado na figura abaixo:
Um característica interessante deste plugin é que voce pode ativar uma tarefa. Basta clicar com o botão direito em uma tarefa e clicar “Activate”. Ao realizar este processo, o Mylar usa o mecanismo de instrumentação do Eclipse e começa a contar (em minutos e segundos), quanto tempo você está gastando naquela tarefa. Se um telefone tocou, se você parou para lanchar, se você foi interrompido por outro evento, você apenas precisa se lembrar em clicar sobre a tarefa com o botão direito novamente e clicar em “Deactivate”. A contagem é interrompida e você pode retomá-la a qualquer instante ou ativar uma outra tarefa.
Em qualquer instante, você pode examinar quanto tempo você ainda possui em uma tarefa ou quantos minutos já foram decorridos. No exemplo acima, 2:34 minutos já foram gastos da tarefa “Implementar Tela - Cadastro de Correntista”.
Um uso não intrusivo do Mylar, para quem nunca trabalhou com o paradigma de programação focada em tarefas, é usá-lo apenas para os eventos maiores de um dia (ex: Almoços e Reuniões). Um efeito interessante, em médio prazo, é perceber que o seu dia típico de trabalho não possui 8 horas (o que é senso comum). Você talvez descubra que o seu dia típico no seu projeto seja de 7, 6 ou mesmo 5 horas. Este número é rico e deve ser reportado à sua gerência para a criação de cronogramas mais realistas.
Estudiosos de medições de projetos, como por exemplo Capers Jones, já realizaram estatísticas no mercado Brasileiro e constataram que uma pessoa de TI tipicamente trabalha 132 horas por mês. Se considerarmos que temos 22 dias úteis em um mês, chegamos ao valor de 6 horas por dia. Interessantemente, conheço empresas de grande porte no Brasil que tem como norma em seus cronogramas de projeto não alocar pessoas em projetos mais de 6 horas por dia. Sábia decisão!
O efeito subliminar de medir o próprio desempenho é muito interessante. Talvez você descubra na primeira semana que você somente está trabalhando no seu projeto 60% ou 65% do seu tempo útil.
Com esta informação em mãos, você reage quase que por instinto aos vilões de tempo.
Recomendo que você instale o Mylar e passe a organizar as suas tarefas semanais. Na primeira semana, organize apenas 4 ou 5 tarefas. Progressivamente, melhore o seu nível de controle. Os efeitos são mágicos uma vez que você passa a ter controle do seu tempo.
O Mylar pode ser baixado deste site - http://www.eclipse.org/mylar/dl.php.
Obviamente, ser eficaz não é ser eficiente. O fato de você ter 8 horas disponíveis não quer dizer que você não terá retrabalho. Um outro princípio fundamental para aumentar a sua produtividade é fazer as coisas corretamente, com pouco retrabalho. A gerência de seus defeitos, erros e retrabalho é outro princípio fundamental do PSP que exploro no blog: PSP (Personal Software Planning) com o Eclipse - Parte 2: Inseticidas no seu código!
[…] PSP (Personal Software Planning) com o Eclipse - Parte 1: Tapando os Buracos do Tempo! […]
Pingback de Marco Mendes´s Blog » PSP (Personal Software Planning) com o Eclipse - Parte 0: PSP para Leigos! — 18 de Outubro de 2006 @ 19:53
Muita boa exposição Corélio!
A propósito tem um site sobre PSP bem interessante, do Pablo Tavares, na época, mestrando do curso de Engenharia de Produção da UFSC.
http://www.psphome.hpg.ig.com.br/
Comentário de Alcebiades — 4 de Novembro de 2006 @ 15:13
Corélio, MTO legal suas colocações sobre o PSP…
O que achei mais interessante foi a abordagem que você utilizou: ela tem como foco cronogramas realistas e programadores conscientes dos vilões do tempo, ao contrário da abordagem nada amigável e descabida, que assusta os desenvolvedores: “sejam máquinas e trabalhem as 8h que lhe são pagas”…
Aguardo ansiosa os demais da série.
Abraço pra vc.
Cintya.
Comentário de Cintya — 7 de Novembro de 2006 @ 08:37
[…] MyLyn - Um projeto simples, mas excepcionalmente interessante. O MyLyn é uma ferramenta para micro-gerência de projetos e sucede o projeto Mylar, do qual escrevi um blog aqui há algum tempo. O MyLyn permite que uma pessoa controle o tempo gasto nas suas tarefas ou nas tarefas do seu time, bem como fazer o controle de ciclo de vida de atividades, defeitos, melhorias e outros tipos de ocorrências, integrado ou não a itens de configuração do Eclipse (códigos, arquivos, modelos e outros elementos de projetos). O MyLyn deve permitir que desenvolvedores, líderes técnicos e mesmo gerentes consigam implementar conceitos de gerência e agile management de forma bastante transparente e não intrusiva. […]
Pingback de Marco Mendes´s Blog » A Nova Lua de Júpiter vai aumentar a sua produtividade - Parte 2 — 2 de Julho de 2007 @ 22:55
Ótimo artigo!!!!
Estou começando num emprego novo e quero muito evitar erros do passado.
Alguém sabe dizer se o MyLar, ou mesmo o MyLyn é integrável também ao JBuilder versão 2007, pois essa ferramenta é baseada no Eclipse ?
Obrigado.
Comentário de Rolim Silva — 30 de Julho de 2007 @ 17:36
[…] Dado que a base técnica do projeto tenha sido criada, é hora da economia de escala. Neste ponto, podemos ter vários desenvolvedores operando em paralelo (como uma linha de montagem) para implementar os diversos casos de uso de um sistema. Entretanto, antes devemos preparar a logística de operação do time. Temos já um líder técnico de desenvolvimento para suporte imediato a dúvidas do time? Temos um processo micro-gerência nas mãos? Temos um criterioso processo de controle de mudanças definido? Temos ferramentas de micro-gerência como o Mylin para controle fino do tempo gasto por cada desenvolvedor? O ambiente e políticas de gerência de configuração está estável? Conheci (e conheço) gerentes ingênuos que fizeram (e ainda fazem) a alocação de várias pessoas ao projeto sem ter respondido a estas questões. O resultado é ….caótico. Tarefas redudantes, re-trabalho, conflitos no versionamento do código, equipes estressadas e outros sintomas se manifestam. […]
Pingback de Marco Mendes´s Blog » Matar um Elefante é Facil. Difícil é remover o cadáver! — 17 de Setembro de 2007 @ 21:28
Amigo, vc não possuir Rss não ?
Comentário de samuca — 2 de Outubro de 2007 @ 11:38
[…] Dado que a base técnica do projeto tenha sido criada, é hora da economia de escala. Neste ponto, podemos ter vários desenvolvedores operando em paralelo (como uma linha de montagem) para implementar os diversos casos de uso de um sistema. Entretanto, antes devemos preparar a logística de operação do time. Temos já um líder técnico de desenvolvimento para suporte imediato às dúvidas do time? Temos um processo de micro-gerência nas mãos? Temos um criterioso processo de controle de mudanças definido? Temos ferramentas de micro-gerência como o Mylin para controle fino do tempo gasto por cada desenvolvedor? O ambiente e políticas de gerência de configuração está estável? Conheci (e conheço) gerentes ingênuos que fizeram (e ainda fazem) a alocação de várias pessoas ao projeto sem ter respondido a estas questões. O resultado é ….caótico. Tarefas redudantes, re-trabalho, conflitos no versionamento do código, equipes estressadas e outros sintomas se manifestam. […]
Pingback de Gerenciamento de Projetos « Regina F. Silva’s Weblog — 12 de Agosto de 2008 @ 12:06