Posts

Enquete Arte / Computação

Image
Para minha pesquisa de mestrado, gostaria de saber mais a opinião das pessoas sobre a relação entre Arte e desenvolvimento de software . No que você acha os itens abaixo se relacionam com computação? Teatro Música Literatura Dança Cinema Pintura Outras formas de expressão artística Contribuam com comentários, links, críticas, idéias!

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...