Archive for June, 2010
Balanço do Agile Brazil 2010
Aconteceu o Agile Brazil 2010.
O evento ocorreu na bela cidade de Porto Alegre, e eu estive por lá:
Pessoal da Stefanini compareceu em peso no evento.
Um dos aspectos positivos foi a quantidade de participantes, que girou em torno de 800 pessoas.
O número superou a expectativa dos organizadores, que mandaram bem em disponibilizar a infra-estrutura necessária para comportar o público.
Martin Fowler foi o responsável pelo keynote que deu início ao evento.
Dentre outras coisas, seu discurso abordou um pouco da mentalidade que deu origem à comunidade.
Não me dei muito bem com a programação do primeiro dia de evento.
De relevante gostei de ouvir a experiência do pessoal da DBServer, que também estão preocupados em agregar valor ao negócio de seus clientes, e expuseram os modelos de contrato sobre os quais seus projetos têem sido vendidos.
Já no segundo dia, gostei da palestra do James Lewis, da ThoughtWorks, que apresentou uma série de anti-patterns vivenciados na implantação de práticas ágeis.
O destaque positivo fica para o keynote de encerramento, que foi dado pelo Klaus Wuestefeld, e vou explicar o porquê no balanço que fiz do evento:
A conclusão que tiro do Agile Brazil 2010 é que ainda temos muitas lições a aprender.
Acredito que antes de qualquer coisa, a motivação por trás das práticas ágeis é a de entregar, com frequência, maior valor de negócio ao cliente final de um projeto de software.
O que tenho visto na comunidade ágil é a ineficiência na transmissão desta motivação.
Destaquei o keynote do Klaus pois ele se mostrou muito mais preocupado em extrair maior resultado de seu trabalho do que seguir receitas de bolo. E expôs suas idéias com muita clareza e propriedade.
Concluindo, espero que o amadurecimento da comunidade se acelere daqui para frente, e que a transmissão dos valores do manifesto ágil não se perca em meio ao hype que tem tomado a indústria.
Escovação de bits

Tendo como pano de fundo o cenário de software corporativo – estes que geralmente escrevemos em java ou .net.
Um bom domínio de ciência de computação, passando pela chamada escovação de bits, é imprescindível para a formação de um desenvolvedor de software?
Particularmente acredito que um desenvolvedor de uma plataforma moderna sobrevive bem, sem estes conhecimentos.
Mas aquilo que eu chamo de sobreviver está bem distante do que considero competências idealmente existentes em um profissional completo.
Então a coisa fica assim:
Você pode ser um bom desenvolvedor java/.net/[outra plataforma moderna] mesmo sem dominar ciência da computação.
Você não pode ser um desenvolvedor completo sem dominar ciência da computacão.
E por último, você não pode ser um arquiteto de software competente sem dominar ciência da computação.
E a sua opinião, qual é?
Boas práticas: cuidado com elas
Ter em mãos um conjunto pré-definido de boas práticas a serem consideradas no início de um novo projeto pode ser muito positivo.
No entanto, algo muito negativo pode decorrer do reconhecimento de boas práticas:
A falácia de interpretá-las como verdade absoluta, um modelo rígido a ser seguido.
A verdade é que não existe resposta fácil na disciplina de engenharia de software.
Boas práticas são importantes sim, porém estas devem ser consideradas e contestadas conforme as características do contexto existente.
Segundo Taiichi Ohno, autor do sistema de produção da Toyota, se você enxergar um modelo como solução para todos os problemas, então a motivação pela busca por melhoria contínua deixará de existir.
Além disso, antes de enxergar uma determinada prática como algo importante para o alcance dos objetivos de seu projeto, saiba exatamente o que esperar do emprego desta prática, e qual o custo-benefício envolvido.
E para concluir, vale lembrar também do primeiro item do manifesto ágil:
Indivíduos e interações são mais importantes que processos e ferramentas.
(Inglês) Database Integration Tests – implementing it
Este texto está disponível apenas em Inglês.
