01-introduction.tex
5.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
\section{Introduction}
\label{sec:intro}
The Brazilian Government released in the year 2000 the Eletronic Government
program (eGov) aiming at democratizing information access and improving the
public provision quality of service and information. In 2003, the Brazilian
President created a committee for implementation of free
software(\footnote{\url{http://www.softwarelivre.gov.br/documentos-oficiais/
DecretoComite}}) and thereafter the Chief of Staff of Brazil sent a circular-
letter to all Ministries in which the recommendation to adopt Free/Libre/Open
Source Software (FLOSS\footnote{In this work, the acronym ``FLOSS'' is
used as a representative for ``Free Software'', ``Open Source Software'' (OSS),
and``Free/Open Source Software'' (FOSS).}) became a public policy
(\footnote{\url{http://www.softwarelivre.gov.br/documentos-oficiais/circulardoministro}}).
In 2007, the Brazilian Public Software Portal (\textit{Portal do Software
Público Brasileiro}, in Portuguese) was released with the goal of sharing FLOSS 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 prioritize solutions available on the SPB
Portal. The acquisition of a proprietary solution must be explicitly justified
by demonstrating that there is no suitable alternative on the SPB Portal. In
2013, the Brazilian Federal Court issued a ruling (\textit{Acórdão 2314/2013})
about contracts between the public administration and suppliers using agile
methodologies in software development.
Despite of these legal advancements, in practice, Brazilian government agents
still do not practice, or even understand,
collaborative and empirical software development methods,
such as free software or agile methodologies. Thus,
hierarchical and traditional processes and the lack
of expertise of public agents in real-world software development produce
inefficiency in software development contracts, besides
unjustifiable expending of taxpayers money.
Since 2009, the SPB Portal has had several technical issues. The original
codebase development has stopped, leaving substantial
technical debt~\cite{refactoring}.
The system was a modified version of an
existing FLOSS platform called OpenACS \footnote{\url{http://openacs.org}}, and
the old SPB Portal did not receive updates from OpenACS releases.
In this scenario, the portal maintenance has become increasingly
difficult.
After collecting requirements from the Federal
Government and society, a new platform for the SPB Portal was
developed, between 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 Planning, Budget, and Management (MP). It was designed as an
integrated platform for collaborative software development \cite{bobr2003},
including social networking, mailing lists, version control
system, and source code quality monitoring. To coordinate and develop this
project during 30 months, UnB was funded by a grant
of 2,619,965.00 BRL (about 750,000.00 USD in June 2016)
from the Federal Government.
The project was developed by a team of three professors, two masters students,
about fifty undergraduate students (not all of them at the same time,
since the team changed along the time),
two professional designers, and six senior developers from free software
communities. Professors and undergraduate students were from UnB and
master students were from USP. Regarding the designers and senior
developers, seven of eight were living outside Brasília, the UnB location.
Two of them were abroad at Dominican Republic and Canada.
In other words, we had a distributed team working in a
collaborative virtual environment. This diversity of actors and the
relationships between industry, academy, and government also made the project a
valued opportunity to explore the benefits and challenges of using
FLOSS~\cite{kon2011,deKoenigsberg2008, fagerholm2013, fagerholm2014} and
Agile~\cite{steghofer2016, harzl2017} practices for Software Engineering
education.
All the code was developed as open source. The changes we needed in the
FLOSS tools were implemented by ourselves and
contributed back to their respective communities. Our
process was based on agile practices and FLOSS communities interaction.
We incrementally released five 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 in
September 2015. Finally, the last version was
released in June 2016.
In this paper, we present an overview of the new SPB Portal.
The paper shares the methodology employed to develop this project.
This methodology has the goals of satisfying Government
requirements and adhering as much as possible to FLOSS and agile
practices~\cite{mockus2002, tosi2015}. Moreover, we discuss lessons
learned in providing a distributed and collaborative virtual environment involving
a large undergraduate students team and remote senior developers. Finally, we
released an innovative platform for helping the Brazilian government to apply
empirical software development methods. This case can help other projects to
overcome similar software engineering challenges in the future, as well as to
illustrate how universities can improve the real-world experience of their
students.
The remainder of this work is organized as follows.
Section \ref{sec:spb}...
Section \ref{sec:related} enumerates a number of related works on the...
Section \ref{sec:researchdesign} presents the research design...
Section \ref{sec:requirements} reports ...
Section \ref{sec:architecture} ...
Section \ref{sec:features} ...
Section \ref{sec:ux} ...
Section \ref{sec:process} ...
Section \ref{sec:contributions} ...
Section \ref{sec:lessons} ...
Finally, Sections \ref{sec:conclusion} concludes the paper highlighting its
main contributions and pointing paths to future works.