\section{Platform for collaborative software development}

%TODO: Paulo e Melissa
O conceito de software público se diferencia do de software livre em alguns
aspectos, destacando-se a atribuição de bem público ao software. Isso significa
que o Governo, especificamente o MP, assume algumas responsabilidades que
garantem ao usuário do software, em especial os órgãos públicos, condições
adequadas de uso. Embora haja diferenças entre o que é um software livre e um
software público brasileiro, há princípios comuns como a tendência da
descentralização na tomada de decisões, do compartilhamento de informações e da
retroalimentação. Por isso, a nova plataforma para o SPB foi pensada para
contemplar ferramentas que promovam a colaboração e a interação nas comunidades
(por gestores, usuários e desenvolvedores) dos projetos, conforme as práticas
usadas nas comunidades de software livre. Isso inclui listas de e-mail, fóruns
de discussão, issue trackers, sistemas de controle de versão e ambientes de
rede social.

Para integrar as ferramentas e prover a autenticação única nos serviços da
plataforma, um sistema web chamado Colab, que funcionada como proxy reverso
para os ambientes, está sendo evoluído. Em resumo, o Colab oferece a integração
de busca, autenticação e apresentação, provendo um único ambiente ao usuário
que tem em seu perfil algumas métricas de contribuições (e-mails para listas,
inserções em wikis, cadastros de issue e commits nos repositórios).

O Colab foi desenvolvido para o Interlegis (programa do Senado Federal). Por
padrão, funciona integrado com o servidor de listas de e-mail GNU Mailman e
utiliza o Apache Lucene Solr para a indexação dos conteúdos para as buscas. A
partir de 2014, as ferramentas GitLab e Noosfero foram integradas ao Colab para
compor o novo SPB.

O GitLab é uma plataforma de desenvolvimento colaborativo social integrada ao
sistema de controle de versão Git. É o ambiente mais técnico: os repositórios
dos projetos do SPB, com páginas wiki, issue tracker e mecanismos de controle
de versão de código estão nele. O Noosfero é uma plataforma para rede social e
de economia solidária que contém funcionalidades de gerenciamento de conteúdos
(CMS), além de permitir a configuração das páginas de usuários e de comunidades
de forma flexível. É o ambiente de maior interação com o usuário do SPB, desde
os cadastros até o acesso às páginas dos projetos para download, leitura de
documentação e contato com os responsáveis.

A integração dessas ferramentas não está totalmente completa, pois demanda a
solução de questões complexas de arquitetura de software. O que foi
desenvolvido em 2014 está funcional e já supera o antigo portal do SPB em
muitos aspectos. Em 2015, os perfis das diferentes ferramentas estão sendo
integrados de modo que o usuário o gerencie em um único lugar. Os controles de
acesso e a gestão de permissões também estão evoluindo. O mecanismo de coleta
de dados e busca está sendo refatorado para acessar os conteúdos das novas
ferramentas integradas ao Colab. Além disso, o Mezuro, um sistema para o
monitoramento de métricas de código-fonte, está sendo acoplado ao Colab para
fornecer acompanhamento da qualidade do código dos projetos.

%TODO: Melissa
A integração dos ambientes colaborativos vai além dos aspectos funcionais.
Oferecer à população uma experiência unificada desses ambientes é fundamental
para estimular o uso da plataforma, uma vez que reduz a percepção de
complexidade.

Assim, a arquitetura da informação do portal foi redesenhada para proporcionar uma
navegação transparente e que atenda aos usuários de diversos perfis. Os modelos
de interação de cada ferramenta passou por um processo de harmonização, reduzindo a curva de
aprendizagem. Ao mesmo tempo, um novo estilo visual foi criado para unificar a navegação e atender as diretrizes de
Identidade Padrão de Comunicação Digital do Governo Federal.

Com o crescimento das funcionalidades e o acoplamento de novas ferramentas, o estilo visual foi constantemente evoluído para manter a navegação unificada. Com ferramentas de contextos distintos, que muitas vezes apresentavam funcionalidades de conceitos semelhantes, construir interfaces transparentes com a união dos diferentes contextos se tornou um desafio. Em diversos momentos, para cada funcionalidade requisitada pelo portal, nos deparamos com dados provenientes das ferramentas com padrões de estrutura e informação distintos que precisavam dançar juntos. A interface passou a ser o ponto de encontro dessas informações, um elo que precisava estar transparente ao usuário. Funcionalidades em comum entre as ferramentas como visualização e edição de perfil e busca, visualização e edição de conteúdo foram harmonizadas a estrutura e demais funcionalidades do portal.

Outro ponto crítico está relacionado a responsividade. Provida e suportada em diversas maneiras por cada ferramenta e em alguns casos, não existente, a responsividade do portal precisou ser elaborada de acordo com o limite de cada ferramenta. No caso do Noosfero, que não provê um suporte a responsividade oficial, o projeto precisou se dedicar a expansão da ferramenta, com diversas contribuições e diálogos com a comunidade e mantenedores. Todos os integrantes do projeto se envolveram desde o estudo, desenho e codificação de uma nova interface com suporte a responsividade para o Noosfero e que ainda não foi concluída.

Os usuários fazem parte do processo. Em 2014, foi aplicado um questionário para avaliar a satisfação das pessoas com o portal antigo e identificar problemas de experiência do usuário. 
Em 2015 e 2016, realizamos atividades de validação da nova plataforma com usuários e cidadãos interessados. O retorno dessas atividades foi decisivo para o direcionamento dos esforços e determinação das principais áreas. Aproximar o usuário as funcionalidades que ele tem mais interesse e projetar uma navegação que se aprofunde junto com apronfudamento do conhecimento do usuário. 

