Sérgio Lopes Sakabatō, the reversed blog!

Não basta escolher, é preciso justificar!09 Oct 2008

Justificar, justificar, justificar!

Esta foi a única palavra que ouvi durante mais de uma semana. Estava na minha cabeça sempre que pensava no trabalho que tinha de desenvolver para começar o JFindMyFiles. E quando nos sentimos sobrecarregados com o trabalho e a ponta de desânimo aparece, começamos a pensar nestas exigências.

Para desenvolver o software para a cadeira de projecto do curso terei de justificar tudo o que faço, as escolhas e decisões que tomo, sejam elas quais forem. É frustrante saber que temos a escolha certa e não termos como justificar o que escolhemos, porque não temos documentação que apoie a nossa decisão.

A primeira luta foi a escolha da plataforma RCP, como é natural escolhi a plataforma Netbeans, que tirando o toolkit gráfico, o facto de ser realmente multi-plataforma, e alguns pormenores de de desenho, é bastante igual à plataforma eclipse e ambas permitem atingir o objectivo. Talvez excepto a parte do requisito “multi-plataforma”, que devido a um bug, não daria para atingir usando Eclipse RCP.

Como devem imaginar, documentação sobre estas duas plataformas existe em quantidades monumentais. Ele é livros, tutoriais, exemplos, wikis, Javadocs, tudo o que um programador precisa, excepto duas coisas: listagem das plataformas RCP existentes, e comparação entre elas. Até a Wikipédia que tanta informação tem, redireccionava recentemente o link de RCP para RIA, duas coisas completamente diferentes.

Como justificar então a escolha da plataforma? Sim, porque até o bug (1, 2, 3) não era conhecido na altura da análise e as duas plataformas pareciam ter exactamente o mesmo potencial, sendo apenas uma questão de gosto, coisa a que os arguentes da ESTG Leiria não acham muita piada, isto pelas apresentações de projecto que tenho visto nos dois últimos anos.

Recorri à experiência de outros programadores para me auxiliarem nesta demanda, e pedi ajuda na mailing list de utilizadores de Netbeans, discussão que podem seguir, caso tenham curiosidade em http://www.nabble.com/Choosing-Netbeans-platform-or-Eclipse-RCP-to16012394.html. A ajuda que me deram não foi muito grande uma vez que não posso usar como apoio na minha decisão, uma discussão numa lista, por mais conceituada que seja. Por sorte encontrei várias referências a um artigo publicado (sendo que artigos publicados são irrefutáveis :D) e comecei a animar… apenas para desanimar outra vez quando descobri que o dito artigo existia mesmo mas em alemão!, e não, eu não sei ponta de alemão.

Mas no momento em que mais se desespera aparece logo uma solução, contactado o autor do artigo sobre a possibilidade de obter algumas dicas em inglês, pelo menos umas notas que eu podesse usar, o mesmo se prontificou a enviar-me no dia seguinte uma versão do dito artigo em inglês. Pois é, ainda há gente simpática no mundo :), e um muito obrigado ao sr. Kai Toedter pela amabilidade.

No entanto tudo isto deixou uma pergunta que me tem vindo a incomodar: O que é que está a ser avaliado, os meus conhecimentos como engenheiro, a aplicação dos conceitos que aprendi e das metodologias de engenharia, que supostamente adquiri ou a minha capacidade de ler o que os outros fizeram? Estamos a formar engenheiros ou bons leitores?

Talvez tenha levado a necessidade de justificar coisas ao extremo, mas essa é a ideia que passa e que nos é transmitida durante o desenvolvimento do projecto.