Tarefas, histórias e tomates
Publicado em Developer
gmilk gnome gnu gpomo gtk gtracker hists icon linux pivotal tracker pomodoro rtm tarefas tray
Esse ano está sendo interessante. Após a correria de impostos e dívidas do começo do ano, e superação de algumas encanações pessoais, parece que o meu ritmo de alguns anos atrás está voltando. É, amigos, eu estava com a rotação reduzida fazia um bom tempo, aquele pique desde o tutorial de Ruby de uns bons anos atrás havia se esvaido bastante por N motivos, mas agora parece que estamos voltando à programação normal, ainda bem!
Alguns anos atrás fiz a minha empresa, que nem tem um nome fantasia legal ainda, e estávamos em um lance mercadológico pouco agressivo e mais no esquema de "come quieto", mas agora penso que chegou o momento de dar um gás na coisa e mostrar que estamos por aqui. Para ajudar nessa questão, eu já estava me "armando" tanto pessoal como profissionalmente com algumas ferramentas, entre elas o Remember the Milk e o Pivotal Tracker, e adotado algumas técnicas como pomodoros para executar minhas tarefas diárias.
Apesar das interfaces das ferramentas serem ótimas e o applet de temporizador do Gnome ser ótimo, eu ainda sentia falta de algo mais prático do que deixar ambos os sites abertos enquanto executava minhas tarefas/histórias e de conectar meus pomodoros com as ditas cujas, então desenvolvi algumas ferramentas para isso.
Funcionalidade
As funcionalidades apresentadas pelas ferramentas não incluem a inserção de tarefas e histórias. Como mencionei antes, as interfaces presentes nas ferramentas são ótimas e ricas em detalhes, e eu costumo fazer todo o meu planejamento antes em um rascunho em papel mesmo e logo após inserir todo o meu trabalho, com pouca ou nenhuma alteração ou inserção durante o trabalho. Fiz as ferramentas que somente me permitem completar ou alterar o estado do que foi previamente cadastrado. Talvez mais para frente eu adicione a funcionalidade de inserção,
Linguagem
A linguagem escolhida para as ferramentas foi Python. "Ué, você não é um cara de Ruby?", vocês podem perguntar. Antes de mais nada, sou um programador que utiliza e conhece várias linguagens, conhecendo algumas melhores do que as outras. Isso dito, Python já vem instalada com vários módulos, inclusive o PyGTK, no Ubuntu, que é a distribuição que eu uso atualmente, e ficou mais prático utilizá-la do que pedir para quem quisesse utilizar as ferramentas instalar Ruby e o Ruby-GNOME. Particularmente, eu prefereria ter feito em Ruby, apesar de Python também ser ótimo, mas vocês entenderam não é?
Ambiente
O ambiente para rodar todas as ferramentas é o Gnome, porém fiz todas pensando em ambientes que tem o GTK instalado juntamente com Python e alguns módulos. Todas utilizam o Gconf para guardar as suas configurações, e apenas uma utiliza o Gnome Keyring para armazenar a senha de maneira mais segura. Pretendo adaptar para armazenar as informações mesmo sem a presença do Gconf mais para frente, armazenando em arquivos escondidos no diretório do usuário.
Instalação
Todas as ferramentas estão disponíveis no meu Github. Não me preocupei (ainda) em fazer pacotes .deb ou .rpm para elas, então o esquema padrão de instalar para todas é clonar o repositório da ferramenta desejada e
sudo make install
e para desinstalar
sudo make uninstall
Todas tem tradução para pt_BR apesar das screenshots em Inglês.
Gmilk - Interagindo com o Remember the Milk
Algumas tarefas pessoais e profissionais eu mantenho no Remember the Milk, e queria uma maneira prática de visualizar e interagir com elas, para isso fiz o Gmilk. Ele fica como um ícone na tray bar:
que quando clicado, mostra um menu:
O Gmilk é bem simples: lista as tarefas do dia corrente, as do dia logo depois e as vencidas. Quando alguma é clicada, pode ser marcada como completa, após confirmação. Para utilizá-lo, é necessária a autorização da aplicação no site do Remember the Milk. Tem mais algumas informações sobre isso e sobre o estado representado pelos ícones no wiki do Gmilk.
Gtracker - Interagindo com tarefas e histórias do Pivotal Tracker
Com o Gtracker dá para controlar as suas tarefas e histórias nos vários projetos cadastrados no Pivotal Tracker.
Algumas características do Gtracker;
- Ele mostra apenas projetos com histórias pendentes. Suas histórias já terminadas não serão mostradas.
- Apenas histórias com estimativa de pontos serão controladas. Parece que não dá muito certo alterar o estado as histórias sem estimativa.
- As tarefas são mostradas em um submenu da história. Não é possível alterar o estado de uma história sem completar todas as tarefas, com a única exceção de que as histórias são alteradas para iniciadas se uma tarefa for completada.
- A atualização periódica e automática por enquanto não indica alterações nas tarefas e portanto não atualiza o projeto. Esse é um bug que já relatei para a equipe do Tracker e deve ser resolvido logo.
Para interagir com uma história, fazendo ela ser alterada para o próximo estado, é só clicar com o botão direito na história desejada. Existem algumas configurações para ajudar na visualização das histórias como separar cada história em duas linhas e inserir um separador entre elas, assim como uma janela que mostra algumas estatísticas de quantas tarefas tiveram seus estados alterados.
O programa vai fazer atualizações periódicas de acordo com o intervalo estabelecido, removendo os projetos que já tem mais histórias ativas e inserindo novas histórias, tarefas e projetos novos.
Gpomo - Controlando e conectando seus pomodoros
Com o Gpomo dá para controlar seus pomodoros, suas pausas, e ainda conectar cada pomodoro com uma tarefa do Gmilk ou do Gtracker (eles conversam através do Dbus). Quando iniciado, será apresentado o ícone do "tomate desabilitado" na tray bar:
As configurações do Gpomo são as seguintes:
- O tempo limite de cada pomodoro. Configurado por padrão para 25 minutos
- O tempo de cada intervalo entre os pomodoros. Configurado por padrão para 5 minutos.
- O tempo de cada intervalo a cada 4 pomodoros. Configurado por padrão para 20 minutos.
- Conectar cada pomodoro com um ponto de uma história. Mais sobre isso logo a seguir.
Para começar um pomodoro, apenas clique com o botão esquerdo no ícone do tomate. Ele ficará verde e irá "madurando" até ficar vermelho e piscar indicando poucos segundos para o fim do pomodoro, perguntando no final se foi um pomodoro válido ou se algum mala te interrompeu e você tem que cancelar o pomodoro. Após marcar um pomodoro como completo, o Gpomo vai "travar" e não deixar começar outro pomodoro até o tempo do intervalo correspondente terminar.Se o Gpomo detectar o Gmilk ou o Gtracker, ele permitirá conectar o pomodoro com alguma tarefa ou história presente, e terá o seguinte comportamento:
- Para cada pomodoro completado anexado à uma tarefa (tanto do Gmilk como do Gtracker), a tarefa será marcada como completa.
- Para cada pomodoro completado anexado à uma história do Pivotal Tracker *sem vincular o pomodoro aos pontos da tarefa*, a tarefa terá o seu estado migrado para o próximo na sequência. No Pivotal Tracker os estados são não-iniciada, iniciada, finalizada, entregue, aceita ou rejeitada
- Para cada pomodoro completado *vinculado aos pontos da tarefa*, será feita uma estatística indicando quantos pontos a tarefa tem e quantos pomodoros foram completados para ela, migrando o seu estado apenas quando os pontos forem alcançados. Isso é útil para criar a métrica de cada ponto da tarefa para um pomodoro, ou seja, cada ponto vale, por padrão, 25 minutos. O pessoal do Tracker indica fragmentar suas histórias em pequenos pedaços para melhor gerenciamento (tanto que tem o recurso de tarefas dentro das histórias mas aconselham aumentar a quantidade de histórias com poucas ou nenhuma tarefa). Uma pequena desvantagem é ter que completar a quantidade de pontos da tarefa para cada mudança de estado, mas geralmente eu utilizo esse recurso entre iniciar e finalizar, que é o "grosso" do meu trabalho atual, deixando os outros eventos para a interface web do Pivotal Tracker.
Existe uma janela de estatísticas que indica os pomodoros e pausas da sessão corrente.
Finalizando
Como um pequeno disclaimer, ainda estou trabalhando nas ferramentas, mas devem estar plenamente funcionais, já que as estou utilizando no dia-a-dia. Alguns recursos novos estão planejados e com certeza alguns bugs ainda existem (tomara que poucos!), mas elas estão aí para quem quiser usar. Eu vou começar a acelerar o ritmo tanto pessoal como profissional e espero que elas me ajudem a cumprir minhas metas daqui para frente, já que pretendo pisar fundo! :-)
Comentários
Comentários fechados.
Artigos anteriores
- Pull requests em modo raiz - sex, 22 de dezembro de 2023, 09:57:09 -0300
- Qual a idade do seu repositório? - ter, 27 de dezembro de 2022, 12:50:35 -0300
- Utilizando ctags em projetos Rails mais recentes - qui, 24 de junho de 2021, 08:23:43 -0300
- Fazendo o seu projeto brotar - seg, 15 de julho de 2019, 08:57:05 -0300
- Learn Functional Programming with Elixir - sex, 02 de março de 2018, 18:47:13 -0300
- Ambiente mínimo - Driver Driven Development - qua, 23 de agosto de 2017, 15:15:03 -0300
- Ambiente mínimo - repositórios de código - dom, 16 de abril de 2017, 13:02:14 -0300
- Ambiente mínimo - terminal e navegador - dom, 02 de abril de 2017, 21:43:29 -0300
- Utilizando muitas gems no seu projeto? - sáb, 29 de outubro de 2016, 11:57:55 -0200
- Desenvolvedores e inteligência artificial - seg, 11 de julho de 2016, 09:09:38 -0300
Guaracy, o lance é que já estava tudo pronto, eu estava inspirado, com pressa de usar e sem saco de fazer tutoriais de como instalar gems, etc e até de fazer uma certa "evangelização". ;-)
Se fosse para "consumo próprio" eu até faria em Ruby, mas achei que iam ficar legais e talvez ajudassem alguém que precisasse dos recursos oferecidos mas não a ponto de perder algum tempo instalando o Ruby e as gems necessárias. Pelo menos no Ubuntu elas instalam só com o "sudo make install".
Quem sabe agora que o ritmo está voltando eu não faça alguma coisa disruptiva (ohhhh) que justifique a instalação e configuração do Ruby e algumas gems? ;-)
Enquanto isso as apps estâo aí para quem precisar usar. Eu já comecei! :-)
A escolha da linguagem é uma decisão do programador. Sem problemas. Eu não entendi muito o '...já vem instalada com vários módulos, inclusive..'. Sem fazer apologia ao Ruby, acho que também já vem em muitas distribuições ou, no máximo, um comandinho ou alguns cliques para instalar. Se até usuário do Windows instala outros navegadores etc.....
Mas acho que se justifica já que estavas com a rotação reduzida. :-)
Adorei a proposta das ferramentas rapaz! Mas já que ainda não há .debs disponíveis e eu já vou ter um trabalhão daqui a pouco com o 10.04 eu acho que vou esperar um pouco pra começar a usar.
Legal a idéia das ferramentas e da organização pessoal.
Eu dei uma desorganizada este ano e o caso se formou de novo. Retornei e estou novamente reorganizando minhas coisas.
Não cheguei a desenvolver ferramentas não, mas minha organização em geral segue a mesma estrutura que você utiliza :)
Muito bom, todas as ferramentas que uso no dia-a-dia, só troquei o remember the milk pelo gmail tasks. Pena que não uso mais Linux, mas vou recomendar essa 'productivity stack' pra qualquer um que perguntar. :)