Por que o SMContent

SMContent X Open Source

Há várias soluções gratuitas e open source para gerenciamento de conteúdo disponíveis atualmente. E muitas delas são de boa qualidade. Então, uma pergunta que você pode se fazer é:

- Por que comprar uma ferramenta se existem tantas opções gratuitas e até mesmo open source?

Existem muitas respostas para essa pergunta. A resposta pode inclusive indicar que para sua empresa a solução open source é a mais adequada. Entretanto, essa não é a resposta para todas as empresas, e provavelmente não é a melhor opção para a maioria.
 

Soluções gratuitas e soluções open source

Numa solução gratuita não existe cobrança de licença ou taxas de manutenção para uso daquele produto, sendo que você se responsabiliza pela instalação e gerenciamento do mesmo, sem direito a suporte ou qualquer tipo de garantia. Uma solução gratuita pode eventualmente liberar o código fonte do produto para consulta, distribuição ou mesmo customização.

O conceito de open source vai um pouco além de software gratuito com liberação de código fonte. Normalmente existe uma comunidade de usuários e desenvolvedores envolvida, e o uso do software é regido por algum tipo de licença, como por exemplo GPL, LGPL, dentre outras. 

As soluções open source são, portanto, desenvolvidas por um conjunto de pessoas, frequentemente espalhadas pelo mundo, que na maioria das vezes contribuem em seu tempo livre sem receber nenhum retorno financeiro por seu trabalho. À primeira vista pode parecer que não há nenhum estímulo para essas pessoas, mas curiosamente muitas se empenham intensamente em suas contribuições, seja para ganhar reconhecimento,  por hobby ou simplesmente pelo que poderíamos denominar "espírito open source".
 

Por que usar (ou não usar) soluções gratuitas ou open source na minha empresa?

Vamos aqui tentar esclarecer alguns pontos para que você mesmo possa responder à pergunta feita no início desse texto.

Soluções gratuitas e open source tem um grande chamativo que é seu custo inicial. Isso é um fator a ser considerado, mas certamente não é o único. É preciso avaliar se a solução realmente atende as necessidades atuais de sua empresa, e também as necessidades de médio e longo prazo. Apesar de haver muitas comunidades open source realmente ativas e dinâmicas, não existe nenhuma garantia que aquele produto continuará sendo mantido, desenvolvido, ou que não haverá mudanças importantes em termos de requisitos e infra-estrutura necessárias. Há ainda outros aspectos a serem considerados: 
 

Conhecimento técnico

As soluções open source geralmente requerem algum conhecimento técnico, algumas requerendo conhecimentos mais profundos e outras conhecimentos básicos. Tais conhecimentos serão necessários não apenas na instalação mas também na atualização para novas versões.

Podemos considerar o upload de arquivos para um servidor como um conhecimento básico que pode ser feito pela maioria dos usuários de internet. Algumas outras atividades, como por exemplo criação de banco de dados, definição de permissão em diretórios, criação de pasta virtual, atualização de framework, definição de configurações em arquivos xml, etc, dificilmente serão realizadas a contento por usuários não técnicos. Essas atividades podem estar bem documentadas, mas na eventualidade de um problema (e eles sempre estão presentes) dificilmente o usuário comum saberá corrigí-lo.

 

Direcionamento do produto, manutenção e customizações

Como vimos, as soluções open source geralmente são desenvolvidas e utilizadas por um grande número de pessoas. Por esse motivo, há uma enorme quantidade de solicitações de novos recursos e de correção de erros, sendo uns mais importantes para uns usuários e alguns mais importantes para outros. Em muitas comunidades open source esse dilema é resolvido através do voto, para que requisitos comuns sejam atendidos mais rapidamente. Caso você necessite algum novo recurso e sua empresa não possua uma equipe que possa desenvolvê-lo, muito provavelmente você terá que sugerí-lo e aguardar a avaliação dos desenvolvedores e a eventual implementação, testes, e liberação de um novo release contemplando tal recurso.

Mesmo que o requisito que você necessita seja "popular", ou seja, muitos outros usuários desejam e votaram pela implementação do recurso ou na correção do problema, o processo envolvendo o desenvolvimento, testes e liberação num release estável pode levar entre semanas e meses. De fato, tal período é totalmente indeterminado visto que normalmente depende do tempo livre das pessoas que contribuem com o projeto. Além disso, muito frequentemente as novas versões só são liberadas após um grande número de correções e novas implementações terem sido concluídas.

O mais importante é levar em consideração que tal processo vale tanto para desenvolvimento de novos recursos quanto para correção de problemas identificados no produto. Muitos problemas considerados de baixo impacto, mas que afetam diretamente sua empresa, podem ficar por vários meses sem uma solução.

Existe ainda um outro problema. Digamos que o recurso que você tanto desejava que fosse implementado foi finalmente liberado num release. Nesse momento será necessário fazer uma atualização de versão que envolverá realização de backup, atualização de arquivos, atualização de banco de dados, instalação de bibliotecas de terceiros, definição de configurações em arquivos xml, etc. E essas atividades terão que ser realizadas por você ou por alguém de sua empresa.

Em resumo, as suas necessidades provavelmente terão um peso muito pequeno no direcionamento do produto. E mesmo quando elas estiverem alinhadas com a maior parte da comunidade, levará vários meses até que elas sejam plenamente atendidas.
 

Idioma da solução

Um outro ponto importante a ressaltar é que a maioria das soluções gratuitas e open source "nascem" na língua inglesa e em seguida são portados para outras línguas, como francês, espanhol, alemão, português, etc. Esse processo de suporte a outro idioma vai muito além de mera tradução de interfaces. É fácil perceber isso quando vemos que o conjunto de caracteres, formato de data, formato monetário, entre tantos outros, são completamente diferentes de uma língua para outra. Por esse motivo não é raro encontrarmos problemas que só acontecem por exemplo com caracteres acentuados (que não são utilizados na língua inglesa) ou com data ou valor monetário em um formato diferente do americano.

 

Sugestão

Se o produto atende plenamente às suas necessidades atualmente, se o plano de desenvolvimento de novos recursos e correções está alinhado com suas necessidades futuras e se você ou sua equipe possui domínio da tecnologia, open source pode ser uma boa opção. Entretanto, se você ou sua equipe não domina a tecnologia do produto, ou mesmo se as perspectivas de futuros desenvolvimentos não estão alinhadas com suas necessidades, a adoção desse tipo de solução pode representar um grande problema no médio prazo, ou eventualmente num prazo mais curto.
 

Permita-me agora fazer uma pergunta um tanto quanto capciosa. Por que você utiliza Windows ao invés de Linux?