sexta-feira, 14 de agosto de 2009

Desenvolver Ou Não Desenvolver, Eis a Questão

Estava fuçando o Twitter e pensei: como faço pra ver os tweets da galera que estou acompanhando, de forma fácil? Aí tive a idéia de implementar um gadget pra Barra Lateral do Windows Vista que mostrasse os tweets de algumas contas que eu configurasse. Comecei a estudar como desenvolver um gadget pra Barra Lateral do Vista, e encontrei alguma material sobre isto no MSDN (Windows Sidebar: Introdução aos Gadgets, Developers Guide e Reference).

Em resumo, os gadgets nada mais são do que código HTML mostrados em janelas que são instâncias aparentemente restritas do Internet Explorer (restritas pois tentei mostrar um objeto em Flash e não rolou). Peguei o código HTML pra mostrar meus tweets em uma página HTML, coloquei em um gadget, e apareceu lá. Nice...

Bem, feita a "prova de conceito", vamos desenvolver o gadget todo. Quero alguma coisa que dê para eu configurar quais contas no Twitter eu quero visualizar. Tem que ser mostrados os tweets mais recentes de todas as contas configuradas. Ok. Tenho que criar um tela de configuração pra que sejam fornecidas as contas que quero acompanhar. Tenho que bolar algum jeito de mostrar os tweets recentes de todas essas contas, algo como recarregar a tela de x em x segundos com os tweets da próxima conta da lista que defini, ou talvez uma barra de rolagem... Hummm, fazer isso em JavaScript (eca)....

No final usei o gadget de vizualizar RSS do Vista, acrescentei uma instância pra o RSS de cada conta do Tweeter que queria acompanhar e fui gastar meu tempo em algo mais "nobre". Moral da estória é que às vezes a solução não sai exatamente como desejamos (ou até mesmo longe do ideal), mas para o nosso cliente, na grande maioria das vezes, a solução parcial atende totalmente às suas necessidades, mesmo que uma solução mais completa "atendesse mais".

Isto é terrível pra um desenvolvedor que gosta de desenvolver. É a mesma coisa que jogar um osso pra um cachorro e falar "Ó, morde só um pouquinho e depois me devolve". E geralmente nós, desenvolvedores, reagimos como cachorros - algumas rosnadas e até uma eventual mordida Sorriso. Mas nós temos que lembrar que o objetivo último de nossa profissão é atender às necessidades do cliente. E tem como se divertir trabalhando assim também. Versionamento, entregas curtas e outros conceitos semelhantes permitem que nós organizemos nosso trabalho para fazer isto. É só se esforçar um pouquinho pra "dividir o osso" com nosso cliente - afinal de contas, às vezes a gente esquece, mas ele também quer usar a solução... Wink