\section{Requirements}
\label{sec:requirements}

By preparing the SPB Portal evolution, the Brazilian Government has executed
three steps to collect the requirements. The first step was the collection of proposals using an online tool called Pligg and the open sharing of them on the Internet.
In this step, the citizens have written and voted on proposals they
were more interested in. At the end, the Brazilian Government collected about 100 proposals and its initial perspective was to give to the most voted ones the priority of implementation on the new SPB Portal.

The second step was two face-to-face meetings that aimed to discuss ideas (not
necessarily based on the previous collected proposals) to improve the SPB
Portal and its environments. On the first day, the
participants were divided in two groups to discuss (i) features and
technologies as well as (ii) user experience and general ideas regarding the
SPB Portal. Each group has generated a ``mind map'' to summarize and to correlate its
ideas.  During the second day, the participants were allocated in three groups
to discuss features related to (i) the process of software evaluation and
acceptance in the SPB Portal, (ii) approaches to share the SPB projects,
and (iii) ways to attract universities and students to collaborate to SPB
projects.

The last step was a workshop with some IT representatives of the Federal Government and public organizations and, again, it was focused on collecting new proposals to evolve the SPB Portal.

After these unconnected three steps, the Brazilian government has generated a list of
145 requirements. In order to mitigate the lack of focus in the requirement
list, we have proposed to release an initial version to replace the old SPB
portal, prioritizing the following features:

\begin{enumerate}
\item An organized public software catalog;
\item Social network environment (profiles for users, software pages, and community pages);
\item CMS features;
\item Web-based Git repository manager with Wiki and issue tracking features;
\item Mailing lists and discussion forums.
\end{enumerate}

Moreover, the new SPB Portal would only work properly if there was a unique
authentication to use the provided features. Additionally, a unified interface
was an important non-functional requirement to provide better user experience on
the new platform.

Other requirements were in the wishlist such as an integrated search engine and
a web-based source code static analysis monitor. By analyzing all of these
requirements, we have designed the SPB evolution project based on existing
FLOSS tools.
