Posts Tagged ‘xp’

ZTD e Pomodoros (2 anos depois)

setembro 5th, 2011

Aloha!

A exatos dois anos eu estava num turbilhão de coisas acontecendo simultaneamente e todas elas eram “urgentes”. Comecei a utilizar algumas ferramentas para me organizar na minha então então vida de programador-gestor-empresário-cara-do-cafézinho a então recente aberta Giran.

Alguns meses depois estava usando durante o dia a combinação Mapas Mentais + GTD + Pomodoros. Praticamente dois anos depois, muitas das coisas foram adaptadas, melhoradas e repensadas e geraram até uma palestra que fiz na Giran e para outras empresas. Conversando com as pessoas, vi que muita gente ainda fica surpreendida ou mesmo não conhece formas legais de se manter atualizado.

Você é organizado ? Já tentou se organizar pra trabalhar melhor ?
Sua forma de organização lhe permite trabalhar de forma efetiva e com qualidade de vida ?

Este artigo é uma versão atualizada, otimizada e re-organizada de um antigo post meu sobre como organizar o dia-a-dia com uma diferença legal que é mostrar um pouco de como tento me organizar “na prática”. Muito do que vou escrever é um resumo transformado em práticas do que li e aprendi com o GTD (do grande David Allen), ZTD (uma versão simplificada e mais prática do GTD que eu sigo bastante hoje em dia criada pelo Leo Babauta do Zen Habits), a técnica do Pomodoro (para realização de tarefas no dia-a-dia) e XP - Extreme Programming (método de desenvolvimento de software que para mim vai muito além do software).

Hoje estou usando efetivamente ZTD + Pomodoros.

A leitura é longa … espero que ao final ela sirva de algo para você. :)

1) antes de tudo, organize o macro sua vida num mapa mental

O primeiro grande problema que sempre tive foram as dezenas de coisas que queria fazer e realizar ao mesmo tempo. Se você é uma pessoa focada e que não tem muitos hobbies ou interesses, provavelmente isso não fará sentido para você. Mas agora coloque todas as coisas que você quer fazer (TUDO MESMO): quero voltar a tocar guitarra, tocar bateria, brincar com meu Arduino, voltar a escrever, escrever mais no blog, aprender ao menos 3 linguagens de programação, trocar meu carro e … e … e … ufa! São tantas coisas.

Uma das partes que mais gera stress é aquela sensação que o cérebro tem de que coisas inacabas estão por fazer. Ele fica te lembrando a todo momento de que algo tem que ser acabado e isso surge nas horas mais inoportunas possíveis: com sua família, antes de dormir, ao ver algo para comprar relacionado com algo inacabado. Talvez você já tenha se pegado pesquisando por dias algo relacionado a uma vontade reprimida ou inacabada para deixar isso por Terra logo após alguns dias.

Você quer caminhar, compra um tênis super bacana, caminha por uma semana e deixa isso pra lá, porque tem outras coisas a sempre feitas. Tudo isso oprime e stressa todo um sistema que, já desorganizado, tende ao colapso em ocasiões como essa.

A descontinuidade não é apenas culpa do comprometimento por si só, mas culpa de um sistema já sobrecarregado de N prioridades que ficam indo e vindo em sua cabeça e tirando seu foco principal naquele momento da sua vida. “Muito do stress que as pessoas sentem não vêm de ter muito a se fazer. Ele vêm de não terminar o que elas começaram” [David Allen].

A solução para mim foi utilizar um mapa mental. Uma mapa mental é basicamente um diagrama com várias ramificações que te dá oportunidade de ver de forma macro e segmentada um conjunto grande de informações relacionadas. Esta forma de organização pode ser usada de várias formas e é largamente usada para passar idéias de projetos, organizações e tudo mais. O grande barato disto é a forma como nosso cérebro consegue visualizar as relações entre nossas necessidades de uma forma muito mais efetiva que várias listas.

Organizando um pouco do dia

A idéia principal do mapa mental nesse momento é você organizar e separar da forma mais visual possível a sua vida. Em média, com menos de uma hora você conseguirá colocar no mapa tudo o que você acha que tem que ser feito para que você seja “feliz e organizado”. Vale botar tudo nesse mapa e que lhe atormenta em algum momento: sua vida profissional, pessoal, sonhos a curto e médio prazo. Isso significa desde as coisas que você tem que realizar nas próximas semanas até colocar o carro que você quer comprar em algum tempo ou as coisas que você quer comprar para seu homeoffice ou sua sala nova. :)

Evite detalhar as coisas nesse momento: escreva elas da forma mais direta possível. Isso vai funcionar a partir da idéia que seu objetivo é listar tudo o que você acha que tem ou que quer concluir agora, amanhã, semana que vem ou em alguns meses.

A ferramenta que venho usando desde sempre é o MindMeister (http://www.mindmeister.com/). Ele é online, gratuito (até 6 mapas) e tem versão pro iPad. :) . Existem outras opções para trabalhar direto em seu computador como o FreeMind (gratuito e mais simples) e o MindManager (pago mas bem completo).

Independente da ferramenta, a meta é esvaziar a cabeça.

2) depois de organizar, planeje e decomponha

Agora que você “deu nome aos bois“, tome um bom café/refri/cerveja, contemple seu mapa e eleja o que deve ser feito nas próximas semanas. Algumas coisas que você pode ter colocado no mapa mental e que não tinham data para realizar provavelmente, como num passe de “mágica”, agora poderão parecer mais “realizáveis”. Agora você consegue ver com mais clareza tudo o que é importante (ou não) para você.

Neste ponto, é importante que você priorize o que lhe trará mais do retorno que você busca em seu momento pessoal.

  • se o seu momento pessoal for de retorno financeiro, priorize as idéias que lhe trarão dinheiro
  • se o seu momento pessoal for de conhecimento, priorize as idéias que lhe farão estudar mais o que você deseja conhecer

Antes de partir, você deve fazer algumas decisões que as vezes passam desapercebidas em nosso dia. Muita gente simplesmente deixou de fazer seus planejamentos sinceros de vida se deixando levar pelo cotidiano e imediatismo de um dia-a-dia cada vez mais dinâmico. Pare, olhe e escute … o que você tem que fazer agora para satisfazer seu momento pessoal de vida? Dinheiro, conhecimento, fama ou algo totalmente pessoal? Faça isso com a cabeça fria, tranquilo e num lugar calmo e zen. Abra seu coração, faça uma reflexão: esse momento provavelmente irá te trazer muito mais respostas do que você pensa. Talvez sua vida mude … talvez não … pra bem ou pra ruim … mas de forma mais realista. :)

Como a idéia aqui é mostrar isso na prática, vou pegar meu exemplo: meu momento é procurar um apartamento, implementar um projeto irado na empresa, entregar um projeto de iPad. Se eu conseguisse voltar a tocar guitarra e compor/gravar música eu ficaria muito feliz… mas isso é realmente importante pro que eu acho que é prioridade pra mim? Tome cuidado com o excesso de coisas neste momento. As vezes acabamos querendo fazer tantas coisas ao mesmo tempo que arriscamos duas coisas muito importantes em nossa vida: nossas vidas em si e nosso convívio social/familiar. Mantenha o curso e o foco! |o|

Uma prática que poderá ajudar é tranformar essas coisas que escolhemos em histórias, o que na verdade elas são. “Procurar um apartamento” é uma história grande: um verdadeiro épico. Dentro dela terei várias histórias como “procurar um apartamento”, “procurar um financiamento”, “juntar fiadores”, “juntar documentos” e por ai vai. Essa forma de criar histórias vai te ajudar bastante ter uma pré-decomposição das coisas que você deseja fazer e principalmente será sempre “entendível” quando voltar voltar à sua lista.

Tente definir inicialmente dois ou três grandes objetivos da semana. Isso vai lhe dar uma ótima oportunidade de comprometimento e motivação para matar aquilo. É batata: após um ou dois meses você vai sentir o quanto fazer as coisas “pouco a pouco”  vai representar uma grande diferença na sua lista. :) Não aumente o número de objetivos semanais sem ter certeza de que isso lhe trará mais prazer que sacríficio, a não ser que isso valha a pena. Não esqueça de ter uma vida.

Meus objetivos da semana seriam conseguir ligar para algumas imobiliárias, fazer o planejamento inicial do novo projeto interno da empresa e fazer os testes finais de meu projeto para iPad. Pense sempre na certeza que é de “grão em grão que a galinha enche o papo”. Com esses objetivos você vai conseguir fazer algo que inicialmente pode parecer gigante e trabalhoso. :)

Bom, com isso eu planejei trabalho pra bastante tempo. Agora é hora de decompor as coisas para conseguir transforma-las em tarefas. Porque isso é importante? Porque é com isso que você vai lidar no dia-a-dia.

O princípio básico é que você consiga dividar algumas de suas “histórias” em “tarefas”. Por exemplo: quero comprar um apartamento. Duas das coisas que listei em meu mapa mental é “Procurar um apartamento entre até um milhão de reais” (hahah, se é pra fictício, vamos aproveitar) e “procurar financiamentos“. Se você fazer uma reflexão rápida do que é “procurar um apartamento“, vai pensar “posso procurar em várias imobiliárias“. Então, sua ação não é apenas procurar mas ligar pra várias delas. Bem como procurar o apartamento, procurar o financiamento envolve procurar vários financiamentos. Temos no final das contas uma lista de tarefas para serem feitas. :)

Histórias viram tarefas :)

Histórias viram tarefas :)

Agora sim: temos coisas mais tangíveis e “realizáveis” do que algo abstrato como “Procurar apartamento até 1 milhão“.

Apesar de ter feito essa separação neste mapa mental, você também pode fazer isso num sistema de listas, como explicarei a seguir.

3) cadastre histórias e tarefas em um sistema de listas simples e confiável

Muita gente é atendida plenamente apenas por mapas mentais. Todavia, e esse é meu caso, muita gente tem uma lista de histórias e tarefas e serem realizadas muito dinâmica e que vive sempre mudando. Por exemplo, escolhi além de comprar um apartamento, implementar um projeto interno e entregar outro projeto desenvolvimento pra iPad. São dois objetivos que tem muitas tarefas distintas e que gerenciar num mapa mental poderia ser não apenas trabalhoso mas muito confuso.

Seu sistema de listas, onde você cadastrará suas tarefas, deve ser simples e confiável. Entra em cena as ferramentas de gerenciamento e organização de listas e tarefas. A que utilizo a bastante tempo é o Things, da Cultured Code. Por ser feito para pessoas que utilizam GTD, ele serve como uma luva para nossa necessidade que é ter uma forma de criar nossas listas de tarefas, separadas por histórias ou projetos. Em muitos casos um caderno ou mesmo uma caixa com as tarefas em cartões já bastante. Eu utilizo BASTANTE durante o dia um caderno para anotar as coisas e passo pro Things apenas as coisas que preciso agendar e coisas do gênero.

Moleskine

Moleskine

O importante é que você tenha um sistema de fácil acesso e confiável para colocar suas tarefas, seja um caderno, um software ou cartões: você deve ter acesso rápido e principalmente organizado às tarefas que você deve fazer.

Ao cadastrar em seu sistema, pense: “Essa tarefa eu devo realizar por telefone, por e-mail ou ir à rua pra resolver. Essa tarefa depende de alguma outra ação? Eu preciso acompanhar ou delegar essa tarefa para alguém?“. Essas necessidades podem ser transformadas em listas de contexto de ação. Vamos dar “categorias de ação” às nossas tarefas. Atualmente eu categorizo as coisas da seguinte maneira:

  • @resolver, para coisas que eu tenho que resolver e ver se preciso delegar, resolver eu mesmo ou esperar
  • @fone, para coisas que eu tenho que ligar para finalizar
  • @rua, para coisas que tenho que resolver fora de casa
  • @email, para e-mails que eu tenho que enviar para alguém
  • @trabalho, para coisas que trabalho
  • @acompanhar, para coisas que eu vou ter que esperar telefone, e-mail ou algo de alguém (geralmente com uma data limite)

Para ajudar um pouco mais, eu uso três categorias adicionais que são as de prioridade: alta, média e baixa.

A idéia de separar suas tarefas em listas é simples: você conseguirá delimitar bem as coisas que devem ser feitas a seguir. Por exemplo, ao visualizar minha lista @rua (com coisas que eu tenho que resolver na rua) eu posso agrupar algumas para resolve-las junto. Por exemplo, tenho que ir ver o financiamento no BB direto com meu gerente (eu coloquei essa tarefa como @rua). Vejo que dá tempo ainda de passar numa das imobiliárias que eu tinha que ligar. Dois coelhos com uma cajadada: uma das coisas legais de listas é você pode agrupar as coisas e resolver coisas que geralmente você esqueceria.

Quanto mais simples for seu sistema, melhor. Não se preocupe em criar listas complicadas pois a lógica é simples: quanto mais listas, mais dificil será você “eleger” o que deverá ser feito no seu dia-a-dia. Crie uma lista pra cada aspecto de ação que você tem em sua vida. Se por exemplo, você precisa em seu dia-a-dia delegar várias tarefas, faz sentido você ter uma lista chamada @delegar.

E tarefas que você precisa fazer numa data específica ou todo mês? Use o bom e velho calendário! :)

No final das contas, usando o Things terei algo assim:

Tarefas a serem feitas no Things

Tarefas a serem feitas no Things

Repare que tenho meus projetos listados a esquerda e todas as tarefas que ainda devo “executar”. O Things tem essa capacidade legal de mostrar os projetos e as coisas que eu devo fazer que estão em aberto. Temos ao lado de cada tarefa a qual lista ela pertence. Num caderno, você teria essas listas separadas em páginas distintas, com marcadores. No caso de pastas, você teria uma pasta para cada lista. Isso vai depender de como você quer organizar. Essas formas pode ser encontradas na literativa GTD/ZTD de uma forma melhor.

4) Faça! :)

Agora que você tem tudo o que você deve fazer, com seus grandes objetivos do semana escolhidos, é hora de arregaçar as mangas e se colocar ao trabalho.

No início do dia, tire alguns minutos para separar o que você fará durante o dia. Abra suas listas e escolhe o que você fará, de preferência por prioridade. Antes de começar:

  • algumas tarefas precisam de “cuca fresca” pra serem feitas e outras são mais “mecânicas”. É uma estratégia boa deixar as tarefas que requerem mais atenção e decisão para a parte da manhã, pois durante o dia a tendência de coisas inteferirem em seu foco e seu humor é grande. Deixe o que for mais mecânico para depois das coisas que precisam ser feitas com calma e análise.
  • as tarefas rotineiras podem ficar fixas em sua lista. Coisas como “ver e-mail” e “ver andamento projetos” não precisam ser nem processados. :)

Para realizar tarefas, principalmente para quem tem N coisas para fazer, você precisa de foco. Muitas pessoas, principalmente com o advento do computador ou um ambiente propício a interrupções contínuas e incessantes, simplesmente não conseguem manter o verdadeiro “foco” numa tarefa por vez. Temos MSNs, Twitters, Facebooks, pessoas, toques de telefone e tudo o que pode contribuir para você perder o foco.

Um segundo impeditivo é a questão do trabalho contínuo. Manter o foco por horas a fio é um grande impedimento para muitas pessoas: é uma tarefa cansativa e que precisa de muita disciplina para se alcançar o verdadeiro espírito zen para se manter assim por tanto tempo.

Depois de muita pesquisa, tentativas frutsradas e tudo mais, conheci na época com meu sócio-amigo-irmão Jeveaux a técnica do Pomodoro. Esta técnica consiste num método de se manter focado por 25 minutos em uma tarefa: dá-se a este intervalo de tempo o nome de Pomodoro (embora o nome mesmo seja em homenagem àquele relógio de cozinha). Mas o mais interessante não é apenas o foco, mas o sistema de auto-recompensa dada pela técnica. A cada pomodoro feito você ganha 5 minutos pra fazer o que quiser. Abrir seu e-mail, ver seu twitter, falar com alguem no MSN. Isso pode parecer contra-producente mas na verdade é totalmente o contrário. Sua produção focada corresponde (e até excede) sua produção normal onde você não tem tempo de parar, respirar, tomar um café ou algo do tipo. Você “institucionaliza” seu descanso e isso não vira mais um sentimento ruim de procrastinação.

“Pomodorar”, basicamente, segue estes passos:

  • escolha uma tarefa
  • ligue o timer para contar 25 min
  • esqueça o planeta e feche tudo o que tira sua atenção
  • quando acabar o tempo, risque um pomodoro pra tarefa
  • descanse por 5 min
  • volte pra tarefa e execute os passos anteriores até concluí-la

Para ajudar nesse dia-a-dia, você pode (e deve) usar uma folha simples para anotar suas tarefas e colocar quantos pomodoros você acha que gastará para realizar sua tarefa. Aqui existe um detalhe muito interessante: quantos pomodoros você consegue fazer por dia. Um dia de trabalho de 8 horas dão lugar então à uma média 14 a 16 pomodoros. Uma hora é em média dois pomodoros e duas pausas de 5 min. Isso é uma ótima oportunidade de você ver o que você realmente consegue produzir com o passar dos dias e prever, sem sobras, sua capacidade de produção. :)

Porém, no começo pegue leve com você: que tal começar fazendo 5 pomodoros num dia e depois ir aumentando conforme você perceber que consegue se focar?

Para pomodorar, atlém do timer, você precisará de um papel de uma caneta para escrever suas tarefas e os pomodoros que você vai executar. No site oficial da técnica Pomodoro, eles tem uma folha modelo que você pode usar suas tarefas, com essa abaixo:

Folha com pomodoros

Folha com pomodoros

O que fazer:

  • escolha suas tarefas
  • transcreva-as para sua folha de pomodoros e coloque um número estimado, se houver, de pomodoros para realização da tarefa
  • execute o pomodoro

Outra coisa super interessante nos pomodoros é como você marca as interrupções. Para cada interrupcão que você ter, dê um risco na folha. Isso vai tornar claro o quanto elas estão te atrapalhando e lhe dará argumentos reais para cortar algumas coisas. Se por exemplo, o telefone te atrapalha muito nos pomodoros matinais, desloque as coisas que precisa de mais atenção para a tarde ou parede atender as ligações. :)

Marcando interrupções

Marcando interrupções

5) Revise suas listas frequentemente

Você agrupou suas demandas, separou elas em histórias, depois em tarefas. Depois, separou elas todas e agora sabe como executa-las toda semana de forma ordenada e organizada. :)

Depois de tudo isso, o que importa é manter o ciclo de coleta e principalmente revisar. Várias coisas podem fazer sentido em algum momento da sua vida de forma mais pontual e que depois de uma semana ou mesmo dias podem não fazer mais sentido. Por exemplo, se eu estava pesquisando por financiamentos e acho um eu não preciso ficar com um monte de tarefas relacionadas a isso em minhas listas.

Para poder sempre estar se focando no que realmente importa é muito bacana revisar sua lista sempre a cada semana ou quinzena.

Menos que uma semana vai acabar tornando isso uma experiência cansativa e mais que isso pode manter alguns itens que podem estar tirando sua atenção na sua cara.

Não deixe de revisar suas listas para não acabar se frustrando. :)

6) Evite se frustrar a qualquer custo

E finalmente: evite tentar dar o passo maior que a perna. Isso pode trazer exatamente o que um sistema de organização e mudança de hábitos quer evitar: frustração.

Se você quer correr uma maratona, você tem que primeiro dar umas caminhadas, depois algumas pequenas corridas de 1 minuto e depois ir evoluindo isso até estar preparado. Você vai melhorando vários aspectos seu para alcançar isso: velocidade,  resistência, alimentação, disciplina e por ai vai. Mas se você um dia fica com preguiça ou come besteira, não se martirize ao ponto de achar que nada mais vai dar certo.

A mudança de hábitos para se organizar também conta com a adoção e treinamento pouco a pouco de várias coisas. Não tente tentar mudar da noite pro dia tudo o que você deve mudar pra ser uma pessoa minimamente organizada. O que deveria ser uma tarefa prazerosa e com aquele sentimento de superação vai acabar se tornando uma torrente de frustração. =/

Esse post em si é a condensação de muita coisa que tento seguir todos os dias e que algumas vezes, por mais que queira, sai do script e tenho que retomar no outro dia.

Se tornar uma pessoa organizada é uma batalha diária e temos que aceitar que vamos falhar em alguns aspectos e é ai que nosso treinamento em cada coisa de cada vez vai fazer sentido e ajudar a superar as coisas. :)

E é isso …

Provavelmente esse é um dos maiores posts que já escrevi mas não encontrei outro jeito de falar sobre o assunto. Como disse, leio várias coisas e aprendo muito não apenas com eles mas com as pessoas que me rodeiam e os erros que cometo e vejo os outros cometerem. Analise sempre o meio em que está e tente adaptar-se da melhor maneira para que essas técnicas possam fazer sentido pra você. Se você não consegue fazer 12 pomodoros por dia, comece com 3 ao menos. :)

Como diz um grande amigo … “O que importa é começar …”. Comece nem que seja com uma lista simples feita de manhã, organizando seu Gmail ou fazendo 2 ou 3 pomodoros por dia. Quebra a inércia. :)

A idéia desse post é só dar uma idéia de como começar e se estruturar: provavelmente ele pode ter lacunas de linha de pensamento ou mesmo explicações que não foram dadas da maneira mais clara possível. Se por um lado é ruim, por outro é legal pelo fato de ter causado não apenas interesse mas também indagações sobre como poder melhorar um processo. :D Sintam-se a vontade para perguntar. :)

Recomendo que se quiser se aprofundar (principalmente em XP e ZTD) no assunto, leia os links abaixo:

No mais, sucesso a todos e bons pomodoros. :)

Rails Rumble: Uma lição de vida

outubro 18th, 2010

Salve todos,

Não vou ficar falando o que sempre falo: que sumi, que não tive tempo pra postar por causa da correria da Giran e blalablablba! AHE uAHEuhaeuhAE … Estou estudando bastante e agora vou ter bastante coisa pra postar por aqui. :)

Este final de semana participei do Rails Rumble 2010. O Rails Rumble é, resumidamente, um campeonato de programação que desafia as pessoas a construirem uma aplicação em Rails em 48 horas! oO E não é qualquer aplicação, pois eles avaliam beleza, estabilidade, inovação … enfim, é como se você tivesse que fazer um Twitter (ou algo tão inovador) em 48 horas. heheheh

Participei do time Shupla Hadouken dá hadouken ryu! com os brothers recursos da Giran, Almir M3nd3s (@m3nd3s), André Gligli Tagliati (@tagliati) e nosso convidado especial (e que adestrou a gente em vários lances do Rails) Reinaldo JuniorZ (@reinaldojunior).

A Giran patrocinou nosso time e mais mais dois: o Walter Fall e o Blastoise. Provemos o espaço, comida, bebida e o que foi preciso pra deixar todo mundo a vontade.

Porque falei “resumidamente”? Porque o Rails Rumble é, no final das contas, MUITO mais que uma competição.

Preparação = motivação

O  ”katá” para participar do evento foi/é uma puta motivação para quem quer entrar de vez no Rails. Durante um mês o povo da Giran estudou, discutiu, leu e codou bastante em Ruby/Rails. Ver todos se mobilizando em prol de um fim comum é algo que motiva demais até o mais preguiçoso dos programadores.

É fato e até algo psicológico isso: as pessoas se transformam quando estão em grupos e é assim que avaliamos o quanto as pessoas são realmente aquilo que elas dizem ser ou que achamos que elas são. Em todas as esferas possíveis.

Estudei muito (não tanto queria), quebrei a cara, me estressei mas foi algo decisivo para meu aprendizado Railer e do pessoal do meu time:  aprenderam bastante.

Idéia saindo do papel

A aplicação que desenvolvemos foi o Cashr, um gerenciador financeiro pessoal simples. Era uma idéia que já havia implementado no Django mas que não havia levado a frente. Preguiça, falta de tempo e entusiasmo: se já tem tantas aplicações pra quem mais uma?

Foi engraçado mas um dos meninos tinha tido A MESMA idéia. A vibe foi irada e geral. Qual não foi a satisfação e alegria em ver, depois de 48 horas de codação frenética e cansaço e muitas risadas, a aplicação rodando e fazendo MUITO MAIS do que havia imaginado fazer inicialmente.

Quem quiser dar uma sacada no projeto online: http://cashr.r10.railsrumble.com/

Tá dando uns pauzin e tem umas coisas incompletas, mas foi de coração. :)

Gestão de um projeto de 48 horas = desafio!

A largada havia sido dada, todo mundo à postos … e agora? Já tinhamos a idéia do projeto na cabeça e quase saímos meio Extreme Go Horse Development se não fosse a lucidez de fazer um mini Kanban das idéias principais. Mais que uma forma de organização foi uma puta lição de desenvolver de forma ágil, coisa que acredito ser um pre-requisito muito forte para qualquer pessoa que vá participar do Rails Rumble.

Entregar uma aplicação com a pressão de 48 horas, vontade de fazer o melhor e não fazer feio foi uma das lições mais legais que tive nessa esfera. E as pessoas à minha volta também pelo que vi.

Escopamos muita coisa para pouco tempo e braços, mas valew demais todo o esforço.

Extreme Happy Hour

Desde minha época de RPG, eu não tinha oportunidade de um happy hour nerd varando a madrugada tão divertido. Compramos pizzas, 2 Red Bulls pra cada um, refri, suco, biscoitos, Mendoratos … junte tudo isso com 12 nerds tarados em programação e lesados ao extremo e você tem a combinação perfeita para uma virada de madrugada de muito riso, programação e aprendizado.

Isso tudo com direito a Twittcam (você pode ver as gravações aqui), uma flood de twitadas durante a madrugada e tudo mais. O saldo foi cansaço mas aquele sentido de trabalho quase cumprido. IRADASSO.

Um por todos, todos por um

A mobilização das pessoas, até as que não estão acostumadas em trabalhar num time Scrum ou de qualquer metodologia ágil, é impressionante. As pessoas realmente entendem o quanto seu trabalho influencia o resultado não apenas do projeto mas do que o seu colega ao lado fez.

Foi como um XP atômico: pessoas codando frenéticamente, fazendo refactoring, criticando código, complementando o código alheio. Foi sem dúvida uma experiência única no que entendo ter sido uma das mais rápidas e emblemáticas que participei e vi.

Convidamos três pessoas: além do Reinaldo Júnior, chamamos o mestre railer Roberto Soares (@bt1) e o grande André Lima (@vixlima). Muito bacana como os três se integraram aos times e principalmente fizeram a gente perceber mais uma vez como as coisas trabalham bem quando as pessoas já tem um background ágil em suas mentes. Simplesmente fantástico. :)

Eu quero, eu posso

Uma palavra que ficou na minha cabeça desde horas antes de um desafio tão tenso, que expõe demais as pessoas no sentido técnico e psicológico (é a hora das pessoas verem até onde vai seu conhecimento e até onde você é humilde o bastante pra assumir isso ou ensinar as pessoas sem mesquinharias): superação.

Codar por 48 horas (não exatamente, mas pensar nisso por mais até que isso) não é apenas uma auto-superação física ou de stress mental. É superar o medo de não conseguir entregar a tempo, de saber que existem limites seus, de respeitar os limites dos outros de verdade. Superar a constante de que não sabemos tudo o que gostaríamos ou o quanto gostaríamos.

Não é papo de auto-ajuda: o Rails Rumble me fez sim uma pessoa melhor.

Extreme learning

Já falei tanto extreme nesse post que virou buzz. Não é a toa que dizem que uma das melhores formas de aprender Rails é participar do Rails Rumble. Muito aprendizado, muito problema real acontecendo em espaço de minutos e soluções para isso surgindo no vácuo.

Várias pessoas dos times não tinham muita experiência e chegaram no final da maratona falando e demonstrando o que aprenderam de uma forma muito coesa. Impressionante como as pessoas absorvem (e não apenas deixam na cabeça por um tempo) os aprendizados em situações de pressão e decisões que influenciam a vida das outras pessoas.

E no capítulo de hoje eu aprendi …

Nesse exato momento nossa aplicação está sendo avaliada pelos juízes e já recebemos até uma nota legal. :) O que fica aqui pra frente é que os estudos continuam e a coleta de idéias para o ano que vem já começou. SIM! VOU FAZER ESSA DOIDERA DENOVO NO ANO QUE VEM!

Para quem não fez, corra: é uma experiência tão singular quando a primeira balada, a primeira bebedeira (com a ressaca) e o que quer que seja tão significante.

Para quem gostou do Cashr, vamos continuar com o desenvolvimento dele e aceitamos colaboradores para o projeto, principalmente um designer pois tivemos que nos virar haehahe aueuah e.

Simbora! :D

Programação em par … 1+1=3

abril 25th, 2010

1+1=3

Aloha! O cálculo parece ser uma piada, mas na prática é o que este pequeno post vai tentar explanar e pontuar: programação em par rende e faz bem ao projeto, seja você uma equipe ágil ou não.

Programação em par (pair programming) é uma das práticas pregadas pela XP (eXtreme Programming) e metodologias ágeis em geral. Pra lá de polêmica (principalmente entre os gerentes de projeto e de “recursos”) a programação em par é o terror das empresas com poucas pessoas e/ou projetos com escopos malucos e sem vivência ágil, mas é exatamente ai que ela pode ser tornar uma puta aliada ao time, à empresa e aos projetos.

Como o próprio nome já diz, a programação em par descreve a prática de desenvolver software em par no mesmo computador: enquanto um programa o outro fica de “papagaio de pirata”, apontando erros, sugerindo coisas e pentelhando o amigo que está desenvolvendo. Elas se revezam no teclado de tempos em tempos e os objetivos disso são muitos.

Um segura, o outro bate

Esse é meu bródi!

João e Joca prontos!

Na vida real isso seria uma covardia, mas estratégicamente falando o fato é que se você entra numa briga com um amigo (principalmente que já chega na voadora) tudo fica MUITO mais fácil: você intimida o inimigo, aumenta a auto-confiança e a chance de ganhar a batalha de forma muito mais rapida e efetiva aumenta dramaticamente.

Num projeto isso soa da mesma maneira: a troca de experiências, fundamentos e principalmente sinergia de aptidões e especialidades eleva o nível de programação. O programador menos experiente ganha experiência e macetes. O programador mais experiente, refina seu conhecimento, encara novas possibilidades apresentadas pelo mais novo e lapida de forma fina conceitos da forma mais didática possível. :)

Então, existem vários pontos e consequências muito positivas quando você, gestor, e você , desenvolvedor “super-homem” e “lobo solitário”, programa em par:

  • a troca de conhecimentos fica transparente entre o par e o modo mais bacana de implementar aquele regra de negócio que “só o João é que sabia”  agora é sabida pelo Pedro, Joca e José;
  • a abdução pelo MSN/Talk/Twitter (ou as coisas que distraem) será bem menor devido à presença do par ao lado pensando “Coé! Vai trabalhar ou não p*rra?”
  • essa é pros gestores não ágeis: programação não é apenas digitação (= trabalho mecanizado) e sim um trabalho de escolha (tentativas corretas ou erradas). E nisso duas pessoas se saem BEM melhor (seja a caminho do #epicwin ou #epicfail).
  • o vínculo pessoal aumenta entre o par e com isso a confiança se fortalece, acabando ou diminuindo o “se fosse eu teria saido melhor”
  • com a confiança aumentada, o par passa a se comprometer ainda mais com o resultado final de forma muito natural, afinal a pessoa não quer deixar seu novo amigo na mão (e nem a oportunidade de fofocar um pouco durante o pareamento)
  • as soluções encontradas tendem a serem melhores documentadas/implementadas
  • psicologicamente, o par sempre vai querer mostrar “o seu melhor” para o outro
  • quando o par não souber resolver nada ele não vai conseguir passar O DIA INTEIRO abrindo e fechando a mesma tela enquanto pensa numa solução: o parceiro geralmente ou auxilia ou no mínimo vira mais um na pesquisa pela solução correta.
  • as barreiras pessoais caem e as pseudo-picuinhas ou viram picuinhas de verdade ou viram uma grande piada entre o par (e com sorte o time) depois de algum tempo
  • é uma das melhores formas que vi até hoje de fazer as pessoas entenderem o que é trabalhar em grupo
  • e por aí vai… :)

Mas eu não tenho time, eu tenho recursos

Muitos amigos/parceiros de outras empresas sempre perguntam pra mim e o pro povo aqui da Giran como trabalhamos porque eles mesmos já tentaram, tentam ou tem curiosidade de implementar metodologias ágeis em seus ambientes de trabalho. Geralmente o que me falam é que lá as pessoas são tratadas como recursos e não como um time.

Num dado momento as pessoas tem suas 8 horas/dia (hellllooow! aumenta isso ai tio!) de trabalho e isso no M$ Project fica lindo: afinal, podemos colocar o Joca alocado 70% do seu dia numa tarefa e 10% em outra e mais 20% numa outra completamente distinta. Ou melhor: podemos fazer o João entregar em 2d 4horas aquele módulo de detecção de XSS NO SITE INTEIRO.

Parte do problema que tento passar pros meus amigos é que as pessoas da empresa não são engrenagens mas sim pessoas, com seus problemas pessoais, limitações técnicas, dias ruins (que não rendem nada) e que nem deveriam ter começado. A partir do momento que os recursos não são considerados como produtores de porcentagens em planilhas mas sim pessoas que implementam escolhas e entregam produtos (resultado dessas esperadas BOAS escolhas), uma parte grande do problema se desfaz e o mundo fica até mais claro. :)

Mas, mesmo enquanto “recursos” (afinal, seu chefe não quer que os cronogramas os enxerguem de forma tão humana porque isso é perder dinheiro), ainda sim a programação em par se apresenta como uma ótima alternativa para driblar algumas limitações impostas pelo modelo manufatureiro (e antiquado) de produzir software:

  • você pode botar um recurso que está produzindo pouco para parear com outro mais “ativo” (ui ui ui) ou com mais moral da equipe interna: o recurso que está “patetando” vai se ligar rapidin e começar a “magicamente” trabalhar mais seja pela pressão do par, seja pelo poder de liderança que esse par vai ter sobre ele (as vezes o cara considera o amigo mais chefe do que você que em tese deveria ter esse poder)
  • liderar é servir: essa dica acima é muito importante quando você desejar criar um líder natural de equipe que faça as peças funcionarem sob alta temperatura sem rangir ou quebrar
  • faça seus recursos parearem ao menos no início de um novo projeto: assim, o alicerce ficará bem conhecido e a tendência do João levantar uma parede de gesso onde o José deveria colocar o quadro ultra-pesado diminui bastante. “Mas você não me falou que tipo de parede era e eu achei que essa iria dar conta do recado… p*rra, você nem pra me dizer que o quadro era tão pesado né?” (sinto cheiro de re-trabalho)
  • fazer par com aquele programador/designer/pessoa-difícil que todo mundo fala que faz tal coisa errada, mal-feita ou que poderia ser melhor vai ser uma maneira muito efetiva de faze-lo começar a trabalhar direito a partir de então
  • juntar dois recursos-difíceis assim pode ser uma ótima oportunidade de fazê-los melhorar em conjunto ou você matar dois coelhos com uma caixa d’água só

Passos de bebê para a programação em par

Bacana, legal! Mas tem gente que vai se perguntar: “Putz! Mas como transformar 8 pessoas em 4 da noite pro dia”. Tem muita gente doida (acho que essa é a palavra) que acha que radicalizar da noite pro dia vai adiantar ou ajudar em algo. Em se falando de programação em par então, isso fica ainda mais frenético. Na Giran mesmo ainda adaptamos continuamente nossa forma de trabalho com SCRUM/XP com idéias vindas do time, de coisas que lemos por ai e que descobrimos durante o dia-a-dia de trabalho. A programação em par foi uma dela e que nos deixa hoje muito contentes em levar à cabo.

Então, gostaria de compartilhar algumas dicas que podem ajudar você a fazer seu time ou seus N recursos a trampar em par e trazer um retorno de produção bacana num curto espaço de tempo, bem como você descobrir que isso NUNCA vai dar certo na estrutura da sua empresa (isso também num curto espaço de tempo):

  • faça pares com um iniciante e um mais experiente para que os conhecimentos trocados seja mais efetivos;
  • num escopo de uma semana, faça as pessoas parearem ao menos uma vez por dia por projeto;
  • se você trabalha com tarefas de um dia, faça as pessoas parearem em ao menos duas delas por semana;
  • um ótimo recurso para temporizar um pareamento é faze-lo em Pomodoros, que são boxes de tempo de 25 min (1 pomodoro = 25 min) em que as pessoas tem que manter o foco. 2 pomodoros são uma ótima pedida para começar um pareamento;
  • pareie pessoas com rendimento baixo com pessoas de rendimento maior (independente do nível técnico) para dar um choque de realidade neles;

Para começar isso já deve dar um pouco de “trabalho” para você, gestor ou líder na equipe, implementar isso de uma forma bacana. Uma forma legal de ajudar nisso, e em vários outros pontos, é você praticar reuniões rápidas matinais de 10 minutos em pé (prática conhecida na XP como Stand-up Meeting) para revisar o que foi feito no dia anterior: nesse ponto você vai identificar até que ponto os pares não apenas trabalharam juntos mas também fomentaram novas idéias e alternativas.

Por enquanto é só pe-pe-pessoal! Boas programações em pares e lembrem-se: programar não é apenas digitar. :)

Maré de Agilidade em VIX

abril 24th, 2010

<pseudo-sufista>
A vibe nerd vai ficar frenética em VIX em Maio. A Faesa vai ficar crowdeada de brothers e ninguem vai mandar o kaô.  :) Por isso eu vou mandar a pala, tá ligado?
</pseudo-surfista>

Acontece no próximo 29 de maio (um sabadão) na FAESA (Av.Vitória) o primeiro Maré de Agilidade em Vitória, carinhosamente chamado de Maré Vix. O evento vem uma semana depois do evento que rolará em BH no dia 22 de maio.

O Maré de Agilidade, que está chegando à sua sexta edição, é um evento itinerante que tem como objetivo disseminar as metodologias ágeis em todo o Brasil. Além do conhecimento, é claro que rolará muito networking entre desenvolvedores e gestores de projetos, negócios sendo fechados, muito café rolando e claro aqueeeeeeeele clima de evento de comunidade que todo mundo conhece. #win

Parafraseando meu brother-sócio-irmão Paulo Jeveaux, “O Maré Vix contará com uma programação bastante recheada e enriquecedora: teremos um dia inteiro com muitas palestras e uma mesa redonda com todos os palestrantes ao final do evento. Dentre os nomes confirmados para o evento, temos: Guilherme Silveira, com a palestra Um produto em duas semanas, Guilherme Chapiewski, Denis Ferrari sobre Domain-Driven Design, Fabrício Vargas Matosfalará sobre TDD e Jeveaux, sobre Negociação de contratos.“.

O evento contará com vários patrocinadores e apoiadores. Entre eles, com muito orgulho estará a Giran. :) #epicwinever

Para quem quiser ver mais detalhes do evento e coisas do tipo, visite o site do evento: www.mare-vix.com.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes