\section{Requisitos e projetos relacionados}
\label{sec:requirements}

Para conceber o novo portal SPB, o governo brasileiro organizou 3 eventos para coletar os requisitos, em particular do ponto de vista da sociedade. Após essas 3 rodadas de discussão sobre a nova plataforma SPB, o governo brasileiro listou cerca de 145 requisitos e desenvolveu um ``mapa mental''\footnote{\url{https://softwarepublico.gov.br/social/spb/gallery/mapaconceitual.png}} para guiar a evolução do portal SPB. Nesse cenário, os 10 requisitos mais votados foram, por exemplo:

\begin{enumerate}
\item Repositório de código-fonte com acesso público.
\item Visita às páginas da comunidade sem login.
\item Sistema de controle de versão distribuído.
\item Pontuações de colaboração de usuários e desenvolvedores.
\item Pesquisa de software por recursos.
\item Integração com redes sociais.
\item Repositório para ideias e requisitos futuros.
\item URL amigável para acessar uma página de comunidade de software.
\item Comentários dos usuários sobre um software público.
\item Relatório da experiência sobre o uso de um software público.
\end{enumerate}

Haviam outros requisitos baseados na experiência dos analistas de TI do governo brasileiro e da comunidade software livre brasileira. Por exemplo, a nova plataforma só funcionaria corretamente se houver uma autenticação única para usar as ferramentas fornecidas. Além disso, uma interface unificada era um requisito não-funcional importante para ter uma melhor experiência de usuário na nova plataforma. Assim, no primeiro momento, desejamos disponibilizar uma versão inicial que poderia substituir o antigo portal SPB. Para isso, a primeira versão deve ter recursos como:

\begin{enumerate}
\item Um catálogo de software público organizado.
\item Ambiente de rede social (perfis para usuários, páginas de software e páginas da comunidade).
\item Sistema de Gerenciamento de Conteúdo (CMS).
\item Gerenciador web de repositório Git com wiki e recursos de \textit{issue tracker}.
\item Listas de discussão e fóruns de discussão.
\end{enumerate}

Outros requisitos também foram planejados durante a fase de concepção do projeto de evolução do SPB, como um mecanismo de busca integrado e um monitor de análise estática de código-fonte na web. Analisando todos esses requisitos, criamos o projeto de evolução do SPB baseado em ferramentas de software livre existentes. No entanto, a integração de vários sistemas existentes que já foram implementados em diferentes linguagens de programação e arcabouços, adicionando recursos como uma autenticação centralizada, interface unificada e um mecanismo de pesquisa, bem como, outros recursos de \textit{back-end}, requeriria grande quantidade de trabalho não-trivial.

A nova plataforma SPB é um ambiente totalmente integrado, sendo muito avançada em comparação com projetos e iniciativas relacionados. Por exemplo, o governo dos EUA tem uma plataforma criada para melhorar o acesso ao software desenvolvido pelo governo federal\footnote{\url{https://code.gov}}. Code.gov é uma interface para organizar os projetos do governo dos EUA e, em suma, facilita aos usuários e desenvolvedores como obter informações e acessar repositórios de código-fonte dos projeto do governo no GitHub. No entanto, não há recursos de rede social e CMS, bem como outros recursos de comunicação fornecidos por essa plataforma.

Além disso, existem duas iniciativas na Europa: OSOR\footnote{\url{https://joinup.ec.europa.eu/community/osor}} e OW2\footnote{\url{http://ow2.org}}. O Open Source Observatory (OSOR) é uma comunidade hospedada na plataforma JoinUp, patrocinada pela \textit{European Commission}. O OSOR tem como objetivo o intercâmbio de informações, experiências e melhores práticas sobre o uso de software livre na administração pública. Ajuda a encontrar um software livre disponibilizado por outras administrações públicas, proporcionando acesso a informações como notícias, eventos, estudos e soluções relacionadas à implementação de software livre. Ele também oferece fórum e listas de discussão da comunidade, mas não possui um gerenciador de repositório de código-fonte integrado e para cada projeto há um link para seu próprio repositório externo (ou seu arquivo tarball).
%
OW2 é uma espécie de consórcio de projetos de software livre para promover o desenvolvimento de \textit{middleware} livres, aplicativos de negócios, plataformas de computação em nuvem e promover um ecossistema de comunidade e negócios. Em resumo, ele visa apoiar o desenvolvimento, implantação e gerenciamento de soluções distribuídos com foco em middleware, não sendo uma plataforma em si.
%
Além disso, patrocinado pela \textit{European Commission} entre 2007 e 20011, havia o projeto QualiPSo que visava fornecer aos usuários, desenvolvedores e consumidores de software livre recursos e conhecimentos de qualidade sobre os vários tópicos relacionados ao software livre. O projeto QualiPSo também planejava desenvolver uma plataforma chamada QualiPSo Factory, que não foi totalmente concluída.

Na América Latina existe uma iniciativa baseada no projeto SPB chamado Software Publico Regional\footnote{\url{http://softwarepublicoregionalbeta.net}}. De um ponto de vista prático, ele fornece uma instância personalizada do Gitlab para compartilhar o código-fonte e a documentação dos projetos dos países envolvidos.
%
Tal como o Brasil, o Chile tem seu próprio portal também chamado Software Publico\footnote{\url{http://www.softwarepublico.gob.cl}}. Os usuários podem criar conteúdo nas comunidades (notícias, documentos, páginas wiki), mas os repositórios de código-fonte estão disponíveis na plataforma Bitbucket\footnote{\ url {https://bitbucket.org/softwarepublico}}.


O governo brasileiro precisava evoluir o projeto SPB que existia desde 2005. Em 2013, quando iniciamos esse projeto, o Portal SPB contava com cerca de 200 mil usuários cadastrados. Não poderíamos apenas entrar em contato com esses usuários e pedir-lhes para registrar uma conta no Github também. Além disso, após o caso Edward Snowden, o governo brasileiro aprovou um decreto-lei específico (8.135/2013) para regulamentar seus serviços de comunicação, exigindo que a administração pública deva hospedar seus sistemas de informação a ser fornecido por si mesmo, o que exclui o uso de plataformas privadas, especialmente aqueles fornecidos por empresas estrangeiras. Assim, desenvolvemos nossa própria solução para cobrir todos os requisitos, produzindo uma completa e avançada plataforma integrada governamental para desenvolvimento de software colaborativo.



