Posts

Tracking Subjetivo

Image
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. Durante o semestre, em todos os dias de trabalho, cada membro da equipe era responsável por desenhar a sua "carinha", representando seu estado de espírito: triste, feliz, irritado, etc. Ao longo das primeiras semanas a equipe exagerou no humor. O excesso de humor prejudicou o caráter informativo que o cartaz deveria ter. No cartaz à direita da foto, a equipe tentou melhorar o nível de informação, criando um código de cores para c...

A poesia de programar

Image
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 criando uma coisa nova. Se olharmos para o código de vários programadores, veremos o mesmo problema resolvido de várias maneiras diferentes. Existem programas bem e mal escritos. Por ser uma atividade totalmente criativa, programadores deveriam ser treinados como pessoas criativas, artistas e poetas. E como os poetas são treinad...

Tracker no Pabx Virtual

Image
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 d uplicações e o código ficou muito mais limpo e fácil de alterar. No gráfico seguinte vemos que, e nquanto o número de linhas de código diminuiu drasticamente, o número de linhas de c ódigo de teste aumentou, o que significa que além de desenvolver novas funcionalidades, melhorar a qualidade do código do produto, ainda criamos uma série de testes automatizados que ajudam a garantir a qualidade do sistemas nas próximas versões. No próximo gráfico vemos que o número de classes do sistema aumentou bastante, indicando que houve um aumento na modularização e reutilização do código. Mais classes com menos código significa maior especialização das classes, métodos menore...

XP no Projeto Borboleta

Neste último semestre, participei como coach do Projeto Borboleta , no laboratório de Programação eXtrema do IME-USP . A equipe tinha dez programadores, todos alunos de graduação do curso de Ciência da Computação. O Borboleta é um projeto que começou a ser desenvolvido em 2004, como trabalho de formatura de alguns alunos do IME. O projeto consiste em uma desenvolver uma aplicação para dispositivos móveis (Palmtops, celulares) que auxilie agentes de saúde no atendimento do programa APD (Apoio a Populações Desfavorecidas). Com o uso desse sistema, os agentes poderão preencher prontuários médicos eletrônicos, consultar estoques de remédios, consultar o histórico médico dos pacientes, tudo isso de forma prática e rápida. Além disso, os dados coletados no atendimento podem ser integrados a um banco de dados que fornecerá estatísticas importantes aos órgãos do sistema de saúde. Em 2006, também no laboratório de Programação eXtrema do IME, o sistema foi melhorado por uma equipe de seis progra...

Padrões para Introduzir Novas Idéias

Recentemente escrevi um trabalho sobre Padrões para Introduzir Novas Idéias , que resume o livro Fearless Change (de Linda Rising e Mary Lynn Manns). Além do resumo, fiz vários comentários relacionados ao desenvolvimento ágil de software e experiências com uso de padrões. Este trabalho pode ser lido aqui . Todos os comentários são muito bem vindos.

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.   Encontrei um artigo que resume bem o que é Injeção de Dependência e como resolvê-la para o caso específico de quem usa Java + Struts: http://jakubkorab.blogspot.com/2005/04/dependency-injection-with-spring-and.html . Não sei como funcionaria em .NET, mas acho que deve existir algo similar. Vamos tentar abordar este assunto no grupo de estudos.   Muitas vezes...

Postagem Inicial

Há algum tempo penso em criar um blog. O principal objetivo é compartilhar neste blog os conhecimentos adquiridos no trabalho , estudos e o que eu chamaria de momentos de arte. Domenico Di Masi chama de ócio criativo o espaço em que esses três elementos se unem: trabalho , estudos e jogos. Eu preferi trocar a palavra jogos pela palavra arte , que está ligada ao lado intuitivo, inconsciente, natural, verdadeiro do ser humano.