\section{Introduction}
\label{sec:intro}

During the last few decades, the Brazilian Federal Government has been
trying to change its software adoption and development processes. For
instance, in 2003, the recommendation to adopt Free and Open Source
Software (FOSS) become a public policy. In 2007, the Brazilian
Government released a portal named Brazilian Public Software
(\textit{Software Público Brasileiro} -- SPB, in Portuguese), with the
goal of sharing FOSS projects developed by, or for, the Brazilian
Government.  Additionally, the Brazilian legal instrument on software
contracting (known as IN 04/2012) mandates that public agents must give
priority to solutions available in the SPB Portal.  In short, the
acquisition of a proprietary solution must be explicitly justified by
demonstrating that there is no suitable alternative in the SPB Portal.
In 2013, the Brazilian Federal Court issued a ruling document
(\textit{Acórdão 2314/2013}) about an audit survey regarding the use of
agile methodologies in software development contracts with the public
administration.

Despite of that, in practice, FOSS or agile methodologies, that is,
collaborative and empirical software development methods are not widely
practiced and understood by the Brazilian government agents. Thus, the
hierarchical and traditional processes from the government and the lack
of expertise in real-world software development of its agents produces a
situation of inneficient software development contracts and
unjustifiable expending of taxpayers' money.

% TODO: ^ references

Since 2009, the SPB Portal was having several technical issues. The
original codebase was not being developed anymore, and there was a large
amount of technical debt to overcome. The system was a modified version
of an existing FOSS platform called
OpenACS\footnote{\url{http://openacs.org}}, and the old SPB portal was
not being updated anymore against the official OpenACS releases. In this
scenario, the portal maintenance was becoming harder and harder.

After some events and meetings to collect requirements from the federal
government and from the society, a new platform for the SPB Portal was
developed, among January 2014 and June 2016, by the University of
Brasília (UnB) and the University of São Paulo (USP) in a partnership
with the Brazilian Ministry of Budget, Planning, and Management (MP). It
was designed as an integrated platform for collaborative software
development, and includes functionality for social networking, mailing
lists, version control system, and source code quality monitoring. To
coordinate and develop this project during 30 months, UnB received from
the Brazilian Federal Government a total of 2,619,965.00 BRL (about
750,000.00 USD in June 2016).

\begin{figure*}[hbt]
  \centering
    \includegraphics[width=.9\linewidth]{figures/home-SPB_2.png}
  \caption{The new SPB Portal.}
  \label{fig:spb}
\end{figure*}

The project was developed by a team of 3 professors, 2 masters students, and
approximately 50 undergraduate students (not all of them at the same time,
though -- graduations and other events triggered changes in the team) together
with 2 professional designers and 6 senior developers from the FOSS
communities. The professors and all undergraduate student were from UnB, and
the master students were from USP. Regarding the designers and senior
developers, 7 of 8 they were living outside of Brasília: Curitiba/Brazil, São
Paulo/Brazil, Ribeirão Preto/Brazil, Salvador/Brazil, Punta Cana/Dominican
Republic, and Montreal/Canada. In other words, we had a team working in
distributed collaborative virtual environment.

Figure \ref{fig:spb} shows the home page of this integrated platform.
All development was done in the open, and the changes we needed in the
FOSS tools were contributed back to their respective communities. Our
process was based on agile practices and FOSS communities interaction.
We defined development cycles and released 5 versions of the new SPB
Portal. The first release (beta) was in September 2014, only 9 months
from the beginning of the project. The old portal was shut down down in
September 2015. Finally, the last version illustrated in Figure 1 was
released in June 2016.

In this paper, we present an overview of this new generation of the SPB
Portal.  This experience report shares our methodology and process to
develop this project working with the Brazilian federal government to
comply with its requirements at the same time to be as faithful as
possible to FOSS development. Moreover, we discuss several lessons
learned to provide a distributed collaborative virtual environment
involving a large undergraduate student team and remote senior
developers. Lastly, we released an unprecedented platform for the
Brazilian government applying empirical software development methods.
This case can help other projects overcome similar software engineering
challenges in the future, as well as illustrate how universities can
improve the real-world experience of their students by means of this
kind of project.

