Planning Poker – vamos nos divertir e integrar

Semana passada ministrei um curso prático de XP pela AgilCoop. O formato do curso é bem interessante e ideal para pessoas nunca tiveram contato com a metodologia OU conhecem a teoria mas nunca usaram as práticas.

O curso tem 20 horas de duração. O objetivo é usar a metodologia para desenvolver em 4 ciclos de 4 horas uma Pizzaria Online – a AgilPizza. As outras 4 horas são destinadas a explicações básicas e encerramento do curso.

Cada ciclo de 4 horas está dividido em 30min de planejamento, 3.5h de desenvolvimento e 15 minutos de retrospectivas.

O curso é uma versão no meio do caminho entre o Jogo de XP (onde cada iteração dura 1 minuto) e o ambiente de desenvolvimento real (onde cada iteração tem em média de 5 a 20 dias de duração).

A atmosfera de brincadeira e diversão criada em torno desse projeto de pizzaria é um dos atributos chave para o aprendizado da metodologia. Continue reading

Criação, Padrões e Arte

Uma ótima maneira de aprender a fazer alguma coisa é fazendo. Os livros de português e gramática estão aí e ajudam muito no ensino da escrita, mas para aprender a escrever é preciso escrever. Assim como para aprender a fazer software é preciso programar. Só se aprende a meditar meditando. São atividades cujo aprendizado vem da prática, não da teoria.

Estou relizando um trabalho que aborda prática, não as teorias. Recomendo a ação e a arte. Arte é ação, é criação. Do dicionário:

cri.a.ção sf (lat creatione)

  1. Ação ou efeito de criar, de tirar do nada.
  2. Totalidade dos seres criados.
  3. O universo visível.
  4. Produção, obra, invento.
  5. Estabelecimento, formação, fundação, instituição.
  6. Amamentação de uma criança.
  7. Educação.
  8. Animais domésticos que se criam para alimento do homem.
  9. Propagação da espécie.
  10. Alvenaria de pedras miúdas e argamassa que serve de enchimento aos vãos deixados pelas pedras mais volumosas.
  11. Nas agências de publicidade, o conjunto formado pelos departamentos de redação e de arte.


Alguns significados da palavra criação são óbvios (1,4,5). Continue reading

A Arte como ferramenta para inovação

Hoje sabe-se muito bem que um programador não produzirá 25% a mais se trabalhar 10 ao invés de 8 horas diárias. A vinda de métodos ágeis trouxe muitas mudanças e quebra de preconceitos trazidos da revolução industrial. Ainda assim, existem muitos paradigmas a serem quebrado. Na era industrial, a fórmula de um produto era guardada a sete chaves. Essa fórmula secreta garantia que o produto não seria copiado. Naquela época, a exclusividade na comercialização de produtos foi muito lucrativa para as indústrias.

A partir do surgimento da Internet, Continue reading

Práticas que vão bem com o plano de iterações

Joca Torres defendeu nesse post algumas vantagens de usar métodos ágeis, do ponto de vista do gerente de produtos. O design incremental e o uso de iterações permite que o cliente veja mais rapidamente aquilo que já está pronto. A partir do momento que o cliente está usando nosso software, ele começa a PAGAR e a ter benefícios (e nós também!).

Porém, do ponto de vista do time de desenvolvimento, existem alguns cuidados que precisam ser tomados para que o software se torne “modificável” para atender as necessidades do cliente. Para entregar funcionalidade de forma incremental, você precisa ter um ambiente de desenvolvimento e uma base de código que facilite e permita essas entregas iterativas.

As práticas de XP são um guia para isso. O gerente de produtos tem muito contato com as práticas de planejamento (histórias, iterações, velocidade etc) mas em software não basta planejar. Continue reading

Tracking Subjetivo

O tracker é conhecido como a consciência do time. É ele quem mostra números, gráficos, tabelas. Os dados que o tracker coleta podem ser objetivos (ex: número total de testes, total de horas estimadas por release, estimativas versus realizações) ou subjetivos (ex: nível de satisfação da equipe, qualidade do código. Coloco aqui algumas fotos de tracking subjetivo, tiradas de cartazes feitos durante o segundo semestre de 2007 no Projeto Borboleta

A primeira delas (clique na imagem para vê-la em tamanho grande) é do “humorômetro” da equipe. Continue reading

A poesia de programar

Em dezembro de 2002, Richard Gabriel, um grande nome da Computação e ex-engenheiro da Sun, falou sobre a semelhança entre programar computadores e escrever poesias. Como é possível que essas duas atividades, aparentemente pertencentes a áreas tão distintas, tenham coisas em comum?

O atividade de escrever software deve ser vista como uma atividade criativa. Afinal, software interessante de se fazer é software que nunca foi feito. Essa atividade não pode ser comparada à de criar pontes, por exemplo. Nós construímos pontes há mais de 2000 anos. O software mais antigo não deve ter mais de 50 anos! Mesmo utilizando boas ferramentas, um programador está quase sempre Continue reading

Tracker no Pabx Virtual

Durante 9 meses de trabalho no projeto do Pabx Virtual da LocaWeb, coletamos informações estatísticas do código do projeto. Baseado nessas informações tirei algumas conclusões.
No gráfico à direita vemos
claramente que o projeto tinha inicialmente muito código duplicado. Depois de várias Refatorações, foram removidas duplicações e o código ficou muito mais limpo e fácil de alterar.

No gráfico seguinte Continue reading

Testabilidade e Injeção de Dependência

Estudando a nossa aplicação do PabxVirtual, percebemos que a forma como a aplicação está desenvolvida impede que criemos testes unitários automatizados em alguns pontos importantes do sistema. Para contornar o problema, adotamos testes de aceitação, como forma de garantir que nosso sistema não falhará. O grande problema destes testes é que quanto apontam algum erro, existe uma grande dificuldade de diagnosticar onde está o erro.
 
Analisando o problema a fundo e depois de uma grande ajuda do Dediana, percebi uma boa sáida para o nosso problema. A solução é usar  Injeção de Dependência. Continue reading