• Nenhum resultado encontrado

O termo Open Source foi adotado após um grupo de pessoas do movimento de

Software Livre se reunirem em Palo Alto, California em reação ao anuncio, em 1998,

da Netscape do release do código fonte de seu navegador. Entre eles estava R. M. Stallman, um dos pioneiros do conceito de Software Livre nos anos 80 (STALLMAN, 2014). O conceito de Software Livre nasceu com o desenvolvimento do Projeto GNU (STALLMAN, 2014), com o objetivo de criar um sistema operacional. Este projeto ia de encontro a tendência do mercado onde quase todo software era proprietário, ou seja, possuíam donos, geralmente organizações, que evitavam a colaboração externa em seus projetos. A motivação de Stallman era que a indústria, ao proibir o compartilhamento das informações dos softwares, focando somente em sua comercialização, atava as mãos dos desenvolvedores que não podiam contribuir um com o outro, se tornando desta forma inimigos (STALLMAN, 2014). A restauração da harmonia entre a comunidade de desenvolvedores só podia ser possível aplicando o conceito de OSS.

Nos anos 90, Raymond publicou o artigo “The Cathedral and The Bazaar” (RAYMOND, 1999) onde fez uma análise reflexiva sobre a comunidade hacker e os

princípios de software livre. Neste artigo Raymond comparou o projeto open source com um bazar, de desenvolvimento totalmente aberto e os softwares proprietários com uma catedral, fechada em si própria e organizando-se em pequenos grupos de trabalho. Isto motivou a empresa Netscape Communications Corporation a publicar seu popular navegador na época, o Netscape, desenvolvido como software livre. Raymond junto com outros desenvolvedores defenderam a mudança do termo

software livre por open source software, indicando que esta expressão é menos

ambígua e mais confortável para o mundo corporativo (RAYMOND, 1998).

Inspirada por Stallman, a Open Source Initiative elaborou um documento que define 10 critérios que guiam o licenciamento de um software open source (OPEN SOURCE INITIATIVE, 1999):

Redistribuição livre: a licença não deve restringir nenhuma parte de vender ou repassar o software. A licença não deve exigir royalty ou outra taxa para venda;

Código fonte: o software open source deve disponibilizar o código fonte e permitir sua distribuição em sua versão final, junto com o software ou disponível de fácil acesso na internet sem custo. Não é permitido ofuscar o código fonte de qualquer forma;

Trabalhos derivados: a licença deve permitir modificação e trabalhos derivados a partir do código disponibilizado, e permitir a distribuição deles sob os mesmos termos da licença do software original;

Integridade do código fonte do autor: A licença pode restringir o código fonte de ser distribuído em uma forma modificada apenas se a licença permitir a distribuição de arquivos patch com o código fonte para o propósito de modificar o programa no momento de sua construção. A licença deve explicitamente permitir a distribuição do programa construído a partir do código fonte modificado. Contudo, a licença pode ainda requerer que programas derivados tenham um nome ou número de versão diferentes do programa original.

Não discriminar nenhuma pessoa ou grupo: a licença não pode ser discriminatória contra qualquer pessoa ou grupo de pessoas;

Não discriminação contra áreas de atuação: a licença pode restringir o seu uso em algum ramo específico. Não pode haver nenhuma proibição, seja de pessoas ou empresas, ou para pesquisa;

Distribuição da licença: os direitos atribuídos ao programa devem se aplicar a todos para quem o programa for redistribuído sem a necessidade da execução de uma licença adicional por essas partes;

Licença não pode ser específica a um produto: Os direitos associados ao programa não devem depender que o programa seja parte de uma distribuição específica de programas. Se o programa é extraído desta distribuição e usado ou distribuído dentro dos termos da licença do programa, todas as partes para quem o programa é redistribuído devem ter os mesmos direitos que aqueles que são garantidos em conjunção com a distribuição de programas original.

Licença não deve restringir outro software: A licença não deve por restrições a outro software distribuído com o software licenciado. Por exemplo, a licença não pode impor que outros programas, distribuídos no mesmo meio, deva ser também open source;

Licença deve ser neutra em relação a tecnologia: Nenhuma cláusula da licença pode estabelecer uma tecnologia individual, estilo ou interface a ser aplicada no programa;

Desta forma, o documento pretende apresentar que o software open source não simplesmente significa a que o código é aberto, mas um conceito que permite a distribuição livre e a realização de modificações, assegurando os direitos do autor dele, podendo ser usado de forma livre, tanto para uso pessoal como comercial.

Assim, podemos definir um projeto de software open source como um projeto de software onde o código fonte é disponibilizado livremente, onde é permitido alterar e distribuir sem a necessidade de autorização prévia de quem o desenvolveu (MCFARLANE, 2003).

Atualmente existem vários projetos open source muito populares. Por exemplo mais de 65% dos sites públicos são suportados pelo webserver Apache; e 80% do tráfego de email é gerenciado pelo Sendmail; 40% das grandes corporações americana usam o sistema operacional o Linux (WEBER, 2005). Esta adoção muito difundida gerou também um grande interesse da academia que deseja entender e explicar vários aspectos deste fenômeno (SEN et al., 2012).

Em relação aos projetos tradicionais, dito software proprietário, os projetos

algumas diferenças de cunho técnico entre os dois tipos de projeto são apresentadas. Em termos sociais os projetos open source funcionam como uma comunidade. São compostos normalmente por três grupos que sempre interagem entre si por email, fórum, bugtracker, entre outros mecanismos. São eles: programadores (equipe de desenvolvimento), contribuidores (realizam contribuições gerais) e utilizadores (apenas utilizam o software e colaboram no fórum). Na equipe não há uma designação de tarefas, mas há o ato voluntário de colaboração no projeto por parte do usuário, seja lá no desenvolvimento, como na documentação, testes, ou até mesmo com a colaboração em reportar bugs. As equipes formadas geralmente são distribuídas, ou seja, os participantes colaboram de localidades diferente, e que não se conhecem.

Os recursos do projeto (requisitos, bugs, responsabilidades dos membros, calendário, e-mails, etc.) estando de forma aberta facilita a análise do funcionamento social das dimensões de projeto. Há vários repositórios que armazenam estas informações como o Sourceforge, Github, etc., e facilitam o gerenciamento das atividades e dos recursos dos projetos.

Quadro 2.1: Diferenças técnicas entre software open source e software proprietário Software Proprietário Software Open Source

Código fonte Não é disponibilizado ao

cliente

Disponível a qualquer usuário do software

Alteração no software Apenas a empresa pode

alterar

Qualquer pessoa pode alterar

Forma publicada do software

Apenas o binário ou executável

O binário e o código fonte

Redistribuição Os usuários não podem

partilhar, vender, ou distribuir de qualquer forma

Os usuários podem redistribuir

Licenças Licença aplicada aos produtos Licença aplica ao software

independente de sua distribuição em um produto