Commit 85235f41a9482f0f563b2743d5bcb5c3b3ab1c55

Authored by Paulo Meireles
1 parent a0801133

[opensym] general review - part 1

opensym2017/content/00-abstract.tex
1 1 \begin{abstract}
2 2  
3 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 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 6 public provision quality of service and information.
7 7 %
8 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 10 circular-letter was sent to all Ministries in which the recommendation to adopt
13 11 FLOSS became a public policy.
14 12 %
... ... @@ -36,35 +34,33 @@ contracts, besides unjustifiable expending of taxpayers money.
36 34 For instance, since 2009 the SPB Portal has had several technical issues. The
37 35 original codebase development has stopped. The system was a modified version of
38 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 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 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 50 The project was developed by a team of three professors, two masters students,
54 51 about fifty undergraduate students (not all of them at the same time, since the
55 52 team changed along the time), two professional designers, and six senior
56 53 developers from FLOSS communities. Professors and undergraduate students were
57 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 64 tools were implemented by ourselves and contributed back to their respective
69 65 communities. Our process was based on agile practices and FLOSS communities
70 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 68 beginning of the project. The old portal was shut down in September 2015.
73 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 72 the methodology employed to develop this project. This methodology has the
77 73 goals of satisfying Government requirements and adhering as much as possible to
78 74 FLOSS and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss
79 75 lessons learned in providing a distributed and collaborative virtual
80 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 78 Brazilian government to apply empirical software development methods. This case
83 79 can help other projects to overcome similar software engineering challenges in
84 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 24 This contract is called ``license''. A software license determines a list of
25 25 rights that are given to, and duties that are imposed on a user of the
26 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 29 FLOSS licenses are the \textit{GPL (GNU General Public License)}, the Apache
30 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 40 social networking environments.
41 41  
42 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 47 \cite{ducheneaut2005}. In this way, some software development cooperatives and
48 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 1 \section{Related Projects}
2 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 35 platform\footnote{\url{https://bitbucket.org/softwarepublico}}.
43 36  
44 37 The Brazilian government needed to evolve the SPB platform that existed since
45 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 1 \section{Open Questions}
2 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 9 \textbf{Q1:} \textit{Which strategy could be used to integrate several existing
10 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 14 engineering a nontrivial integration among them. We looked for the systems set
15 15 realizing the largest possible subset of the requirements list. However, we
16 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 50 features such as:
51 51 (i) An organized public software catalog;
52 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 54 (iv) Web-based Git repository manager with wiki and issue tracking features;
55 55 (v) Mailing lists and discussion forums;
56 56  
... ...
opensym2017/content/06-architecture.tex
1 1 \section{Architecture}
2 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 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 10 \item \textit{Providing consistent user interface} across different
10 11 systems as well as centralized authentication.
11 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 25 original communities to align the used version with the original one.
18 26 %
19 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 29  
22 30 Colab\footnote{\url{https://github.com/colab}} is a systems integration
23 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 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 103 \subsection{System unification and User eXperience evolution}
78 104  
79 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 114 \begin{figure}[hbt]
90 115 \centering
... ... @@ -93,34 +118,40 @@ list posts, or source code.
93 118 \label{fig:architecture}
94 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 145 \subsection{Deploy}
121 146  
122 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 156 \begin{figure*}[hbt]
126 157 \centering
... ... @@ -129,29 +160,22 @@ as we can see in Figure \ref{fig:architecture2}.
129 160 \label{fig:architecture2}
130 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 163 \textit{Integration} works as a second layer of proxy beneath
140 164 \textit{reverseproxy}, any request to the platform will be handled by it. The
141 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 173 Gitlab provides web interface for Git repositories and issues tracker, and
150 174 Prezento is a front-end for source code static analysis.
151 175  
152 176 The source code static analysis is performed by \textit{mezuro}. It runs some
153 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 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 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 16 The SPB portal integrates more than 10 FLOSS tools and provides several features,
17 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 47 embraced opportunities in public and private sectors, within national borders
48 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 52 With some adaptations, what we called the ``translation processes'', it is feasible
53 53 to conciliate agile methodologies and FLOSS practices to develop software to
54 54 governmental organizations with functional hierarchical structures that use
... ...