23 de setembro de 2011

Quando o que temos são as incertezas

Bem, estou novamente trabalhando como desenvolvedor web. Na verdade, sou uma mistura de Scrum Master, desenvolvedor e líder técnico. Se é pra ser multidisciplinar, que sejamos nós mesmos! Aqui na X4IDS isso é normal e incentivado.

Nesse projeto, somos uma equipe de quatro pessoas e uma delas trabalha remotamente, em outro Estado. No primeiro dia do projeto delineamos um objetivo pequeno, claro e palpável. Era nossa primeira user story.

Na prática, tínhamos apenas uma ideia e várias incertezas. Bem típico de um projeto de software, não é? Mas nem sempre a realidade mostra-se tão clara. Dessa vez, demos sorte.

Dividimos nossa user story em tarefas e escolhemos os respectivos responsáveis. Não conseguimos estimar o tamanho de nenhuma delas, pois era uma tecnologia até então desconhecida de todos nós. Se usássemos o Planning Poker, teríamos uma coleção de aliens (ou de interrogações) na mesa! Se partíssemos para o T-Shirt Sizing, teríamos uma prateleira inteira de roupas XXL.

Trabalhamos cinco dias. Fizemos nossas reuniões diárias religiosamente. Conversamos. Criamos novas tarefas em função dos sucessos e fracassos das tarefas originais. Sugerimos. Pesquisamos. Experimentamos. Modificamos. Aprendemos.

Ontem, no início da tarde, concluímos nossa user story. Estamos praticando o Lean Software e um pouco de Scrum. Estamos validando ideias e entregando valor cedo. Já temos algumas certezas. Estamos felizes.

Quando o que temos são as incertezas, resta-nos dar um passo de cada vez. "Baby steps, baby. Baby steps."

Até já pensamos o que vamos aprontar na Campus Party 2012 com esse projeto.

Em breve iniciaremos tech talks aqui na empresa e estamos ansiosos.

E você, como tem tocado seus projetos e compartilhado o conhecimento nas equipes?

Atitudes necessárias para sucesso nos projetos

Hoje eu assisti ao filme "Planeta dos Macacos: A Origem". Não sou evolucionista, portanto, não me ative a esse aspecto do filme. Considerei-o como um filme sobre liderança, como podemos ver no trailer a seguir:


Cesar, o chimpanzé que é o personagem central, usa racionalmente a psicologia para se estabelecer como líder dos macacos. Não há medo de lidar com outros mais fortes, nem de estabelecer uma relação de interdependência com eles, onde a inteligência une-se à força e, juntas, alcançam seu ideal.

Ele cria esperança aonde não havia. Permite que os macacos pratiquem suas capacidades. Estabelece acordos, não flexibiliza princípios. Também observa o ambiente e tira proveito das limitações, transformando-as em trampolins para a genialidade. Vemos claramente o papel daqueles que não são os líderes, que conhecem o seu potencial, mas que decidem fazer parte do grupo.

Sob essa ótica, recomendo o filme. Para gerentes de projeto, coordenadores de equipe ou empreendedores, considero uma boa oportunidade de aprendizado. Não só com os símios, mas também com os humanos.

Pegando carona, listo abaixo alguns vídeos que mostram alguns aspectos importantes para desenvolvedores de software em geral.

Ter informação faz toda a diferença:


Conhecer as regras do jogo e adaptar-se durante a partida, podem tornar você um vencedor:

E lembre-se: apenas boas intenções não bastam!


15 de setembro de 2011

Boas práticas de programação

@R4bugento twitou 40 dicas sobre boas práticas de programação e resolvi colaborar um pouco:
  1. Escreva código pra outras pessoas entenderem.
  2. Tente escrever código que não precise de comentários para ser entendido.
  3. Escreva pouco código. Quanto mais código, maiores as chances de problemas.
  4. Escreva no mesmo padrão que sua equipe já codifica, se você entrar depois da turma.
  5. Sempre que possível, escolha uma linguagem produtiva.
  6. Leia código dos outros.
  7. Aprenda a dar manutenção em programas que outra pessoa fez.
  8. Nunca altere o conteúdo do contador do for. E se precisar fazer isso, documente.
  9. Aprenda TDD.
  10. Pratique.
Alguma outra dica importante que esqueci?

12 de setembro de 2011

As estimativas são amigas

"Não conhecer a velocidade da equipe é a causa raiz de 100% dos planejamentos fracassados das releases [de produtos]." (Jeff Sutherland, criador do Scrum).

Uma pergunta natural que qualquer cliente faz é: "quanto tempo isso vai demorar?" Nós, de T.I, não gostamos dessa pergunta porque somos ruins para estimar prazo. Afinal, quase 70% dos projetos de T.I fracassam.

Duvida? Veja a Pesquisa que o Standish Group divulgou em 2009 sobre isso.

Fazer estimativas próximas do real é um passo importante que a T.I dá em direção ao tão falado "alinhamento com o negócio", mas que ainda parece distante. Quase nos ofendemos quando alguém pergunta em quanto tempo vamos entregar o que estamos fazendo.

Não gostamos de sermos fiscalizados, porque não temos coisa boa pra mostrar. Lembra daquele ditado que diz "quem não deve, não teme"?

As metodologias ágeis vieram para nos ajudar com isso, tornando as estimativas aliadas da equipe de desenvolvimento. Alguns pontos e dicas básicas:

  1. Não demore muito fazendo as estimativas. O importante mesmo é entregar software funcionando e não adivinhar em quanto tempo as tarefas serão entregues.
  2. Estimar não significa assinar um contrato de morte, em caso de erro.  É errando que se aprende.
  3. As estimativas vão melhorando à medida que a equipe vai conhecendo o projeto, desbravando os meandro técnicos específicos dele e dominando as regras de negócio.
  4. Não tente estimar em horas. Estime em Story Points ou T-Shirt Sizing.
  5. A mesma história certamente terá estimativas diferentes, se feitas por pessoas diferentes. As experiências de cada uma delas é determinante para a estimativa.
  6. Inclua as estimativas na retrospectiva do Sprint, para que o grupo tenha oportunidade de dizer o que aprendeu com elas.
  7. Não use as estimativas contra sua equipe. Se você fizer isso, a equipe vai começar a colocar "gordurinha" nas estimativas. Aí, meu caro, começou o joguinho do "me engana que eu gosto".
Leia mais em "Scrum: Why Story Points Are Better Than Hours"
Sobre T-Shirt Sizing estimation, leia "T-Shirt Estimates", um artigo bem prático sobre o assunto.

Livre-se do que não presta

Mark Parker (CEO da Nike) -- Você tem algum conselho pra mim?
Steve Jobs (CEO da Apple) -- Só uma coisa. A Nike faz alguns dos melhores produtos do mundo. São coisas que as pessoas cobiçam. Mas vocês também fazem muita porcaria. Livre-se do que não presta e foque no que é bom.

"As pessoas pensam que foco significa dizer sim para o que você está focando. Mas não é, de jeito nenhum, o que essa palavra significa. Ela significa dizer não para centenas de outras boas ideias que aparecem. Você precisa pinçar com cuidado. Na verdade, eu sou tão orgulhoso das coisas que não fizemos, como das que fizemos. Inovação é dizer 'não' para 1000 coisas." (Steve Jobs)

11 de setembro de 2011

Ética

Ética é fazer a coisa certa, mesmo quando ninguém está vendo.

1 de setembro de 2011

Dicas para melhorar apresentações de slides

Muita gente se pega com a tarefa de preparar slides para uma apresentação. E agora?

Calma. Veja algumas dicas úteis

Tecnologia da Comunicação

(Gerente) - Bom dia, pessoal.
(José) - Bom dia.
(Maria) - Bom dia.
(Gerente) - Como estão as coisas? Os processamentos da noite já acabaram?
(João) - Bom dia.
(José) - A minha parte já. ;-)
(Carlos) - A minha não. Deu erro e tive que submeter novamente.
(Érica) - Bom dia.
(Gerente) - E o que vamos fazer p/ terminarmos a tempo?
(Maria) - É... não confere o serviço... isso que dá! rsrsrs
(Carlos) - Estou acompanhando. Acho que termina em 30 min.
(Gabriel) - Bom dia.
(Gerente) - Fique de olho e me avise sobre qq novidade, ok?
(Denise) - Bom dia. Minha parte tb tá ok.

Você já se pegou conversando em um instant messenger (skype, msn messenger) com o colega da mesa ao lado?

Eu já. E o pior: nem era para me esconder do gerente. Ele próprio incentivava esse comportamento da equipe.

Essa conversa acima não é brincadeira, não. Acontecia mesmo. Claro que eu não coloquei tudo o que rolava. E os nomes também são fictícios. Se você está achando estranho, saiba que eu achei esquisitíssimo, quando cheguei nesse ambiente. Caótico até.

Informações sérias para o projeto eram trocadas via instant messenger. A alegação era que a mensagem era instantânea. Sim, para quem estivesse online naquele momento, né?

A situação fica mais esquisita ainda quando você pára e percebe que todos os participantes do chat estavam na mesma sala. E que tínhamos uma sala de reunião à disposição praticamente o dia todo.

Comunicados importantes? Vai por instant messenger.
Mudanças de planos? Dá-lhe instant messenger.
Cobrança de serviços? Lá vem instant messenger.

Uma conversa com todo mundo de 2 min? Prá quê?! Basta escrever no instant messenger que todo mundo lê.

Tirando o inconveniente daquelas incontáveis mensagens de: "rsrs", ":-)", ";-)", "eu tb", "eu não" e etc., talvez as piores partes sejam a falta de formalidade e a falta de comunicação olho no olho, que gera compromisso e comprometimento.

Você já tentou procurar por um texto importante em uma conferência no Skype? E o pior, a empresa dizia que esses softwares não deveriam ser usados. Mas o gerente estava lá, mandando instant messenger.

Portanto, a melhor tecnologia da comunicação, na minha opinião é o olho-no-olho, o téte-a-téte, onde não precisamos colocar emoticons para dar entonação à fala.

Líder que lidera tem que juntar as pessoas e fazer com que elas se comuniquem (dizer, falar com a boca mesmo) e olhem no olho.

A tecnologia evolui. A comunicação também. Mas precisamos saber aonde vamos dispensar a conversa pessoal.

Existe mais real-time e sincero do que o cara-a-cara?