Há alguns meses, meu grande amigo Ronaldo Richieri me convidou para ajudá-lo em uma questão em uma implementação do OTRS, o Open Ticket Request System, no caso para uma universidade do Rio de Janeiro.

Foi uma oportunidade boa para relembrar do OTRS, que já havia nos ajudado em tempos da antiga Computador Usado.com (que mudou de dono, de nome, de endereço e de filosofia). Lá na época havia grande entusiasmo pelo uso do software livre, inclusive como ferramenta para a democratização do uso do software e substituto do software pirata.

OTRS é muito funcional para gerenciar call centers e equipes de suporte. Ou qualquer outra configuração de atendimento em equipe. Ele pode ler diretamente os e-mails mandados para determinadas contas, autenticando-se, baixando as mensagens, indexando e organizando conforme for configurado. Já há uma tradução completa e quase perfeita português (existem algumas palavras mal escolhidas, mas pode-se corrigir isso).

O grande forte do OTRS é sua maleabilidade e modularidade. Há diversos módulos para instalar, e extensas opções de configuração e parametrização, tudo isso via interface web.

O que vejo como ponto fraco do sistema é a falta de documentação para se desenvolver módulos próprios, e até a arquitetura um tanto hermética, principalmente para quem está acostumado com Drupal e sua amigabilidade com os desenvolvedores.

A parte de visualização também é um pouco pobre. Não é muito atrativa, e não tem muito estudo de usabilidade, quase sempre dá vontade de criar um novo tema, o que é perfeitamente possível. Mas tudo tem um limite, quando se pensar em enriquecer a interface com AHAH e AJAX, trombamos novamente com a arquitetura.

Mas na vida nem tudo são flores, e quase sempre as dificuldades no OTRS são superadas pelas qualidades.

Meu amigo precisava justamente de modificações que não eram possíveis com configurações, parametrizações ou módulos existentes. Foi minha deixa para relembrar os velhos (e adquirir novos) conhecimentos em Perl, e ir fundo na arquitetura do OTRS.

No final das contas, a arquitetura do OTRS não oferecia uma oportunidade de interferência no que precisava ser mudado via módulo, sendo necessário criar um pequeno patch, modificando duas Actions e um Model do sistema.