Código aberto no setor público: definições, recursos e licenças

Seguem aqui alguns links de repositórios de soluções de código aberto para o poder público.

Recursos Públicos, códigos públicos

Software Público

Código para el desarrollo

GitHub and Government

Você encontrou algum projeto interessante para suas necessidades? Ou já usa alguma solução de código aberto na sua instituição? Então, compartilha com a gente sua experiência ou dúvidas sobre o assunto aqui neste tópico. :slight_smile:

3 Likes

Olá!! Nós na Escola de Saúde Pública começamos a usar o GitHub este ano. Por conta da pandemia, estamos desenvolvendo diversas soluções que viabilizam a informação e comunicação com a sociedade. Todas essas soluções já estão sendo desenvolvidas em código aberto e podem ser encontradas em @EscolaDeSaudePublica no GitHub. A ESP-CE possui diversos outros projetos de TI e sistemas legados que serão migrados e disponibilizados em breve em repositórios no github.

4 Likes

Olá, boa noite!

Gostaria de compartilhar uma iniciativa da Prefeitura de São Paulo com uso de código aberto.

No repositório Código para el desarrollo é disponibilizado a aplicação Consul, que tem como objetivo fomentar processos participativos no governo.

Este ano a Prefeitura de São Paulo lançou a plataforma Participe+, utilizando o código aberto dessa aplicação. É um bom exemplo de colaboração e uso de tecnologias abertas em governos.

(Não consegui colocar os links aqui, mas vale a pena dar uma pesquisada!)

5 Likes

Fiquei impressionado com o universo de soluções disponíveis, mas ainda fico meio perdido para conseguir encontrar o que poderia ser interessante para nós - até porque não tenho competência em desenvolvimento de TI e não saberia utilizar (o que poderia seria mostrar para a equipe de desenvolvimento da SEHAB e avaliarmos juntos o que pudesse ser útil).

2 Likes

Nós, na Secretaria Municipal de São Paulo trabalhos com os dados no Governo Aberto, mas os dados mais específicos referente aos atendimentos dos estudantes com deficiência, o quantitativo de estudantes considerando suas especificidades não temos ainda. Estou em busca de um código aberto que contribua para as nossas necessidades.
Abraços,
Cristhiane

2 Likes

Ah, excelente a Prefeitura de SP ter adotado o Consul, Gabriela! :star_struck: Ainda não tinha visto. Vou colocar o link aqui para o pessoal ver: http://participemais.prefeitura.sp.gov.br/

Uma coisa que notei é que o código do Participe+ não está no repositório do GitHub da Prefeitura. Você sabe dizer onde está? Geralmente o link para o repositório é colocado no rodapé, ou numa seção “Sobre”.

Uma questão que já notei em alguns projetos é que às vezes é usado código aberto para implementar (neste exemplo, o Consul) mas o código resultante não permanece aberto. Isso traz alguns problemas, cito alguns:

  1. A gente perde o benefício da colaboração no código, pois se uma comunidade quiser participar sugerindo melhorias de código ou novas funcionalidades no Participe+, não conseguiria.

  2. A Prefeitura deixa de “devolver” um valor para o projeto original ou para outras cidades, rompendo o ciclo virtuoso da colaboração. Vamos supor que, ao implementar o consul customizado, a Prefeitura tenha feito melhorias, ou customizado para sua realidade algo que seja útil para outras cidades. Se o código dela não está aberto, isso acaba se perdendo.

  3. Muitas vezes, isso acaba sendo até uma violação da licença de uso do software. A AGPL3 que é usada no Consul, por ex, diz que as versões modificadas precisar ser abertas sob a mesma licença.

Muitas vezes isso acontece porque quem implementa não tem a cultura do repositório aberto ainda (apesar de adotar o código já ser um grande passo!).

Faz sentido?

Abraços e bom te ver aqui!

1 Like

Eu achei muito legal, Camila! Citei na turma em que fiquei na aula de hoje.

1 Like

Muito legal. Acabei de descobrir que o Instituto de Tecnologia da Informação do Governo ES (@prodest) está listada na comunidade governamental do Brasil no Github.

1 Like

Que boa surpresa! Também não conhecia. Aparentemente são bem ativos – além da quantidade de repositórios, também se notam atividades bem recentes (últimas horas e dias).

Oi pessoal,

Vou trazer para este tópico uma discussão iniciada pelo @ferluccabar no tópico de perguntas do Módulo 2 do curso ‘Publicadores de Dados’.

Basicamente, é um questionamento sobre a obrigatoriedade de publicação do código para softwares livres, com base em alguns pontos do site da licença GPL. Recomendo a leitura do link acima para conferir a excelente pergunta, antes de passarmos aos textos abaixo. Existem também questões relevantes sobre comercialização de software livre e a diferença entre software público e software livre.

Para responder às questões, vou começar com algumas definições para entendermos melhor as diferenças de cada termo:

  • Software livre: é um conceito amplamente difundido no mundo e com fundamentos sólidos. Ele foi criado nos anos 1980 e tem como princípio 4 liberdades, incluindo…

“a liberdade de estudar como o programa funciona, e adaptá-lo às suas necessidades. Para tanto, acesso ao código-fonte é um pré-requisito
Fonte: www.gnu.org

  • GPL (General Public License): é um tipo de licença baseadas nos princípios de software livre.

  • Software público: este conceito é uma criação mais recente da administração pública brasileira. Basta ver que existem pouquíssimas referências internacionais sobre o conceito de “public software”.

A definição do site gov.br para o termo é:

“O Software Público Brasileiro é um tipo específico de software livre que atende às necessidades de modernização da administração pública de qualquer dos Poderes da União, dos Estados, do Distrito Federal e dos Municípios e é compartilhado sem ônus no Portal do Software Público Brasileiro, resultando na economia de recursos públicos e constituindo um recurso benéfico para a administração pública e para a sociedade. O que rege o Software Público Brasileiro atualmente é a Portaria N° 46 de 28 de setembro de 2016, que dispõe sobre os procedimentos para o desenvolvimento, a disponibilização e o uso do Software Público Brasileiro”.

Portanto, não compartilhar o código-fonte de um software livre fere a liberdade 1 dos princípios do software livre, que foi destacada acima. A referência do FAQ da GPL citada para apoiar a afirmação de que “não compartilhar o código é um direito” e que o código não precisa estar público se refere às versões modificadas ou cópias do software.

Ou seja, você pode ter acesso a um código e fazer modificações para executá-lo localmente ou ainda fazer cópias, sem republicar o código modificado. Mas se o código não for jamais publicados inicialmente, você não poderá modificá-lo e ele não poderá ser considerado livre.

Como o @herrmann lembrou em uma conversa aqui sobre este tema, a obrigatoriedade da publicação de versões modificadas depende do tipo de licença adotada. Na Affero GPL (AGPL3), que é citada na resposta da @Fernanda_Campagnucci neste tópico anteriormente, por exemplo, se for disponibilizado algum um serviço publicamente, então, o código também deve ser publicado.

Sobre a questão da comercialização, sim, você tem razão, a definição de software livre obriga que as versões modificadas possam ser utilizadas inclusive para fins comerciais.

Aproveito para marcar também o @vitorbaptista, além das @s já mencionadas, que talvez também possa acrescentar novos elementos e visões a esse debate.

3 Likes

Muito legal ver outras experiências no Brasil. Aqui na Controladoria-Geral do Estado de Minas Gerais também estamos tentanto adotar uma forma mais aberta de trabalhar, ainda que não necessariamente produzindo software, mas sim manuais, especificações de requisitos, etc.

A Lei Nº 14.063, DE 23 DE SETEMBRO DE 2020 traz um artigo muito relevante pra essa discussão:

Art. 16. Os sistemas de informação e de comunicação desenvolvidos exclusivamente por órgãos e entidades da administração direta, autárquica e fundacional dos Poderes e órgãos constitucionalmente autônomos dos entes federativos são regidos por licença de código aberto, permitida a sua utilização, cópia, alteração e distribuição sem restrições por todos os órgãos e entidades abrangidos por este artigo.

§ 1º O disposto no caput deste artigo aplica-se, inclusive, aos sistemas de informação e de comunicação em operação na data de entrada em vigor desta Lei.

§ 2º Não estão sujeitos ao disposto neste artigo:

I - os sistemas de informação e de comunicação cujo código-fonte possua restrição de acesso à informação, nos termos do Capítulo IV da Lei nº 12.527, de 18 de novembro de 2011;

II - os dados armazenados pelos sistemas de informação e de comunicação;

III - os componentes de propriedade de terceiros; e

IV - os contratos de desenvolvimento de sistemas de informação e de comunicação que tenham sido firmados com terceiros antes da data de entrada em vigor desta Lei e que contenham cláusula de propriedade intelectual divergente do disposto no caput deste artigo.

Eu tenho três grandes questionamentos/expectativas sobre essa lei.

Escopo

A redação original desse artigo na MP 983/2020 era

Art. 8º Os sistemas de informação e de comunicação desenvolvidos ou cujo desenvolvimento seja contratado por órgãos e entidades da administração direta, autárquica e fundacional dos Poderes e órgãos constitucionalmente autônomos dos entes federativos são regidos por licença de código-aberto, permitida a sua utilização, cópia, alteração e distribuição sem restrições por todos os órgãos e entidades abrangidos por este artigo.

A mudança de “Os sistemas de informação e de comunicação desenvolvidos ou cujo desenvolvimento seja contratado” para “Os sistemas de informação e de comunicação desenvolvidos exclusivamente” significa uma restrição do escopo dos sistemas de informação que devem ser regidos por código-aberto?

Imagino que no Brasil a grande maioria dos sistemas é desenvolvido por meio de contratos de desenvolvimento, tendo em vista as capacidades técnicas que usualmente existem na Administração Pública.

Working in the open

Até que ponto essa lei vai conseguir criar um cultura de produção de software que utilize os princípios de software FLOSS. Acho que essa frase do Steve Klabnik captura esses princípios:

But that attitude, that this may be following the letter, but not the spirit, is the crux of it here. Most developers don’t understand open source to be a particular license that certain software artifacts are in compliance with, but an attitude, an ideology. And that ideology isn’t just about the consumption of the software, but also its production. An open source project should have a public bug tracker. There should be a mailing list, for discussion. You should be able to observe, and ideally participate in, the development of the software. Focusing on the code being open is putting the cart before the horse. In fact, this is one of the reasons why there’s such derision for “source available” licenses; it’s not about the source being open. It’s that the source being open is a necessary, but not sufficient, component of being open source.

No fim das contas, me pergunto se essa lei vai conseguir criar visibilidade sobre o processo de desenvolvimento de software ou vai obrigar a divulgação de código fonte que foi produzido de forma fechada sem os demais artefatos (documentação, discussão, etc) que de fato criar valor.

Transparência demais é burrice?

Esse tópico é uma brincadeira com esse artigo, que menciona um axioma atribuído ao ex-tesoureiro do PT Delúbio Soares de que “transparência demais é burrice”. Produzir software de forma aberta traz riscos, especialmente em equipes com pouca capacidade técnica. Não precisa de procurar muito pra achar as histórias.

Até que ponto os órgãos e entidades estão prontos para esse desafio?

1 Like

Você tem razão, Francisco. Essa alteração da redação do art. 8º da Medida Provisória para o art. 16 da Lei é bastante relevante e eu não tinha me atentado para isso.

Conforme escrevi no fórum não oficial do software público, entendo que ela enfraquece, sim o escopo, restringindo-o apenas ao desenvolvimento interno pela administração pública e sem a participação de terceiros.

Por exemplo, ficam de fora:

  • os softwares desenvolvidos por empresas privadas, mediante contrato de desenvolvimento de software com a administração pública e pagos com recursos públicos;
  • os modelos de desenvolvimento híbridos / colaborativos, em que participam tanto servidores e empregados públicos, quanto de empresas privadas, em um ecossistema de software livre em que todos compartilham os benefícios – como é no software público

Esses casos estavam dentro do escopo da Medida Provisória e ficaram de fora do escopo da Lei, embora a licença do software livre e do software público continuem valendo, então a Lei não consegue atrapalhá-lo por deixá-lo de fora do escopo.

Vejo que inseriram uma brecha para que essa lei vire letra morta, pelo menos no que se refere a esse artigo. Se o órgão público não quer cumprir a cláusula, basta ele contratar uma empresa privada para acrescentar uma linha de código ao sistema de informação ou de comunicação. Pronto, o sistema não é mais “exclusivamente” desenvolvido por órgão público, não precisa mais abrir o código.

Enquanto isso, a França vem dando o exemplo e usando software livre em diversos serviços online, desde a elaboração colaborativa de documentos, comunicação, vídeo chamadas, etc. E ainda criaram esse catálogo de serviços tecnológicos que usam software livre, chamado Papillon (literalmente, borboleta, em francês, mas a sigla quer dizer Portal Administrativo de Plataformas Integradoras de Softwares Livres e Abertos), para divulgar e potencializar o seu uso.

Eu acredito que, se não houver uma fiscalização incisiva (e a lei não deixou claro a quem caberia monitorar isso, Ministério Público?), ninguém vai cumprir. Ou vai fazer aquele “truque” de colocar uma linha de código de fora do órgão público para não ser mais “exclusivamente” e não ser obrigado a abrir o código.

Este ponto também é importante. Vários softwares proprietários tem uma versão “community edition” que tem o código fonte disponível, mas que não tem de fato uma comunidade de software livre atuante em torno dela.

1 Like