Commit 54783d9ef7d0252f5a3d8aeee99d56a357969c9a
Merge remote-tracking branch 'upstream/master'
Showing
3 changed files
with
100 additions
and
88 deletions
Show diff stats
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 | +} | ... | ... |