A Técnica Pomodoro


Alguns dias atrás em um Daily com o Time de desenvolvimento Busk descobri uma técnica de gerenciamento de tempo chamada de Pomodoro. Estávamos no meio de uma reunião quando um dos desenvolvedores citou sobre essa técnica. Eu como bom curioso que sou fui pra internet pesquisar sobre essa técnica. É sensacional o negócio, sério mesmo! Vou tentar explicar rapidamente nesse post o que é e como funciona a Técnica Pomodoro (The Pomodoro Technique), mas se você se vira bem no inglês sugiro a leitura do livro completo, que está disponível gratuitamente em PDF no site oficial. Tem a versão impressa também, mas aí você tem que comprar, é lógico.

O que é isso?

A Técnica Pomodoro é um método de gerenciamento do tempo que pode ser usado para qualquer tipo de tarefa. Para muitas pessoas o tempo é um inimigo. A ansiedade causada pelo “tic-tac” do relógio, especialmente quando existe um prazo limite envolvido, acaba gerando ineficiência no trabalho e péssimos hábitos de estudo que, por sua vez, acabam levando à procrastinação.

O objetivo da Técnica Pomodoro é usar o tempo como um aliado importante para realizar, à nossa maneira, tudo aquilo que queremos fazer e também nos permitir melhorar continuamente o modo como trabalhamos e estudamos.

Ferramentas

Pra começar a usar a Técnica você precisa somente de algumas ferramentas básicas:

Um timer daqueles de cozinha;
Um lápis;
Uma folha para a lista de tarefas;
Uma folha para a relação de atividades;
Uma folha para anotar registros.
No site oficial tem até uns arquivos em PDF com esse material pra você imprimir, se quiser, mas eu não estou usando nada disso. Não gosto de papel. Para o timer eu uso um excelente programinha que foi feito só para esse fim mesmo, o Focus Booster. Roda em tudo quanto é sistema, então não há com o que se preocupar. Para as listas eu uso o RTM (Remember The Milk), que encaixou tão bem com a técnica que parece até que foi pensando pra ela desde o começo. Para os registros eu uso uma planilha simples no Google Docs mesmo, sem maiores complicações.

Pois é, se eu ficar sem internet ferrou, mas assumo o risco. É que todo o meu trabalho é online também, então se eu não puder trabalhar não precisarei administrar o tempo. Agora, tudo isso que eu disse pode ser feito até mesmo com arquivos diferentes do Bloco de Notas do Windows. No fim das contas são apenas listas, nada mais que isso. Faça da maneira que achar melhor.

O básico

Coloque na lista de atividades tudo o que você tem que fazer, em qualquer ordem. No começo de cada dia selecione as tarefas que você tem que fazer naquele dia e mude elas para a lista de tarefas. É em cima da lista de tarefas que vamos trabalhar, sempre. A lista de atividades é só pra você não deixar passar nada em branco. Na lista de tarefas, se você quiser, pode ser organizada por prioridade.

Ah sim, melhor explicar logo antes que você ache que eu estou maluco. Um Pomodoro é um intervalo de tempo de 25 minutos, nada mais que isso.

Comece o trabalho:

Pegue a primeira tarefa da lista;
Ajuste o Pomodoro para 25 minutos;
Trabalhe sem parar até o Pomodoro tocar;
Coloca um X na tarefa na folha de registros;
Tire um intervalo curto (3-5 minutos).
Continue trabalhando, Pomodoro por Pomodoro, até que a tarefa que você separou esteja completa, então rabisque ela da sua lista de tarefas (ou marque como concluída de alguma forma).

A cada quatro Pomodoros tire um intervalo um pouco mais longo (15-30 minutos).

Regras e Dicas

Durante o processo é importante você seguir algumas regras, senão o método não vai funcionar e você vai terminar mais frustrado do que quando começou. Peste muita atenção a estas dicas:

Um Pomodoro é indivisível;
Se uma tarefa durar mais de 5-7 Pomodoros, quebre ela em várias outras tarefas menores;
Se uma tarefa durar menos que um Pomodoro, junte ela com outras tarefas;
Uma vez começado um Pomodoro ele deve tocar o alarme final;
O próximo Pomodoro sempre será mais tranqüilo;
A Técnica Pomodoro não deve ser usada para fazer coisas no seu tempo livre. Aproveite sua folga!
Interrupções

Num mundo ideal você iniciaria seu Pomodoro e iria até o final sem ninguém nem olhar pra você, mas a realidade passa longe disso, principalmente se você estiver no escritório, trabalhando. Bem, não há dicas milagrosas aqui. Você vai ter que aprender a lidar com as interrupções da melhor forma possível. Agora, tem algumas coisinhas que você pode fazer pra diminuir o estrago essas interrupções.

A primeira coisa é que você vai ter que aprender a dizer não. Se alguém te ligar, anote o recado e diga que você está ocupado, no meio de uma tarefa importante, e que ligará de volta em 25 minutos. Assim, quando o Pomodoro terminar você terá tempo suficiente para retornar a ligação.

Se aparecer uma atividade de emergência, não exite. Anote-a na lista de atividades e continue seu Pomodoro. Quando ele terminar você poderá reorganizar suas prioridades. No próximo Pomodoro você já pode começar essa nova tarefa e, quando terminar, volta à tarefa que estava fazendo antes. Não há problema nisso. O que não pode é parar um Pomodoro pela metade, isso nunca pode acontecer!

Os registros

Os registros são importantes pra você poder avaliar seu desempenho e também pra melhorar seus métodos de trabalho ou estudo. Funciona assim, você vai anotar o nome da tarefa e logo em seguida vai começar a marcar um X para cada Pomodoro finalizado nela. No final você vai ver que levou, sei lá, três Pomodoros para realizar aquela tarefa, totalizando uma hora e quinze minutos de trabalho, sem contar os intervalos.

No final do dia dá pra ver rapidamente tudo o que foi feito e quanto tempo você gastou em cada uma das tarefas. Assim você poderá organizar melhor as coisas para o dia seguinte. Se uma tarefa está tomando tempo demais, melhor deixar ela para o final ou fazer logo no começo, como a primeira coisa do dia? O que você pode fazer pra terminar aquele tipo de tarefa um pouco mais rápido?

É o mesmo princípio do controle financeiro. Primeiro você tem que anotar todos os seus gastos para descobrir que destino está dando ao seu dinheiro. Aí sim, com essa informação em mãos, você conseguirá realizar um planejamento eficiente, cortar gastos, economizar um pouco, etc.

Espero que este método seja tão útil pra vocês quanto está sendo pra mim em alguns momentos do meu trabalho e dia a dia. Eu acho muito importante para quem tem tendência à procrastinação e dificuldade de manter o foco durante longos períodos de tempo, então quebre suastarefas em intervalos curtos é essencial.

Se você tiver algo a acrescentar, já que esse post tratou o assunto bem superficialmente, sinta-se em casa. Os comentários estão aí pra isso mesmo.

Ruby on Rails escala?

Recentemente tenho perguntado para diversos amigos do mundo de desenvolvimento,Ruby on Rails escala?. O que mais tenho percebido é que existe  é um mito nessa história. A conclusão óbvia foi que ,  NÃO.  O Ruby on Rails  e  outras linguaguem conhecidas como : PHP , .Net  e Java também não escalam. O Rails permite que você faça isso de maneira mais simples que outras tecnologias. A linguagem/framework não é a única responsável pela escalabilidade. Para escalar um website, você precisa de uma infraestrutura que permita fazer isso. Isso pode ser feito de diversas maneiras, como adicionar múltiplos bancos de dados, adicionar mais servidores, adicionar cache, otimizar pontos críticos de seu código, e por aí vai! Não sou especialista no assunto, mas este é, ao meu ver, o básico para se fazer!  Claro que não podemos jogar toda a responsabilidade da escala para a infraestrutura. Eu que venho do mundo bancário sei que é possível desenvolver aplicação auto-escaláveis que são altamente performáticas com um hardware potente. Para finalizar, o Google não é feito em Python, o Yahoo! não é feito em PHP, e o Twitter não é feito em Rails. Todos eles são uma mescla de diversas tecnologias, que permitem suportar, em maior ou menor escala, um grande volume de usuários. Alguns fazem isso muito bem, outros nem tanto.

Visão simplificada da modelagem de desempenho.

Essa semana comecei a analisar a arquitetura do sistema do Busk desde aplicação e ambiente de servidores.Com tive uma visão simplificada da modelagem de desempenho.

Os testes de desempenho são mecanismos extremamente interessantes para uma análise da escalabilidade de um sistema, entretanto em casos mais complexos somente a realização de testes não é o suficiente, para esses casos é necessário realizar uma modelagem de desempenho do sistema computacional como todo.

Modelar o desempenho de um sistema não é simples, mas também não é uma metodologia impossível de ser utilizada. É necessário monitorar, coletar, sintetizar, analisar, otimizar e representar os sistemas com um visão que foge completamente do empirismo.

O objetivo principal da modelagem de desempenho é aproveitar ao máximo do investimento de infra-estrutura de TI, focando na melhoria continua do desempenho dos sistemas. Muitos profissionais acreditam que uma simples otimização de um código fonte do software é sempre a solução para esses casos, outros acreditam que a solução sempre é a troca excessiva dos dispositivos de hardware, ambas as soluções podem ser consideradas na maioria das vezes como soluções paliativas.

A solução está no ambiente do sistema computacional

A verdade é que essas e outras soluções paliativas surgem pela falta de uma visão mais ampla das coisas. É necessário elevar o nível de abstração para entender que as raízes dos problemas de desempenho nem sempre estão relacionadas há um ponto focal básico como o código fonte e sim há um ambiente do sistema computacional como todo. Esse ambiente basicamente pode ser divido em dois: ambiente de usuários e o ambiente de hardware propriamente dito.

O ambiente de usuários é formado por pessoas ou outros sistemas que são capazes de gerar carga de trabalho através das requisições, transações ou processos do software utilizado. O ambiente de hardware é formado pelo conjunto de dispositivos que processam a carga de trabalho gerada pelo ambiente de usuários. O parâmetro utilizado para avaliar a capacidade de um sistema é a análise do nível de serviço prestado pelo mesmo.

 

 

 

 

Existem várias técnicas que são utilizadas para modelagem e análise do desempenho de um ambiente do sistema computacional, como por exemplo, o modelo de regressão linear. No mercado de trabalho, o profissional que possui conhecimento dessas técnicas é extremamente valorizado, principalmente em grandes companhias que investem uma enorme fatia de seu orçamento em infra-estrutura de hardware, como no caso dos mainframes.

 

7 erros mais comuns na hora de criar uma API

Uma estratégia que já se consolidou no mundo da internet são o uso de APIs para expandir as capacidades de um produto. Inclusive aqui no Brasil já temos iniciativas neste sentido.Exemplos como o Twitter, Facebook, Google Maps e Youtube, que tem comunidades desenvolvedores bem ativos, inspiram muitas startups a criar seus próprios ecossistemas. Mas para cada um destes exemplos existem milhares de startups que falharam miseravelmente ao criar suas APIs e plataformas. Primeiro vamos aos erros mais comuns na hora de criar uma API :

Não tratar sua API como um produto

Muitas empresas criam uma API como subproduto e a deixam a deriva, esperando que milagrosamente uma multidão de desenvolvedores vai bater na porta. Mesmo que sua API seja um subproduto de outro projeto trate-a como se fosse um produto independente.

Documentação ruim

Desenvolvedores são seres super ocupados e na maior parte dos casos loucos por eficiência. Se eles forem demorar horas para achar o que querem na sua documentação eles vão procurar uma alternativa, muitas vezes dos seus concorrentes. A vida de desenvolvedor já é difícil sem sua documentação confusa para atrapalhar.

Não criar uma sandbox

APIs muitas vezes exigem que os desenvolvedores se registrem para receber algum token de autenticação ou para colocar formas de pagamento. Se sua API exige esforço do desenvolvedor antes que ele tenha oportunidade experimentar cria uma sandbox. Uma sandbox é um local onde os usuários da sua API podem fazer testes com parâmetros e respostas sem ter que se preocupar com demais burocracias. Vai ser neste lugar que os seus desenvolvedores vão aprender sua API sem se preocupar em ter que pagar uma conta milionário no final do mês.

Não colocar a API em domínio separado da aplicação

No inicio pode ser que sua API esteja até na mesma máquina que sua aplicação. Isto não é o mais recomendado mas muitas startups fazem assim. Se você vai mesmo colocar tudo junto pelo menos coloque em domínios separados. Isto vai te dar maior tranquilidade na hora de escalar independentemente sua api. É melhor ter um api.myservice.com do que um myservice.com/api

Não ter um gerenciamento de comunidade

Sem uma comunidade de desenvolvedores dispostos a ajudar ums aos outros sua api está fadada ao fracasso. Criar uma comunidade exige tem e atenção. Um grupo de desenvolvedores dificilmente vai se juntar em torno de sua API sem um esforço muito grande da sua parte primeiro. Crie foruns, blogs, comente, responda, interaja enfim seja humano.

Não esperar mal comportamento

Alguém vai tentar quebrar sua API. Seja por curiosidade, seja com intenções criminosas esteja preparado para mal uso da sua API . Mantenha um sistema de monitorando constante para evitar surpresas desagradáveis.

Não tratar sua API como uma oportunidade de negócios

Sua API pode se tornar o principal produto da sua empresa. Permitir que outros criem algo a partir da tecnologia e produtos da sua empresa pode gerar um efeito em cascata maior do que o efeito original de seus produtos e serviços. Não descarte a possibilidade de sua API no futuro ser o maior driver de uso da sua plataforma.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.