Commit 85235f41a9482f0f563b2743d5bcb5c3b3ab1c55

Authored by Paulo Meireles
1 parent a0801133

[opensym] general review - part 1

opensym2017/content/00-abstract.tex
1 \begin{abstract} 1 \begin{abstract}
2 2
3 The Brazilian Public Software (SPB) is a program promoted by the Brazilian 3 The Brazilian Public Software (SPB) is a program promoted by the Brazilian
4 -Federal Government to foster sharing and collaboration on FLOSS solutions for  
5 -the public administration. In this case, a public software is considered a  
6 -public good and the Federal Government assumes some responsibilities related to  
7 -its use. Once its devolpment principles is the same of the FLOSS projects, we  
8 -have designed the SPB Portal, a platform based on the integration and evolution  
9 -of existing FLOSS tools. It provides several modern features for software  
10 -collaborative development, helping the Brazilian public administration in  
11 -sharing its solutions. In this paper, we present this integrated software  
12 -development platform that was developed for the SPB program by a heterogeneous  
13 -team composed by professors, master students, undergraduate students, and  
14 -professionals from FLOSS communities. The development of this platform used  
15 -several FLOSS applications, providing a non-trivial integration among them.  
16 -This effort has also produced several new features that were contributed back  
17 -to these FLOSS applications. In this experience report, alongside the platform  
18 -architecture, the features, and the user experience challenges, we also discuss  
19 -our work process, based on agile and free software development practices, and  
20 -the lessons learned in 30 months of work on the SPB project. 4 +Federal Government to foster sharing and collaboration on Free/Libre/Open
  5 +Source Software (FLOSS) solutions for the public administration. In this
  6 +context, a public software is considered a public good and the Federal
  7 +Government assumes some responsibilities related to its use. Once its
  8 +devolpment principles is the same of the FLOSS projects, we have designed the
  9 +SPB Portal, a platform based on the integration and evolution of existing FLOSS
  10 +tools. It provides several modern features for software collaborative
  11 +development, helping the Brazilian public administration in sharing its
  12 +solutions. In this paper, we present this integrated software development
  13 +platform that was developed for the SPB program by a heterogeneous team
  14 +composed by professors, master students and undergraduate students, as well as
  15 +by professionals from FLOSS communities. The development of this platform used
  16 +several FLOSS projects, providing a non-trivial integration among them. This
  17 +effort has also produced several new features that were contributed back to
  18 +these projects. Alongside the architectural challenges, we also discuss in this
  19 +paper our work process, based on agile and free software development practices,
  20 +and the lessons learned during 30 months of work on the SPB project.
21 21
22 \end{abstract} 22 \end{abstract}
23 23
opensym2017/content/01-introduction.tex
@@ -6,9 +6,7 @@ program (eGov) aiming at democratizing information access and improving the @@ -6,9 +6,7 @@ program (eGov) aiming at democratizing information access and improving the
6 public provision quality of service and information. 6 public provision quality of service and information.
7 % 7 %
8 In 2003, the Federal Government created a committee for implementation of 8 In 2003, the Federal Government created a committee for implementation of
9 -Free/Libre/Open Source Software (FLOSS\footnote{In this work, the acronym  
10 -``FLOSS'' is used as a representative for ``Free Software'', ``Open Source  
11 -Software'' (OSS), and``Free/Open Source Software'' (FOSS).}) and thereafter a 9 +Free/Libre/Open Source Software (FLOSS)\footnote{Free Software, Open Source, or Free/Open Source Software.} and thereafter a
12 circular-letter was sent to all Ministries in which the recommendation to adopt 10 circular-letter was sent to all Ministries in which the recommendation to adopt
13 FLOSS became a public policy. 11 FLOSS became a public policy.
14 % 12 %
@@ -36,35 +34,33 @@ contracts, besides unjustifiable expending of taxpayers money. @@ -36,35 +34,33 @@ contracts, besides unjustifiable expending of taxpayers money.
36 For instance, since 2009 the SPB Portal has had several technical issues. The 34 For instance, since 2009 the SPB Portal has had several technical issues. The
37 original codebase development has stopped. The system was a modified version of 35 original codebase development has stopped. The system was a modified version of
38 an existing FLOSS platform called OpenACS\footnote{\url{http://openacs.org}}, 36 an existing FLOSS platform called OpenACS\footnote{\url{http://openacs.org}},
39 -and the old SPB Portal did not receive updates from OpenACS releases. In this 37 +and the old SPB Portal did not receive updates from OpenACS releases. In this
40 scenario, the portal maintenance has become increasingly difficult. 38 scenario, the portal maintenance has become increasingly difficult.
41 39
42 -After collecting requirements from the Federal Government and society, a new  
43 -platform for the SPB Portal was developed, between January 2014 and June 2016,  
44 -by the University of Brasília (UnB) and the University of São Paulo (USP) in a 40 +Approximately five years later from the first problems, a new platform for the
  41 +SPB Portal was planned and funded. Between January 2014 and June 2016, the
  42 +University of Brasília (UnB) and the University of São Paulo (USP) in a
45 partnership with the Brazilian Ministry of Planning, Budget, and Management 43 partnership with the Brazilian Ministry of Planning, Budget, and Management
46 -(MP). It was designed as an integrated platform for collaborative software  
47 -development \cite{bobr2003}, including social networking, mailing lists,  
48 -version control system, and source code quality monitoring. To coordinate and  
49 -develop this project during 30 months, UnB was funded by a grant of  
50 -2,619,965.00 BRL (about 750,000.00 USD in June 2016) from the Federal  
51 -Government. 44 +(MP) designed an integrated platform for collaborative software development
  45 +\cite{bobr2003}, including social networking, mailing lists, version control
  46 +system, and source code quality monitoring. To coordinate and develop this
  47 +project during 30 months, UnB was funded by a grant of 2,619,965.00 BRL (about
  48 +750,000.00 USD in June 2016) from the Federal Government.
52 49
53 The project was developed by a team of three professors, two masters students, 50 The project was developed by a team of three professors, two masters students,
54 about fifty undergraduate students (not all of them at the same time, since the 51 about fifty undergraduate students (not all of them at the same time, since the
55 team changed along the time), two professional designers, and six senior 52 team changed along the time), two professional designers, and six senior
56 developers from FLOSS communities. Professors and undergraduate students were 53 developers from FLOSS communities. Professors and undergraduate students were
57 from UnB and master students were from USP. Regarding the designers and senior 54 from UnB and master students were from USP. Regarding the designers and senior
58 -developers, seven of eight were living outside Brasília, the UnB location. Two  
59 -of them were abroad at Dominican Republic and Canada. In other words, we had a  
60 -distributed team working in a collaborative virtual environment. This diversity  
61 -of actors and the relationships between industry, academy, and government also  
62 -made the project a valued opportunity to explore the benefits and challenges of  
63 -using FLOSS~\cite{kon2011,deKoenigsberg2008, fagerholm2013, fagerholm2014} and  
64 -Agile~\cite{steghofer2016, harzl2017} practices for Software Engineering  
65 -education. 55 +developers, seven of them were living outside Brasília, the UnB location. In
  56 +other words, we had a distributed team working in a collaborative virtual
  57 +environment. This diversity of actors and the relationships between industry,
  58 +academy, and government also made the project a valued opportunity to explore
  59 +the benefits and challenges of using FLOSS~\cite{kon2011,deKoenigsberg2008,
  60 +fagerholm2013, fagerholm2014} and Agile~\cite{steghofer2016, harzl2017}
  61 +practices for Software Engineering education.
66 62
67 -All the code was developed as open source. The changes we needed in the FLOSS 63 +All the code was developed as free software. The changes we needed in the FLOSS
68 tools were implemented by ourselves and contributed back to their respective 64 tools were implemented by ourselves and contributed back to their respective
69 communities. Our process was based on agile practices and FLOSS communities 65 communities. Our process was based on agile practices and FLOSS communities
70 interaction. We incrementally released five versions of the new SPB Portal. 66 interaction. We incrementally released five versions of the new SPB Portal.
@@ -72,13 +68,13 @@ The first release (beta) was in September 2014, only 9 months from the @@ -72,13 +68,13 @@ The first release (beta) was in September 2014, only 9 months from the
72 beginning of the project. The old portal was shut down in September 2015. 68 beginning of the project. The old portal was shut down in September 2015.
73 Finally, the last version was released in June 2016. 69 Finally, the last version was released in June 2016.
74 70
75 -In this paper, we present an overview of the new SPB Portal. The paper shares 71 +In this paper, we present an overview of the new SPB Portal. We share
76 the methodology employed to develop this project. This methodology has the 72 the methodology employed to develop this project. This methodology has the
77 goals of satisfying Government requirements and adhering as much as possible to 73 goals of satisfying Government requirements and adhering as much as possible to
78 FLOSS and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss 74 FLOSS and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss
79 lessons learned in providing a distributed and collaborative virtual 75 lessons learned in providing a distributed and collaborative virtual
80 environment involving a large undergraduate students team and remote senior 76 environment involving a large undergraduate students team and remote senior
81 -developers. Finally, we released an innovative platform for helping the 77 +developers. In short, we released an innovative platform for helping the
82 Brazilian government to apply empirical software development methods. This case 78 Brazilian government to apply empirical software development methods. This case
83 can help other projects to overcome similar software engineering challenges in 79 can help other projects to overcome similar software engineering challenges in
84 the future, as well as to illustrate how universities can improve the 80 the future, as well as to illustrate how universities can improve the
opensym2017/content/02-spb.tex
@@ -24,8 +24,8 @@ complies with the terms conferred by a contract related to certain software. @@ -24,8 +24,8 @@ complies with the terms conferred by a contract related to certain software.
24 This contract is called ``license''. A software license determines a list of 24 This contract is called ``license''. A software license determines a list of
25 rights that are given to, and duties that are imposed on a user of the 25 rights that are given to, and duties that are imposed on a user of the
26 software. In particular, what differentiates FLOSS from proprietary software is 26 software. In particular, what differentiates FLOSS from proprietary software is
27 -just the way they are licensed \cite{kon2011}. The FLOSS licenses guarantee  
28 -the right to execute, study, adapt, and improve the software. Example of common 27 +just the way they are licensed \cite{kon2011}. The FLOSS licenses guarantee the
  28 +right to execute, study, adapt, and improve the software. Example of common
29 FLOSS licenses are the \textit{GPL (GNU General Public License)}, the Apache 29 FLOSS licenses are the \textit{GPL (GNU General Public License)}, the Apache
30 license, the MIT license, and the BSD license. 30 license, the MIT license, and the BSD license.
31 31
@@ -40,22 +40,21 @@ mailing lists, discussion forums, issue trackers, version control systems, and @@ -40,22 +40,21 @@ mailing lists, discussion forums, issue trackers, version control systems, and
40 social networking environments. 40 social networking environments.
41 41
42 Initially, the purpose of the portal was only to share the software developed 42 Initially, the purpose of the portal was only to share the software developed
43 -in the Brazilian government, to reduce the costs of hiring software. However,  
44 -it was observed that when softwares were released, their communities were  
45 -formed around those software with several people collaborating and sharing the  
46 -results obtained through the use of those solutions, as commonly occurs in OSS 43 +in the Brazilian government to reduce the costs of hiring software. However, it
  44 +was observed that when softwares were released, their communities were formed
  45 +around those software with several people collaborating and sharing the results
  46 +obtained through the use of those solutions, as commonly occurs in FLOSS
47 \cite{ducheneaut2005}. In this way, some software development cooperatives and 47 \cite{ducheneaut2005}. In this way, some software development cooperatives and
48 private companies have shown an interest in making their software available on 48 private companies have shown an interest in making their software available on
49 -the SPB platform. 49 +the SPB Portal.
50 50
51 -The concept of Brazilian Public Software goes beyond FLOSS \cite{freitas2008}.  
52 -In additionto being licensed under a FLOSS license, a SPB needs to have  
53 -explicit guarantees that it is a public good, and that project must be  
54 -available on the SPB portal. Being a true public good assumes requirements that  
55 -can not be met solely by means of FLOSS licensing. For example, there must be a  
56 -relaxed trademark usage policy by the original vendor that does not stop  
57 -eventual competitors from advertising services for that same software.  
58 -Inclusion in the SPB Portal also has extra requirements, such as having a  
59 -public version control system, installation manual, and hardware requirements  
60 -specification. 51 +The concept of SPB goes beyond FLOSS \cite{freitas2008}. In addition to being
  52 +licensed under a FLOSS license, a SPB needs to have explicit guarantees that it
  53 +is a public good, and that project must be available on the SPB portal. Being a
  54 +true public good assumes requirements that can not be met solely by means of
  55 +FLOSS licensing. For example, there must be a relaxed trademark usage policy by
  56 +the original vendor that does not stop eventual competitors from advertising
  57 +services for that same software. Inclusion in the SPB Portal also has extra
  58 +requirements, such as having a public version control system, installation
  59 +manual, and hardware requirements specification.
61 60
opensym2017/content/03-relatedworks.tex
1 \section{Related Projects} 1 \section{Related Projects}
2 \label{sec:related} 2 \label{sec:related}
3 3
4 -The new SPB platform is a fully integrated environment,  
5 -very advanced in comparison with related initiatives.  
6 -%  
7 -For instance, the USA government has a platform designed to improve access to  
8 -federal government software\footnote{\url{https://code.gov}}.  
9 -Code.gov is an interface to organize USA government projects,  
10 -making it easy for users and developers to obtain information and to access their  
11 -source code repositories at GitHub. However, it does not provide social networking  
12 -and CMS features, as well as, other communication resources. 4 +The new SPB platform is a fully integrated environment, very advanced in
  5 +comparison with related initiatives. For instance, the USA government has a
  6 +platform designed to improve access to federal government software, called
  7 +Code.gov\footnote{\url{https://code.gov}}. It is an interface to organize USA
  8 +government projects, making it easy for users and developers to obtain
  9 +information and to access their source code repositories at GitHub. However,
  10 +it does not provide social networking and CMS (Content Manager System)
  11 +features, as well as, other communication resources.
13 12
14 -The European Commission supports the Open Source Observatory\footnote{\url{https://joinup.ec.europa.eu/community/osor}} (OSOR) that is a  
15 -community hosted in the JoinUp platform.  
16 -OSOR intends to exchange information, experiences, and best practices around the  
17 -use of FLOSS in the public administration. It supports the discovering of FLOSS projects made  
18 -available by public agencies, providing information about these projects, such  
19 -as news, events, studies, and solutions.  
20 -It also offers discussion forums and community mailing lists. But it  
21 -does not have an integrated source code repository manager, so for each  
22 -project there is a link to its own external repository.  
23 -%  
24 -Moreover, in 2007 the European Comission published a study examining the impact  
25 -that the development and distribution of FLOSS by public agencies have on eGovernment  
26 -services and the economy~\cite{ghosh2004}. And, from 2007 to 2011, there  
27 -was the QualiPSo project, whose objective was to provide FLOSS  
28 -users, developers, and consumers with resources and expertise on FLOSS quality.  
29 -The QualiPSo project also had planned to  
30 -develop a platform called QualiPSo Factory, but it was not fully completed. 13 +The European Commission (EC) assists the Open Source Observatory
  14 +(OSOR)\footnote{\url{https://joinup.ec.europa.eu/community/osor}} that intends
  15 +to exchange information, experiences, and best practices around the use of
  16 +FLOSS in the public administration. It supports the discovering of FLOSS
  17 +projects made available by public agencies, providing information about these
  18 +projects, such as news, events, studies, and solutions. It also offers
  19 +discussion forums and community mailing lists. But it does not have an
  20 +integrated source code repository manager, so for each project there is a link
  21 +to its own external repository. Previously, from 2007 to 2011, the EC promoted
  22 +the QualiPSo project that aimed to support FLOSS users, developers, and
  23 +consumers with resources and expertise on FLOSS quality. The QualiPSo project
  24 +also had planned to develop a platform called QualiPSo Factory, but it was not
  25 +fully completed.
31 26
32 -Finally, in Latin American there is an initiative based on the SPB project  
33 -called ``Software Público  
34 -Regional''\footnote{\url{http://softwarepublicoregionalbeta.net}}.  
35 -It provides a customized Gitlab instance to share  
36 -source code and documentation of projects developed by the involved countries.  
37 -%  
38 -Like Brazil, Chile has its own portal, called ``Repositorio Software  
39 -Público''\footnote{\url{http://softwarepublico.gob.cl}}. In the communities of the portal,  
40 -users can create content such as news, documents, and wiki pages, but source code  
41 -repositories are available at the Bitbucket 27 +In Latin American there is an initiative called ``Software Público
  28 +Regional''\footnote{\url{http://softwarepublicoregionalbeta.net}} that provides
  29 +just a customized Gitlab instance to share source code and documentation of
  30 +projects developed by the involved countries. Moreover, Chile has also its own
  31 +portal named ``Repositório Software
  32 +Público''\footnote{\url{http://softwarepublico.gob.cl}}. In the communities of
  33 +the portal, users can create content such as news, documents, and wiki pages,
  34 +but source code repositories are available at the Bitbucket
42 platform\footnote{\url{https://bitbucket.org/softwarepublico}}. 35 platform\footnote{\url{https://bitbucket.org/softwarepublico}}.
43 36
44 The Brazilian government needed to evolve the SPB platform that existed since 37 The Brazilian government needed to evolve the SPB platform that existed since
45 2007. When we started this project, the SPB Portal had about 200 thousand 38 2007. When we started this project, the SPB Portal had about 200 thousand
46 -registered users. We could not just do something like contacting these users and asking  
47 -them to register an account at Github. Moreover, after the Edward  
48 -Snowden's case, the Brazilian government issued a decree  
49 -(8.135/2013) requiring public  
50 -agencies to host their information systems by themselves,  
51 -avoiding the usage of private platforms, especially the ones provided by foreign  
52 -companies. Therefore, we needed to develop our own solution to cover all the  
53 -requirements, producing a complete governmental integrated platform for  
54 -collaborative software development. 39 +registered users. We could not just do something like contacting these users
  40 +and asking them to register an account at Github. Moreover, after the Edward
  41 +Snowden's case, the Brazilian government issued a decree (8.135/2013) requiring
  42 +public agencies to host their information systems by themselves, avoiding the
  43 +usage of private platforms, especially the ones provided by foreign companies.
  44 +Therefore, we needed to develop our own solution to cover all the requirements,
  45 +producing a complete governmental integrated platform for collaborative
  46 +software development.
opensym2017/content/04-researchdesign.tex
1 \section{Open Questions} 1 \section{Open Questions}
2 \label{sec:researchdesign} 2 \label{sec:researchdesign}
3 3
4 -In this paper, we share our experience in designing and developing the new  
5 -SPB Portal by reporting the technical efforts carried out, our  
6 -empirical work process, and the lessons learned. The new SPB Portal project  
7 -presented three main challenges, related to the open questions described below. 4 +In this paper, we share our experience in designing and developing the new SPB
  5 +Portal by reporting the technical efforts carried out, our empirical work
  6 +process, and the lessons learned. The new SPB Portal project presented three
  7 +main challenges, related to the open questions described below.
8 8
9 \textbf{Q1:} \textit{Which strategy could be used to integrate several existing 9 \textbf{Q1:} \textit{Which strategy could be used to integrate several existing
10 FLOSS tools to promote a collaborative software development?} 10 FLOSS tools to promote a collaborative software development?}
@@ -14,26 +14,27 @@ Federal Government, we selected some FLOSS systems to compose our solution, @@ -14,26 +14,27 @@ Federal Government, we selected some FLOSS systems to compose our solution,
14 engineering a nontrivial integration among them. We looked for the systems set 14 engineering a nontrivial integration among them. We looked for the systems set
15 realizing the largest possible subset of the requirements list. However, we 15 realizing the largest possible subset of the requirements list. However, we
16 were fully aware that we would need to improve those systems in order to 16 were fully aware that we would need to improve those systems in order to
17 -satisfy the remaining requirements. We were also convinced that it would be impossible to satisfy  
18 -all of those requirements with a single tool. 17 +satisfy the remaining requirements. We were also convinced that it would be
  18 +impossible to satisfy all of those requirements with a single tool.
19 19
20 -\textbf{Q2:} \textit{How to involve students in real-world projects interacting with  
21 -real customers?} 20 +\textbf{Q2:} \textit{How to involve students in real-world projects interacting
  21 +with real customers?}
22 % 22 %
23 -Our team was mainly composed of software engineering undergraduate  
24 -students, who had the opportunity to interact with the UnB managers,  
25 -senior developers, designers, and even with technicians and  
26 -managers from the Brazilian Government.  
27 -For the majority of the students, this was a first professional experience.  
28 -Even though, our development process defined a central role on students participation. 23 +Our team was mainly composed of software engineering undergraduate students,
  24 +who had the opportunity to interact with the UnB managers, senior developers,
  25 +designers, and even with technicians and managers from the Brazilian
  26 +Government. For the majority of the students, this was a first professional
  27 +experience. Even though, our development process defined a central role on
  28 +students participation.
29 29
30 -\textbf{Q3:} \textit{How to introduce collaborative and agile  
31 -practices typical in FLOSS environments in the governmental development process?} 30 +\textbf{Q3:} \textit{How to introduce collaborative and agile practices typical
  31 +in FLOSS environments in the governmental development process?}
32 % 32 %
33 -The software development on Brazilian government is based on a very traditional way,  
34 -frequently focusing documentation deliveries. We had to convince  
35 -them to accept the idea of open scope and empirical development. They had  
36 -certain expectations about the project development according to RUP  
37 -(Rational Unified Process) and PMBOK (Project Management Body of Knowledge)  
38 -approaches, which mismatched our work style based on agile and FLOSS practices. So we  
39 -created strategies to conciliate these different organizational cultures within the project. 33 +The software development on Brazilian government is based on a very traditional
  34 +way, frequently focusing documentation deliveries. We had to convince them to
  35 +accept the idea of open scope and empirical development. They had certain
  36 +expectations about the project development according to RUP (Rational Unified
  37 +Process) and PMBOK (Project Management Body of Knowledge) approaches, which
  38 +mismatched our work style based on agile and FLOSS practices. So we created
  39 +strategies to conciliate these different organizational cultures within the
  40 +project.
opensym2017/content/05-requirements.tex
@@ -50,7 +50,7 @@ replace the old SPB portal. For that, the first version should have @@ -50,7 +50,7 @@ replace the old SPB portal. For that, the first version should have
50 features such as: 50 features such as:
51 (i) An organized public software catalog; 51 (i) An organized public software catalog;
52 (ii) Social network environment (profiles for users, software pages, and community pages); 52 (ii) Social network environment (profiles for users, software pages, and community pages);
53 -(iii) Content Management Systems (CMS) features; 53 +(iii) CMS features;
54 (iv) Web-based Git repository manager with wiki and issue tracking features; 54 (iv) Web-based Git repository manager with wiki and issue tracking features;
55 (v) Mailing lists and discussion forums; 55 (v) Mailing lists and discussion forums;
56 56
opensym2017/content/06-architecture.tex
1 \section{Architecture} 1 \section{Architecture}
2 \label{sec:architecture} 2 \label{sec:architecture}
3 3
4 -From the architecture point of view, two main requirements was included on the new platform by Brazilian Federal Government request. They are: 4 +From the architecture point of view, two main requirements was included on the
  5 +new platform by Brazilian Federal Government request. They are:
5 6
6 \begin{enumerate} 7 \begin{enumerate}
7 - \item \textit{Integrating existing FLOSS systems} with minimal differences from  
8 - their original versions; 8 + \item \textit{Integrating existing FLOSS systems} with minimal differences
  9 + from their original versions;
9 \item \textit{Providing consistent user interface} across different 10 \item \textit{Providing consistent user interface} across different
10 systems as well as centralized authentication. 11 systems as well as centralized authentication.
11 \end{enumerate} 12 \end{enumerate}
12 13
13 -The adoption of existing FLOSS systems and the minimization of their local changes had the purpose to able the platform's softwares being easily upgrade to newer versions of their original software. With this facility, the platform take advantages from the maintenance and improvements made by communities. The development of a consistent user interface aims to provide to platform users a smooth transition between differents systems . Without it, the necessity of adaptation and learning for each tool could get users confused and fatigued  
14 -%  
15 -For the first requirement, we have identified four main systems which would have specialized teams for work in the integration process.  
16 -Team members have learned how to develop for their assigned systems and to contribute to the 14 +The adoption of existing FLOSS systems and the minimization of their local
  15 +changes had the purpose to able the platform's softwares being easily upgrade
  16 +to newer versions of their original software. With this facility, the platform
  17 +take advantages from the maintenance and improvements made by communities. The
  18 +development of a consistent user interface aims to provide to platform users a
  19 +smooth transition between differents systems . Without it, the necessity of
  20 +adaptation and learning for each tool could get users confused and fatigued.
  21 + %
  22 +For the first requirement, we have identified four main systems which would
  23 +have specialized teams for work in the integration process. Team members have
  24 +learned how to develop for their assigned systems and to contribute to the
17 original communities to align the used version with the original one. 25 original communities to align the used version with the original one.
18 % 26 %
19 In the end of the project, the SPB portal has combined more than ten 27 In the end of the project, the SPB portal has combined more than ten
@@ -21,70 +29,87 @@ systems, such as Colab, Noosfero, Gitlab, and Mezuro. @@ -21,70 +29,87 @@ systems, such as Colab, Noosfero, Gitlab, and Mezuro.
21 29
22 Colab\footnote{\url{https://github.com/colab}} is a systems integration 30 Colab\footnote{\url{https://github.com/colab}} is a systems integration
23 platform for web applications. One of its goals is allowing different 31 platform for web applications. One of its goals is allowing different
24 -applications to be combined in such a way that an user does not notice  
25 -the change between applications. For that, Colab provides facilities  
26 -for: (i) Centralized authentication, (ii) Visual consistency, (iii) Relaying of events between applications, and (iv) Integrated search engine. 32 +applications to be combined in such a way that an user does not notice the
  33 +change between applications. For that, Colab provides facilities for: (i)
  34 +Centralized authentication, (ii) Visual consistency, (iii) Relaying of events
  35 +between applications, and (iv) Integrated search engine.
27 % 36 %
28 Colab implements this integration by working as a reverse proxy for the 37 Colab implements this integration by working as a reverse proxy for the
29 -integration applications, that is, all external requests pass through  
30 -Colab before reaching them. 38 +integration applications, that is, all external requests pass through Colab
  39 +before reaching them.
31 % 40 %
32 -Initially, Colab had support for a small set of applications (Trac, GNU Mailman, and Apache Lucene) made in hard-coded. Our team have helped Colab upstream to redesign the whole architecture, enabling the development of plugins to integrate new tools. We also added a feature that allowed Colab to run asynchronous tasks, which was a major improvement for us since we were developing a complex system. We have also migrated Django(web framework used by Colab) to the latest version and worked on RevProxy (the more important dependency of Colab) to put it in a good shape, fixing many bugs.  
33 -  
34 -  
35 -Noosfero\footnote{\url{http://noosfero.org}} is a software for building  
36 -social and collaboration networks. Besides the classical social  
37 -networking features, it also provides publication features such as blogs  
38 -and a general-purpose CMS (Content Management System). Most of the user  
39 -interactions with SPB is through Noosfero: user registration, project  
40 -home pages and documentation, and contact forms. 41 +Initially, Colab had support for a small set of applications (Trac, GNU
  42 +Mailman, and Apache Lucene) made in hard-coded. Our team have helped Colab
  43 +upstream to redesign the whole architecture, enabling the development of
  44 +plugins to integrate new tools. We also added a feature that allowed Colab to
  45 +run asynchronous tasks, which was a major improvement for us since we were
  46 +developing a complex system. We have also migrated Django(web framework used by
  47 +Colab) to the latest version and worked on RevProxy (the more important
  48 +dependency of Colab) to put it in a good shape, fixing many bugs.
  49 +
  50 +
  51 +Noosfero\footnote{\url{http://noosfero.org}} is a software for building social
  52 +and collaboration networks. Besides the classical social networking features,
  53 +it also provides publication features such as blogs and a general-purpose CMS.
  54 +Most of the user interactions with SPB is through
  55 +Noosfero: user registration, project home pages and documentation, and contact
  56 +forms.
41 % 57 %
42 -Noosfero was the tool that contemplated several functional requirements, therefore we have made a large number of contributions to upstream. We have helped it to migrate to the latest Rails version (web framework used by Noosfero), to enable the federation implementation (federation with other social networks) and to decouple the interface and the back-end. 58 +Noosfero was the tool that contemplated several functional requirements,
  59 +therefore we have made a large number of contributions to upstream. We have
  60 +also helped it to migrate to the latest Rails version (web framework used by
  61 +Noosfero), to enable the federation implementation (federation with other
  62 +social networks) and to decouple the interface and the back-end.
43 63
44 64
45 -Gitlab\footnote{\url{http://gitlab.com}} is a web-based Git repository  
46 -manager with wiki pages and issue tracking features. It is a FLOSS  
47 -platform and focuses on delivering a holistic solution that will see  
48 -developers from idea to production seamlessly and on a single platform. 65 +Gitlab\footnote{\url{http://gitlab.com}} is a web-based Git repository manager
  66 +with wiki pages and issue tracking features. It is a FLOSS platform and focuses
  67 +on delivering a holistic solution that will see developers from idea to
  68 +production seamlessly and on a single platform.
49 % 69 %
50 -Gitlab has several unique features, such as built-in continuous  
51 -integration and continuous deployment, flexible permissions, tracking of  
52 -Work-in-Progress work, moving issues between projects, group-level  
53 -milestones, creating new branches from issues, issues board, and time  
54 -tracking. 70 +Gitlab has several unique features, such as built-in continuous integration and
  71 +continuous deployment, flexible permissions, tracking of Work-in-Progress work,
  72 +moving issues between projects, group-level milestones, creating new branches
  73 +from issues, issues board, and time tracking.
55 % 74 %
56 -We have contributed to Gitlab upstream with some improvements related to configuration files and with the development of a new plugin that enables user authentication in Gitlab through the REMOTE\_USER HTTP header. This plugin was needed because Colab uses this mechanism to manage the authentication. 75 +We have contributed to Gitlab upstream with some improvements related to
  76 +configuration files and with the development of a new plugin that enables user
  77 +authentication in Gitlab through the REMOTE\_USER HTTP header. This plugin was
  78 +needed because Colab uses this mechanism to manage the authentication.
57 79
58 80
59 -Mezuro\footnote{\url{http://mezuro.org/}} is a platform to  
60 -collect source code metrics to monitor the internal quality of software written  
61 -in C, C++, Java, Python, Ruby, and PHP. 81 +Mezuro\footnote{\url{http://mezuro.org/}} is a platform to collect source code
  82 +metrics to monitor the internal quality of software written in C, C++, Java,
  83 +Python, Ruby, and PHP.
62 % 84 %
63 -In general, source code metrics tools also do not present a friendly way  
64 -to interpret its results and, even more, do not follow a standardization  
65 -between them. Mezuro collects and presents these results to the end  
66 -user, specially, by analyzing source code metric history during its life  
67 -cycle. 85 +In general, source code metrics tools also do not present a friendly way to
  86 +interpret its results and, even more, do not follow a standardization between
  87 +them. Mezuro collects and presents these results to the end user, specially, by
  88 +analyzing source code metric history during its life cycle.
68 % 89 %
69 -The Mezuro platform provides a single interface grouping available  
70 -tools, allows selection and composition of metrics in a flexible manner,  
71 -stores the metrics evolution history, presents results in a friendly  
72 -way, as well as, allows users to customize the given interpretation  
73 -accordingly to their own context. 90 +The Mezuro platform provides a single interface grouping available tools,
  91 +allows selection and composition of metrics in a flexible manner, stores the
  92 +metrics evolution history, presents results in a friendly way, as well as,
  93 +allows users to customize the given interpretation accordingly to their own
  94 +context.
74 % 95 %
75 -During the project, we helped to modularize the Mezuro project in several independent services to minimize the amount of code to maintain it, helping to test it and grant its code quality. Currently, its computation and visualization modules use Kalibro and Prezento, respectively. They were developed into the Mezuro project and evolved during its integration to the new SPB Portal. 96 +During the project, we helped to modularize the Mezuro project in several
  97 +independent services to minimize the amount of code to maintain it, helping to
  98 +test it and grant its code quality. Currently, its computation and
  99 +visualization modules use Kalibro and Prezento, respectively. They were
  100 +developed into the Mezuro project and evolved during its integration to the new
  101 +SPB Portal.
76 102
77 \subsection{System unification and User eXperience evolution} 103 \subsection{System unification and User eXperience evolution}
78 104
79 The conceptual architecture of the platform is presented in Figure 105 The conceptual architecture of the platform is presented in Figure
80 -\ref{fig:architecture}. Colab initially handles all user interaction,  
81 -directing requests to one of the integrated applications. It  
82 -post-processes responses from the applications to apply a consistent  
83 -visual appearance, manages authentication, and provides a unified search  
84 -functionality: instead of using the redundant restricted search  
85 -functionality of each application, a search o n the SPB portal might  
86 -return content from any of the applications, be it web pages, mailing  
87 -list posts, or source code. 106 +\ref{fig:architecture}. Colab initially handles all user interaction, directing
  107 +requests to one of the integrated applications. It post-processes responses
  108 +from the applications to apply a consistent visual appearance, manages
  109 +authentication, and provides a unified search functionality: instead of using
  110 +the redundant restricted search functionality of each application, a search on
  111 +the SPB portal might return content from any of the applications, be it web
  112 +pages, mailing list posts, or source code.
88 113
89 \begin{figure}[hbt] 114 \begin{figure}[hbt]
90 \centering 115 \centering
@@ -93,34 +118,40 @@ list posts, or source code. @@ -93,34 +118,40 @@ list posts, or source code.
93 \label{fig:architecture} 118 \label{fig:architecture}
94 \end{figure} 119 \end{figure}
95 120
96 -But integration of collaborative environments goes beyond functional aspects.  
97 -To reduce the citizens perception of system complexity and to encourage them to use the software, a platform should offer an unified experience across its environments.  
98 -Thus, the SPB Portal information architecture was redesigned  
99 -to provide a transparent navigation and to reach users with different profiles.  
100 -A process of harmonization has been employed on the interaction models of each  
101 -tool to reduce the learning curve. At the same time, a new visual style was  
102 -created to unify the navigation experience and to comply with the guidelines of  
103 -the digital communication identity standard established by the Federal  
104 -Government.  
105 -  
106 -With the increase in system features and the addition of new tools, the  
107 -visual style has steadily evolved to keep the navigation unified. Moreover,  
108 -tools from different backgrounds, which in many cases provide similar  
109 -functionality, prompted the development of an unified interface. Some  
110 -features, such as search and user profile editing were eliminated from  
111 -the individual applications, and implemented centrally to ensure a  
112 -consistent look and feel.  
113 -  
114 -Another challenge was responsive web design. The integrated applications  
115 -had varying degrees of support for responsiveness, and the common  
116 -interface had to adapt for each individual scenario. In particular  
117 -Noosfero did not yet have a responsive design; we engaged in its  
118 -development and contributed towards that goal. 121 +However, integration of collaborative environments goes beyond functional
  122 +aspects. To reduce the citizens perception of system complexity and to
  123 +encourage them to use the software, a platform should offer an unified
  124 +experience across its environments. Thus, the SPB Portal information
  125 +architecture was redesigned to provide a transparent navigation and to reach
  126 +users with different profiles. A process of harmonization has been employed on
  127 +the interaction models of each tool to reduce the learning curve. At the same
  128 +time, a new visual style was created to unify the navigation experience and to
  129 +comply with the guidelines of the digital communication identity standard
  130 +established by the Federal Government.
  131 +
  132 +With the increase in system features and the addition of new tools, the visual
  133 +style has steadily evolved to keep the navigation unified. Moreover, tools
  134 +from different backgrounds, which in many cases provide similar functionality,
  135 +prompted the development of an unified interface. Some features, such as search
  136 +and user profile editing were eliminated from the individual applications, and
  137 +implemented centrally to ensure a consistent look and feel.
  138 +
  139 +Another challenge was responsive web design. The integrated applications had
  140 +varying degrees of support for responsiveness, and the common interface had to
  141 +adapt for each individual scenario. In particular, Noosfero did not yet have a
  142 +responsive design; we also engaged in its development and contributed towards
  143 +that goal.
119 144
120 \subsection{Deploy} 145 \subsection{Deploy}
121 146
122 The SPB platform was deployed in 7 virtual machines with different functions, 147 The SPB platform was deployed in 7 virtual machines with different functions,
123 -as we can see in Figure \ref{fig:architecture2}. 148 +as we can see in Figure \ref{fig:architecture2}. The \textit{reverseproxy}
  149 +handles the HTTP requests and redirects them to the \textit{integration}, the
  150 +\textit{email} sends and receives e-mails on behalf of the platform and the
  151 +\textit{monitor} keeps the entire environment tracked. These three mentioned
  152 +virtual machines - \textit{reverseproxy}, \textit{email} and \textit{monitor} -
  153 +are accessible via Internet and the other ones are only available in the local
  154 +network created between them.
124 155
125 \begin{figure*}[hbt] 156 \begin{figure*}[hbt]
126 \centering 157 \centering
@@ -129,29 +160,22 @@ as we can see in Figure \ref{fig:architecture2}. @@ -129,29 +160,22 @@ as we can see in Figure \ref{fig:architecture2}.
129 \label{fig:architecture2} 160 \label{fig:architecture2}
130 \end{figure*} 161 \end{figure*}
131 162
132 -The \textit{reverseproxy} handles the HTTP requests and redirects them to the  
133 -\textit{integration}, the \textit{email} sends and receives e-mails on behalf  
134 -of the platform and the \textit{monitor} keeps the entire environment tracked.  
135 -These three \textit{VMs} mentioned - \textit{reverseproxy}, \textit{email} and  
136 -\textit{monitor} - are accessible via Internet and the other ones are only  
137 -available in the local network created between them.  
138 -  
139 \textit{Integration} works as a second layer of proxy beneath 163 \textit{Integration} works as a second layer of proxy beneath
140 \textit{reverseproxy}, any request to the platform will be handled by it. The 164 \textit{reverseproxy}, any request to the platform will be handled by it. The
141 Colab service provides interface, authentication and search engine integration 165 Colab service provides interface, authentication and search engine integration
142 -among all the services. When a request is received to a specific service,  
143 -Colab authenticates the user in the target tool, sends the request and makes a  
144 -visual transformation in the HTML page which is the content of the response.  
145 -Another user-oriented feature is the integrated search engine, when the user  
146 -want to find something in the platform Colab will perform the search in the  
147 -whole databases. Colab itself provides a web interface for GNU Mailman and we  
148 -have two others integrated tools in \textit{integration}: Gitlab and Prezento. 166 +among all the services. When a request is received to a specific service, Colab
  167 +authenticates the user in the target tool, sends the request and makes a visual
  168 +transformation in the HTML page which is the content of the response. Another
  169 +user-oriented feature is the integrated search engine, when the user want to
  170 +find something in the platform Colab will perform the search in the whole
  171 +databases. Colab itself provides a web interface for GNU Mailman and we have
  172 +two others integrated tools in \textit{integration}: Gitlab and Prezento.
149 Gitlab provides web interface for Git repositories and issues tracker, and 173 Gitlab provides web interface for Git repositories and issues tracker, and
150 Prezento is a front-end for source code static analysis. 174 Prezento is a front-end for source code static analysis.
151 175
152 The source code static analysis is performed by \textit{mezuro}. It runs some 176 The source code static analysis is performed by \textit{mezuro}. It runs some
153 static analysis tools on source code stored in repository and provide this data 177 static analysis tools on source code stored in repository and provide this data
154 -to Prezento. A social network and CMS (Content Manager System) is provided by  
155 -Noosfero in \textit{social}, and the databases of all tools with a cache  
156 -service are in \textit{database}. 178 +to Prezento. A social network and CMS is provided by Noosfero in
  179 +\textit{social}, and the databases of all tools with a cache service are in
  180 +\textit{database}.
157 181
opensym2017/content/09-conclusion.tex
@@ -11,7 +11,7 @@ possible to mitigate conflicts experienced in the development environment @@ -11,7 +11,7 @@ possible to mitigate conflicts experienced in the development environment
11 and to conciliate governmental and academy cultures. To summarize our main contributions, we answered in this section the three open questions those guided this paper. 11 and to conciliate governmental and academy cultures. To summarize our main contributions, we answered in this section the three open questions those guided this paper.
12 12
13 \textbf{Q1:} \textit{Which strategy could be used to integrate several existing 13 \textbf{Q1:} \textit{Which strategy could be used to integrate several existing
14 -FLOSS tools to promote the collaborative software development?} 14 +FLOSS tools to promote a collaborative software development?}
15 % 15 %
16 The SPB portal integrates more than 10 FLOSS tools and provides several features, 16 The SPB portal integrates more than 10 FLOSS tools and provides several features,
17 such as social network, mailing list, version control, content management and 17 such as social network, mailing list, version control, content management and
@@ -47,8 +47,8 @@ After the end of the project, some students successfully @@ -47,8 +47,8 @@ After the end of the project, some students successfully
47 embraced opportunities in public and private sectors, within national borders 47 embraced opportunities in public and private sectors, within national borders
48 and abroad. Some other students went further and started their own companies. 48 and abroad. Some other students went further and started their own companies.
49 49
50 -\textbf{Q3:} \textit{How to introduce the FLOSS collaborative and agile  
51 -practices to governmental development process?} 50 +\textbf{Q3:} \textit{How to introduce collaborative and agile
  51 +practices typical in FLOSS environments in the governmental development process?}
52 With some adaptations, what we called the ``translation processes'', it is feasible 52 With some adaptations, what we called the ``translation processes'', it is feasible
53 to conciliate agile methodologies and FLOSS practices to develop software to 53 to conciliate agile methodologies and FLOSS practices to develop software to
54 governmental organizations with functional hierarchical structures that use 54 governmental organizations with functional hierarchical structures that use