Monday, October 17, 2005

Metáforas e analogias em software

Acho que se fizermos uma pesquisa sobre que práticas de XP são mais utilizadas ou fáceis a metáfora tem grandes chances de ficar segurando a lanterna. 8 em cada 10 pessoas (aviso logo que estou chutando) acham que sua aplicação é questionável. Porém, a grande surpresa é que elas estão sim utilizando metáforas o tempo todo para desenvolver software.

A informática é um campo construído sobre o abstrato e virtual. Metáforas são um excelente mecanismo para entender estas peças abstratas e muitas delas têm sido historicamente usadas com sucesso. Hoje em dia falamos naturalmente de 'área de trabalho', 'fluxo de dados', 'rede', 'pool de recursos', 'pipes (canos)', 'crawlers' ou outros termos.

Na minha opinião a grande dificuldade de se usar a metáfora é saber elaborar uma que seja útil e duradoura. Isto dificulta, mas não impede, seu papel como ferramenta de comunicação. Além disso, muitas das metáforas que usamos acabam nascendo naturalmente durante o processo. Seja em uma conversa informal entre pares ou durante a escrita de um pedaço de código.

Outro perigo eminente é o risco da metáfora ser sobre-utilizada, ou seja, forçada para além de onde ela é aplicável. Em alguns casos isso é detectável, pois a coisa começa a ficar um pouco ridícula, em outros casos a fronteira pode não ficar clara e levar a decisões incertas. Há pouco tempo hove uma discussão na lista de XP sobre metáfora, destaco uma mensagem de Tim Haughton em que ele relata uma metáfora bem sucedida que foi sobre-utilizada por alguns.

Como tudo em XP, a utilização da metáfora é algo pequeno e pontual que influencia no todo e, talvez por isso, fica invisível a muitos olhos. Eu como xispista acredito que o todo é maior que a simples soma das partes. É assustadora a diferença que as interações entres as partes podem fazer nesta equação.

0 Comments:

Post a Comment

<< Home