Por que Open Source ?
Rodrigo Prior16.08.2011 - 13:32(upd: 12.02.2019 - 15:46)
Esse primeiro artigo vem de encontro a uma série de perguntas que recebemos ao longo das visitas e contatos comerciais. Acreditamos que explicar o caminho para as decisões que foram tomadas até agora também é importante, por isso o artigo trata deste assunto. As perguntas mais relevantes estão relacionadas aos motivos pelos quais a Infranology adotou determinadas tecnologias open source utilizadas no nosso dia a dia.
O Início
No início da vida da empresa desenvolvíamos soluções com um software proprietário e desde 2006 a empresa vem sendo direcionada para projetos que utilizam uma base de código open source. Ao longo da adoção das soluções em open source, alguns problemas surgiram, como por exemplo:
-
Manutenção de código: em nossos projetos, uma vez que o código raiz era alterado, nem sempre conseguíamos nos manter alinhados com o tronco principal de código. Parte dos problemas eram nossos, mas a grande maioria era causada por decisões na raiz do projeto.
-
Segurança: revisar 100% do código de um projeto open source, mesmo que necessário, torna-se uma tarefa impraticável.
-
Testes automatizados: até hoje os projetos open source são problemáticos em relação a este tópico. A adoção efetiva de frameworks de teste é recente e vem crescendo, mas no início a realidade era bem diferente.
-
Versionamento: mantemos repositórios internos quando possível e versionamos o que é possível. Muitas vezes o próprio projeto de open source não considerava esse tipo de trabalho para quem adota este tipo de procedimento. A maior mudança ocorreu com a adoção de sistema de versionamento distribuídos como o git.
Estes são alguns dos pontos levantados ao longo do tempo que utilizamos os mais diversos projetos, desconsiderando incidentes normais do caminho como forks, migração de open para closed source e encerramentos de projetos.
Novos rumos
Depois de conviver com a realidade descrita anteriormente ficou claro, diante das dificuldades impostas pelo processo adotado, que deveríamos nos concentrar em um número menor de soluções e definir critérios mais claros para trabalhar com open source, oferecendo um serviço mais especializado, confiável e que suporta nossos clientes de forma mais adequada.
De usuário a contribuidor
Um outro ponto que parecia natural durante a evolução dos nosso conhecimento é o fato de passar de uma empresa que “se utiliza de soluções open source” para uma empresa que “contribui com projetos open source“.
Este é um tema controverso e mesmo grandes projetos trabalham em cima de um formato para atingir um ponto de equilíbrio entre o open source e os resultados financeiros gerados por esse trabalho.(1).
No Brasil estamos acostumados a contribuir com traduções para português e este é um outro ponto criticado por quem acompanha projetos dessa natureza. Nesse caso nossas empresas apenas tornam-se boas usuárias de uma plataforma e contribuem com tradução e muita conversa. Portanto precisávamos trabalhar para fazer parte dos projetos open source que oferecemos aos nossos clientes.
Maturidade
Portanto entendemos a necessidade de reduzir o volume dos projetos open source que utilizávamos e com isso iniciamos uma tentativa de contribuir com eles da melhor maneira possível. Com a palavra contribuir queremos dizer fornecer internos recursos (recursos humanos e financeiros) para projetos e grupos de desenvolvimento externos a nossa empresa.
Nossa experiencia anterior nos fez buscar projetos de open source que apresentavam um estágio de maturidade mas avançado (2). Assim poderíamos contribuir e aprender (sempre que possível!!) com o decorrer do projeto.
Os Projetos
Observando o nosso portfólio de trabalhos notamos que dois tipos de solução apresentavam um certo destaque: projetos de código customizado e soluções de CMS (Content Management System). Assim ficou claro que precisávamos definir soluções que tratassem dos dois tipos de problemas.
Para tratar das soluções de CMS atualmente utilizamos o Drupal e para tratar das soluções especializadas utilizamos o Symfony como plataforma.