Commit a080113362b0e5a9db5a1b0399df10fdfd2c1f7a

Authored by Melissa Wen
1 parent 601cf83c

[opensym] including contributions and other fixes to architecture and removing r…

…edundance on conclusion
opensym2017/content/06-architecture.tex
1 \section{Architecture} 1 \section{Architecture}
2 \label{sec:architecture} 2 \label{sec:architecture}
3 3
4 -From the point of view of the architecture, two main requirements was  
5 -brought by the Brazilian Federal Government for the new platform: 4 +From the architecture point of view, two main requirements was included on the new platform by Brazilian Federal Government request. They are:
6 5
7 \begin{enumerate} 6 \begin{enumerate}
8 - \item \textit{Integrate existing FLOSS systems}, with minimal differences from 7 + \item \textit{Integrating existing FLOSS systems} with minimal differences from
9 their original versions; 8 their original versions;
10 - \item \textit{Provide a consistent user interface} across the different  
11 - systems, as well as centralized authentication. 9 + \item \textit{Providing consistent user interface} across different
  10 + systems as well as centralized authentication.
12 \end{enumerate} 11 \end{enumerate}
13 12
14 -Adopting existing FLOSS systems and minimizing locally-made changes had  
15 -the objective of being able to upgrade to newer versions of the original  
16 -software, benefiting from improvements and maintenance done by the  
17 -existing project communities. Providing a consistent user interface on  
18 -top of those different tools was needed to make the transition between  
19 -the different systems seamless from the point of view of users, which  
20 -would be confused by jumping through completely different interfaces  
21 -while interacting with the portal.  
22 -  
23 -For the first requirement, we identified four main systems that required  
24 -specialized teams for work in the integration process. The teams learned  
25 -how to develop for their assigned systems and contributed to the  
26 -original communities, so that the version we used were not significantly  
27 -different from the original. 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
28 % 14 %
29 -At the end of the project, the SPB portal was composed of more than ten 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
  17 +original communities to align the used version with the original one.
  18 +%
  19 +In the end of the project, the SPB portal has combined more than ten
30 systems, such as Colab, Noosfero, Gitlab, and Mezuro. 20 systems, such as Colab, Noosfero, Gitlab, and Mezuro.
31 21
32 Colab\footnote{\url{https://github.com/colab}} is a systems integration 22 Colab\footnote{\url{https://github.com/colab}} is a systems integration
@@ -39,10 +29,7 @@ Colab implements this integration by working as a reverse proxy for the @@ -39,10 +29,7 @@ Colab implements this integration by working as a reverse proxy for the
39 integration applications, that is, all external requests pass through 29 integration applications, that is, all external requests pass through
40 Colab before reaching them. 30 Colab before reaching them.
41 % 31 %
42 -Initially, Colab had support for a small set of applications (Trac, GNU  
43 -Mailman, and Apache Lucene) and support for them was hard-coded. Our  
44 -team evolved Colab so that it can now receive plugins that add support  
45 -new applications without the need of changes to the Colab core. 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.
46 33
47 34
48 Noosfero\footnote{\url{http://noosfero.org}} is a software for building 35 Noosfero\footnote{\url{http://noosfero.org}} is a software for building
@@ -51,6 +38,8 @@ networking features, it also provides publication features such as blogs @@ -51,6 +38,8 @@ networking features, it also provides publication features such as blogs
51 and a general-purpose CMS (Content Management System). Most of the user 38 and a general-purpose CMS (Content Management System). Most of the user
52 interactions with SPB is through Noosfero: user registration, project 39 interactions with SPB is through Noosfero: user registration, project
53 home pages and documentation, and contact forms. 40 home pages and documentation, and contact forms.
  41 +%
  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.
54 43
55 44
56 Gitlab\footnote{\url{http://gitlab.com}} is a web-based Git repository 45 Gitlab\footnote{\url{http://gitlab.com}} is a web-based Git repository
@@ -63,6 +52,8 @@ integration and continuous deployment, flexible permissions, tracking of @@ -63,6 +52,8 @@ integration and continuous deployment, flexible permissions, tracking of
63 Work-in-Progress work, moving issues between projects, group-level 52 Work-in-Progress work, moving issues between projects, group-level
64 milestones, creating new branches from issues, issues board, and time 53 milestones, creating new branches from issues, issues board, and time
65 tracking. 54 tracking.
  55 +%
  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.
66 57
67 58
68 Mezuro\footnote{\url{http://mezuro.org/}} is a platform to 59 Mezuro\footnote{\url{http://mezuro.org/}} is a platform to
@@ -80,6 +71,8 @@ tools, allows selection and composition of metrics in a flexible manner, @@ -80,6 +71,8 @@ tools, allows selection and composition of metrics in a flexible manner,
80 stores the metrics evolution history, presents results in a friendly 71 stores the metrics evolution history, presents results in a friendly
81 way, as well as, allows users to customize the given interpretation 72 way, as well as, allows users to customize the given interpretation
82 accordingly to their own context. 73 accordingly to their own context.
  74 +%
  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.
83 76
84 \subsection{System unification and User eXperience evolution} 77 \subsection{System unification and User eXperience evolution}
85 78
@@ -100,10 +93,9 @@ list posts, or source code. @@ -100,10 +93,9 @@ list posts, or source code.
100 \label{fig:architecture} 93 \label{fig:architecture}
101 \end{figure} 94 \end{figure}
102 95
103 -The integration of collaborative environments goes beyond functional aspects.  
104 -Offering the population an unified experience across these environments has  
105 -been the key to encourage the use of the platform as it reduces the perception  
106 -of complexity. Thus, the SPB Portal information architecture was redesigned 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
107 to provide a transparent navigation and to reach users with different profiles. 99 to provide a transparent navigation and to reach users with different profiles.
108 A process of harmonization has been employed on the interaction models of each 100 A process of harmonization has been employed on the interaction models of each
109 tool to reduce the learning curve. At the same time, a new visual style was 101 tool to reduce the learning curve. At the same time, a new visual style was
opensym2017/content/09-conclusion.tex
@@ -10,7 +10,6 @@ based on the results of the SPB Portal project, we point out that it is @@ -10,7 +10,6 @@ based on the results of the SPB Portal project, we point out that it is
10 possible to mitigate conflicts experienced in the development environment 10 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 -  
14 \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
15 FLOSS tools to promote the collaborative software development?} 14 FLOSS tools to promote the collaborative software development?}
16 % 15 %
@@ -95,13 +94,6 @@ way. @@ -95,13 +94,6 @@ way.
95 % 94 %
96 And even under a potentially adverse environment, the project delivered 95 And even under a potentially adverse environment, the project delivered
97 the desired solution with success. 96 the desired solution with success.
98 -%  
99 -At the end of the project, we noted that the skills developed by the  
100 -students were at the software engineering state of the art.  
101 -After the project ended, we had team members successfully embracing  
102 -opportunities in public, private, national, and international  
103 -organizations, in addition to those students that  
104 -opened their own companies.  
105 97
106 \textbf{L3:} \textit{Managing different organizational cultures.} 98 \textbf{L3:} \textit{Managing different organizational cultures.}
107 In the beginning of the project, the Brazilian Government stakeholders 99 In the beginning of the project, the Brazilian Government stakeholders
@@ -109,12 +101,7 @@ had certain expectations about the project development that, let's @@ -109,12 +101,7 @@ had certain expectations about the project development that, let's
109 say, did not exactly match our work style based on agile and FLOSS practices. 101 say, did not exactly match our work style based on agile and FLOSS practices.
110 % 102 %
111 We had to develop strategies that would support these different 103 We had to develop strategies that would support these different
112 -organizational cultures. The  
113 -MP is organized in a functional hierarchical organizational structure,  
114 -typically adopting a traditional development paradigm. Therefore, we had to  
115 -create a translation process between our team and the MP managers who  
116 -managed the project on their side assuming a traditional waterfall  
117 -process. 104 +organizational cultures. Therefore, we have created ``translation processes'' between our team and the MP managers who managed the project on their side, assuming a traditional waterfall process.
118 105
119 \textbf{L4:} \textit{Managing higher-level and lower-level goals separately.} 106 \textbf{L4:} \textit{Managing higher-level and lower-level goals separately.}
120 During the initial phase of the project, the MP team has brought 107 During the initial phase of the project, the MP team has brought