Commit 54783d9ef7d0252f5a3d8aeee99d56a357969c9a

Authored by Leonardo Leite
2 parents d92e0240 0d9742d0

Merge remote-tracking branch 'upstream/master'

opensym2017/content/01-introduction.tex
... ... @@ -2,108 +2,103 @@
2 2 \label{sec:intro}
3 3  
4 4 The Brazilian Government released in the year 2000 the Eletronic Government
5   -program (eGov) aiming at democratizing information access and improving the
6   -public provision quality of service and information. In 2003, the Brazilian
7   -President created a committee for implementation of free
8   -software(\footnote{\url{http://www.softwarelivre.gov.br/documentos-oficiais/
9   -DecretoComite}}) and thereafter the Chief of Staff of Brazil sent a circular-
10   -letter to all Ministries in which the recommendation to adopt Free/Libre/Open
11   -Source Software (FLOSS\footnote{In this work, the acronym ``FLOSS'' is
12   -used as a representative for ``Free Software'', ``Open Source Software'' (OSS),
13   -and``Free/Open Source Software'' (FOSS).}) became a public policy
14   -(\footnote{\url{http://www.softwarelivre.gov.br/documentos-oficiais/circulardoministro}}).
  5 +program (eGov) aiming at democratizing information access and improving the
  6 +public provision quality of service and information. In 2003, the Brazilian
  7 +President created a
  8 +committee\footnote{\url{http://www.softwarelivre.gov.br/documentos-oficiais/
  9 +DecretoComite}} for implementation of Free/Libre/Open Source Software
  10 +(FLOSS\footnote{In this work, the acronym ``FLOSS'' is used as a representative
  11 +for ``Free Software'', ``Open Source Software'' (OSS), and``Free/Open Source
  12 +Software'' (FOSS).}) and thereafter the Chief of Staff of Brazil sent a
  13 +circular- letter to all Ministries in which the recommendation to adopt FLOSS
  14 +became a public
  15 +policy\footnote{\url{http://www.softwarelivre.gov.br/documentos-oficiais/circulardoministro}}.
15 16 In 2007, the Brazilian Public Software Portal (\textit{Portal do Software
16   -Público Brasileiro}, in Portuguese) was released with the goal of sharing FLOSS projects developed by, or for, the Brazilian Government. Additionally, the
  17 +Público Brasileiro}, in Portuguese) was released with the goal of sharing FLOSS
  18 +projects developed by, or for, the Brazilian Government. Additionally, the
17 19 Brazilian legal instrument on software contracting (known as IN 04/2012)
18 20 mandates that public agents must prioritize solutions available on the SPB
19 21 Portal. The acquisition of a proprietary solution must be explicitly justified
20 22 by demonstrating that there is no suitable alternative on the SPB Portal. In
21 23 2013, the Brazilian Federal Court issued a ruling (\textit{Acórdão 2314/2013})
22   -about contracts between the public administration and suppliers using agile
  24 +about contracts between the public administration and suppliers using agile
23 25 methodologies in software development.
24 26  
25 27 Despite of these legal advancements, in practice, Brazilian government agents
26   -still do not practice, or even understand,
27   -collaborative and empirical software development methods,
28   -such as free software or agile methodologies. Thus,
29   -hierarchical and traditional processes and the lack
30   -of expertise of public agents in real-world software development produce
31   -inefficiency in software development contracts, besides
32   -unjustifiable expending of taxpayers money.
  28 +still do not practice, or even understand, collaborative and empirical software
  29 +development methods, such as FLOSS or agile methodologies. Thus, hierarchical
  30 +and traditional processes and the lack of expertise of public agents in
  31 +real-world software development produce inefficiency in software development
  32 +contracts, besides unjustifiable expending of taxpayers money.
33 33  
34 34 Since 2009, the SPB Portal has had several technical issues. The original
35   -codebase development has stopped, leaving substantial
36   -technical debt~\cite{refactoring}.
37   -The system was a modified version of an
38   -existing FLOSS platform called OpenACS \footnote{\url{http://openacs.org}}, and
39   -the old SPB Portal did not receive updates from OpenACS releases.
40   -In this scenario, the portal maintenance has become increasingly
41   -difficult.
42   -
43   -After collecting requirements from the Federal
44   -Government and society, a new platform for the SPB Portal was
45   -developed, between January 2014 and June 2016, by the University of Brasília
46   -(UnB) and the University of São Paulo (USP) in a partnership with the Brazilian
47   -Ministry of Planning, Budget, and Management (MP). It was designed as an
48   -integrated platform for collaborative software development \cite{bobr2003},
49   -including social networking, mailing lists, version control
50   -system, and source code quality monitoring. To coordinate and develop this
51   -project during 30 months, UnB was funded by a grant
52   -of 2,619,965.00 BRL (about 750,000.00 USD in June 2016)
53   -from the Federal Government.
54   -
  35 +codebase development has stopped, leaving substantial technical
  36 +debt~\cite{refactoring}. The system was a modified version of an existing
  37 +FLOSS platform called OpenACS\footnote{\url{http://openacs.org}}, and the old
  38 +SPB Portal did not receive updates from OpenACS releases. In this scenario,
  39 +the portal maintenance has become increasingly difficult.
55 40  
  41 +After collecting requirements from the Federal Government and society, a new
  42 +platform for the SPB Portal was developed, between January 2014 and June 2016,
  43 +by the University of Brasília (UnB) and the University of São Paulo (USP) in a
  44 +partnership with the Brazilian Ministry of Planning, Budget, and Management
  45 +(MP). It was designed as an integrated platform for collaborative software
  46 +development \cite{bobr2003}, including social networking, mailing lists,
  47 +version control system, and source code quality monitoring. To coordinate and
  48 +develop this project during 30 months, UnB was funded by a grant of
  49 +2,619,965.00 BRL (about 750,000.00 USD in June 2016) from the Federal
  50 +Government.
56 51  
57 52 The project was developed by a team of three professors, two masters students,
58   -about fifty undergraduate students (not all of them at the same time,
59   -since the team changed along the time),
60   -two professional designers, and six senior developers from free software
61   -communities. Professors and undergraduate students were from UnB and
62   -master students were from USP. Regarding the designers and senior
63   -developers, seven of eight were living outside Brasília, the UnB location.
64   -Two of them were abroad at Dominican Republic and Canada.
65   -In other words, we had a distributed team working in a
66   -collaborative virtual environment. This diversity of actors and the
67   -relationships between industry, academy, and government also made the project a
68   -valued opportunity to explore the benefits and challenges of using
69   -FLOSS~\cite{kon2011,deKoenigsberg2008, fagerholm2013, fagerholm2014} and
  53 +about fifty undergraduate students (not all of them at the same time, since the
  54 +team changed along the time), two professional designers, and six senior
  55 +developers from FLOSS communities. Professors and undergraduate students were
  56 +from UnB and master students were from USP. Regarding the designers and senior
  57 +developers, seven of eight were living outside Brasília, the UnB location. Two
  58 +of them were abroad at Dominican Republic and Canada. In other words, we had a
  59 +distributed team working in a collaborative virtual environment. This diversity
  60 +of actors and the relationships between industry, academy, and government also
  61 +made the project a valued opportunity to explore the benefits and challenges of
  62 +using FLOSS~\cite{kon2011,deKoenigsberg2008, fagerholm2013, fagerholm2014} and
70 63 Agile~\cite{steghofer2016, harzl2017} practices for Software Engineering
71 64 education.
72 65  
73   -All the code was developed as open source. The changes we needed in the
74   -FLOSS tools were implemented by ourselves and
75   -contributed back to their respective communities. Our
76   -process was based on agile practices and FLOSS communities interaction.
77   -We incrementally released five versions of the new SPB
78   -Portal. The first release (beta) was in September 2014, only 9 months
79   -from the beginning of the project. The old portal was shut down in
80   -September 2015. Finally, the last version was
81   -released in June 2016.
  66 +All the code was developed as open source. The changes we needed in the FLOSS
  67 +tools were implemented by ourselves and contributed back to their respective
  68 +communities. Our process was based on agile practices and FLOSS communities
  69 +interaction. We incrementally released five versions of the new SPB Portal.
  70 +The first release (beta) was in September 2014, only 9 months from the
  71 +beginning of the project. The old portal was shut down in September 2015.
  72 +Finally, the last version was released in June 2016.
82 73  
83   -In this paper, we present an overview of the new SPB Portal.
84   -The paper shares the methodology employed to develop this project.
85   -This methodology has the goals of satisfying Government
86   -requirements and adhering as much as possible to FLOSS and agile
87   -practices~\cite{mockus2002, tosi2015}. Moreover, we discuss lessons
88   -learned in providing a distributed and collaborative virtual environment involving
89   -a large undergraduate students team and remote senior developers. Finally, we
90   -released an innovative platform for helping the Brazilian government to apply
91   -empirical software development methods. This case can help other projects to
92   -overcome similar software engineering challenges in the future, as well as to
93   -illustrate how universities can improve the real-world experience of their
94   -students.
  74 +In this paper, we present an overview of the new SPB Portal. The paper shares
  75 +the methodology employed to develop this project. This methodology has the
  76 +goals of satisfying Government requirements and adhering as much as possible to
  77 +FLOSS and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss
  78 +lessons learned in providing a distributed and collaborative virtual
  79 +environment involving a large undergraduate students team and remote senior
  80 +developers. Finally, we released an innovative platform for helping the
  81 +Brazilian government to apply empirical software development methods. This case
  82 +can help other projects to overcome similar software engineering challenges in
  83 +the future, as well as to illustrate how universities can improve the
  84 +real-world experience of their students.
95 85  
96   -The remainder of this work is organized as follows.
97   -Section \ref{sec:spb}...
98   -Section \ref{sec:related} enumerates a number of related works on the...
99   -Section \ref{sec:researchdesign} presents the research design...
100   -Section \ref{sec:requirements} reports ...
101   -Section \ref{sec:architecture} ...
102   -Section \ref{sec:features} ...
103   -Section \ref{sec:ux} ...
104   -Section \ref{sec:process} ...
105   -Section \ref{sec:contributions} ...
106   -Section \ref{sec:lessons} ...
107   -Finally, Sections \ref{sec:conclusion} concludes the paper highlighting its
108   -main contributions and pointing paths to future works.
  86 +The remainder of this work is organized as follows. Section \ref{sec:spb}
  87 +discusses the concepts of Brazilian Public Software and Free Software. Section
  88 +\ref{sec:related} enumerates a number of related projects from other countries.
  89 +Section \ref{sec:researchdesign} presents the open questions these guided this
  90 +paper. Section \ref{sec:requirements} reports how the Brazilian Government
  91 +stakeholders collected the theoretical requirements as well as how we define
  92 +the technological requirements to release an initial version. Section
  93 +\ref{sec:architecture} shares our decisions about the systems that together
  94 +provided a wide subset of the requirements and our strategy to integrate them.
  95 +Section \ref{sec:features} describes the main features of the new SPB Portal.
  96 +Section \ref{sec:ux} reports the user experience evolution during the
  97 +integration of the selected FLOSS tools. Section \ref{sec:process} discusses
  98 +our strategies to support the different organizational cultures and to involve
  99 +undergraduate students as protagonists of the development process. Section
  100 +\ref{sec:contributions} summarizes the contributions to the FLOSS upstream
  101 +communities we interacted with. Finally, Sections \ref{sec:conclusion}
  102 +concludes the paper highlighting its main contributions, sharing our lessons
  103 +learned, and pointing paths to future works.
109 104  
... ...
opensym2017/content/10-contributions.tex
... ... @@ -41,11 +41,18 @@ migrate to the latest Rails version (web framework used by Noosfero), enable
41 41 the federation implementation (federation with other social networks), and
42 42 decouple the interface and the back-end.
43 43  
  44 +Mezuro was completely rewritten and its architecture evolved adopting the
  45 +microservice architecture\cite{namiot2014micro}. This way, we minimize the
  46 +amount of code to maintain it, helping to test it and grant its code quality.
  47 +In practice, we modularize the Mezuro project in several independent services.
  48 +Currently, its computation and visualization modules use Kalibro and Prezento,
  49 +respectively. They were developed into the Mezuro project and evolved during
  50 +its integration to the new SPB Portal.
  51 +
  52 +
44 53 We also made some contributions on the DevOps front. Some members of
45   -them team became maintainers of some python libraries that were used by
  54 +them team became maintainers of some Python libraries that were used by
46 55 our scripts to upload packages to OBS (Open Build Service). We developed
47 56 a tool called copr-status to keep track of the different stages of the
48 57 lifecycle of each of the individual packages we were working on.
49 58  
50   -%TODO: Mezuro
51   -
... ...
opensym2017/spb.bib
... ... @@ -306,3 +306,13 @@
306 306 biburl = {http://dblp.uni-trier.de/rec/bib/conf/icse/KalliamvakouDBS15},
307 307 bibsource = {dblp computer science bibliography, http://dblp.org}
308 308 }
  309 +
  310 +@article{namiot2014micro,
  311 + title={On Micro-services Architecture},
  312 + author={Namiot, Dmitry and Sneps-Sneppe, Manfred},
  313 + journal={International Journal of Open Information Technologies},
  314 + volume={2},
  315 + number={9},
  316 + pages={24--27},
  317 + year={2014}
  318 +}
... ...