sexta-feira, 18 de julho de 2008

Java "int the head" e .

Começou assim ...

Em nosso Sprint Planing, nosso 'PÔ' Rodrigo Pestana nos apresentou um email de um amigo dele na Europa informando que lá muitas empresas estão fugindo do Java e dando exclusividade para projetar sistemas usando PHP, Phyton, entre outros. E isto principalmente devido ao vasto e diferenciado número de frameworks existentes; e consequentemente os prováveis problemas que isto poderia estar causando no processo de arquitetura de softwares.

De fato, se fossemos contar a quantidade de frameworks disponíveis, que tem uso para funcionalidades semelhantes; poderiamos ficar muito confusos. Outro dia mesmo, entrei em um tópico em um JavaUserGroup brasileiro, e o resumo da história é que eu fiquei uns 3 dias em depressão por causa de tantas tecnologias que iam surgindo em comentários dos usuários. Cada um citava em média 5 tecnologias. O total de tecnologias únicas no tópico já deve estar passando de 70.

Então. Teria razão, o amigo do nosso P*** Orêia ?
No meu ponto de vista não. O número excessivo de frameworks, no meu pensamento, só nos traz benefícios. É o que estávamos conversando eu e Franzão outro dia (voltando do único restaurante que os 3º's tem 'beneficio' maior). Uma grande parte de frameworks já tem espaço no mercado e são tomados como padrão na hora de tocar um projeto em Java. Por exemplo: Struts, Spring, Hibernate, JUnit. Quem nunca ouviu falar deles ? Com eles temos tudo que precisamos para adotar o MVC no sistema. E realmente são eles que são utilizados na maioria das vezes.

Ok, não seria contraditório dizer que vários frameworks é bom, mas que poucos são tomados como padrão ? Hummm ... não ! Sabe porque ? Tudo no mundo evolui, e pra mim as pessoas que trabalham com Java podem esperar algum framework ter AQUELE destaque significativo nas comunidades pra aí sim pensar em ler algo à respeito dele. Poucos são os aventureiros que tem tempo de usar um framework, no qual ele tem pouco conhecimento, e que pouca gente usa. O que isso geraria ? Suponhamos que um dia ele precise tirar um dúvida (daquelas bem besta) sobre esse framework. Iria encontrar pouco conteúdo. Diferente dos que optam por usar os frameworks que já são praticamente API's disseminadas por 'desbravadores de frameworks' ou que por um
motivo ou outro tem bastante adeptos e conteúdo disponibilizado pra consulta.

Finalizando com tudo o que me veio na cabeça sobre frameworks, queria mostrar mais duas coisas que ví esta semana, que fizeram minha cabeça agir no estilo 'tranca,solta' (by CQC) auheaueahuae

1:
A notícia que a SUN e o Google tem dado apoio ao Phyton. fontes: GUJ e InfoQ
Na página inicial do setor de "developers" da SUN, note que dois principais itens de página são sobre o JRuby e sobre a então novidade: "Want some Phyton in you Java?".
Puts ! Essas notícias foram um p*** de um TRANCA na minha cabeça ! Eu todo feliz, acabei de comprar meu voucher pra fazer a certificação SCJP e me vem uma destas. Que tristeza né ... pensei ...

2:
Não demorou muito, e veio o ... SOLTA ...
kakakakaka Olha aqui europeus otários! O Java destruindo em performance! Que se fo** que a gente tem que escrever o dobro de linhas de códigos ... pois a gente SABE fazer isso!

Abraços !

Desejo muito sucesso pro pessoal que conhecí na CTBC. Sem exceção alguma, aquela fila inteira (dum lado e doutro) lá da 236; os chefes e pessoal da plataforma do C.A.

PS: Eu vou embora mas eu deixo vocês me chamarem pro churrasco grátis que nosso P.O. tá nos devendo hein !

Namastê
All Rights Reserved by EU MESS !

quarta-feira, 2 de julho de 2008

Pair Programming/Code Review

"Duas cabeças pensam melhor do que uma."

Acho que essa frase, cujo autor eu desconheço, reflete a essência da programação em par (pair programming). Não vamos chover no molhado aqui explicando o conceito que é melhor descrito aqui, aqui ou aqui.

Os prós da programação em par (código com melhor qualidade, em parte devido a maior atenção do programador quando sob o efeito de outro par de olhos, aprendizado e troca de experiência, etc, etc) puderam ser sentidas com a pequena experiência que alguns desenvolvedores tiveram ao adotarem esta prática em algumas tarefas.

Agora a pergunta que não quer calar é se estamos fazendo programação em par de forma sistemática. Bom a resposta é não. "Mas como ? Você acabou de dizer que programação em par é uma ótima técnica. É bom ou não ?". Deixe explicar.

Primeiro em "um ambinte Scrum" a democracia é fundamental. Sem este preceito as pessoas não se envolvem não sentem-se estimuladas a agir e por melhor que seja uma idéa a probabilidade de ela fracassar por causa deste "fator humano" é grande.

Como não "votamos" o uso da programação em par (devido ao tempo de apresentar a ideia seus preceitos básicos etc etc) os próprios integrantes do time se encarregaram eles mesmos de utilizarem esta técnica quando acharam conveniente. Mesmo sem saber que o que estavam fazendo era pair programming.

Respondendo a pergunta a programação em par é usada quando o time acha necessário e os motivos são: aprendizado(um programador tem um skill que pode auxiliar outro na realização da tarefa), qualidade do código (dois desenvolvedores tem tarefas semelhantes logo resolveram executar as duas tarefas juntos).

Mas mesmo com essa liberdade no uso ou não da programação em par tentamos sempre fazer uso da revisão do código(ok ok, isso não foi votado mas espero não ver nenhuma rebelião por causa disto ... o que é isso lá fora tochas, uma fogueira ???) e não exite um revisor fixo (tá bom eu confesso as vezes eu reviso). A revisão não tem o intuito de desqualificar o código sendo revisado. A intenção é que revisor e o autor do código entrem em consenso sobre o melhor caminho para boas práticas de codificação e código de qualidade. Ambos aprendem e todos ganham. Bom essa é a intenção quem pode falar se estamos conseguindo este objetivo é o time (não vou pressionar ninguém a falar algo positivo sobre este artigo mas sabem aquelas férias na Disney de que falei ? Pois é, o primeiro que falar que o que escrevi é metira pode dar adeus as férias).

"Conhece-te a ti mesmo".

P.S: Como esse artigo tá muito sério resolvi citar Sócrates. :-D