Commit a282bfe49c32e7cefa0496d078c0891f0efe8788
1 parent
d04d35a9
Exists in
master
and in
3 other branches
[opensym] the camera ready version \o/
Showing
5 changed files
with
54 additions
and
42 deletions
Show diff stats
opensym2017/content/01-introduction.tex
@@ -68,17 +68,17 @@ The first release (beta) was in September 2014, only 9 months from the | @@ -68,17 +68,17 @@ The first release (beta) was in September 2014, only 9 months from the | ||
68 | 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. |
69 | Finally, the last version was released in June 2016. | 69 | Finally, the last version was released in June 2016. |
70 | 70 | ||
71 | -In this paper, we present an overview of the new SPB Portal. We share | ||
72 | -the methodology employed to develop this project. This methodology has the | ||
73 | -goals of satisfying Government requirements and adhering as much as possible to | ||
74 | -FLOSS and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss | ||
75 | -lessons learned in providing a distributed and collaborative virtual | ||
76 | -environment involving a large team of undergraduate students and remote senior | ||
77 | -developers. In short, we released an innovative platform for helping the | ||
78 | -Brazilian government to apply empirical software development methods. This case | ||
79 | -can help other projects to overcome similar software engineering challenges in | ||
80 | -the future, as well as to illustrate how universities can improve the | ||
81 | -real-world experience of their students. | 71 | +In this paper, we present an overview of the new SPB Portal. We share the |
72 | +methodology employed to develop this project. This methodology has the goals | ||
73 | +of satisfying Government requirements and adhering as much as possible to FLOSS | ||
74 | +and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss lessons | ||
75 | +learned in providing a distributed and collaborative virtual environment | ||
76 | +involving a large team of undergraduate students and remote senior developers. | ||
77 | +In short, we released an innovative platform for helping the Brazilian | ||
78 | +government to apply empirical software development methods. This case can help | ||
79 | +other projects to overcome similar software engineering challenges in the | ||
80 | +future, as well as to illustrate how universities can improve the real-world | ||
81 | +experience of their students. | ||
82 | 82 | ||
83 | \begin{comment} | 83 | \begin{comment} |
84 | %FALTA ESPAÇO | 84 | %FALTA ESPAÇO |
opensym2017/content/02-spb.tex
@@ -41,20 +41,20 @@ social networking environments. | @@ -41,20 +41,20 @@ 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, it | 43 | in the Brazilian government to reduce the costs of hiring software. However, it |
44 | -was observed that when a software was released, a community was formed | ||
45 | -around it, 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 | ||
48 | -private companies have shown an interest in making their software available on | ||
49 | -the SPB Portal. | 44 | +was observed that when a software was released, a community was formed around |
45 | +it, with several people collaborating and sharing the results obtained through | ||
46 | +the use of those solutions, as commonly occurs in FLOSS \cite{ducheneaut2005}. | ||
47 | +In this way, some software development cooperatives and private companies have | ||
48 | +shown an interest in making their software available on the SPB Portal. | ||
50 | 49 | ||
51 | -The concept of Brazilian Public Software goes beyond FLOSS \cite{freitas2008}. In addition to being | ||
52 | -licensed under a FLOSS license, this software needs to have explicit guarantees that it | ||
53 | -is a public good, and its 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. | 50 | +The concept of Brazilian Public Software goes beyond FLOSS \cite{freitas2008}. |
51 | +In addition to being licensed under a FLOSS license, this software needs to | ||
52 | +have explicit guarantees that it is a public good, and its project must be | ||
53 | +available on the SPB portal. Being a true public good assumes requirements that | ||
54 | +can not be met solely by means of FLOSS licensing. For example, there must be a | ||
55 | +relaxed trademark usage policy by the original vendor that does not stop | ||
56 | +eventual competitors from advertising services for that same software. | ||
57 | +Inclusion in the SPB Portal also has extra requirements, such as having a | ||
58 | +public version control system, installation manual, and hardware requirements | ||
59 | +specification. | ||
60 | 60 |
opensym2017/content/04-researchdesign.tex
@@ -27,13 +27,14 @@ Government. For the majority of the students, this was a first professional | @@ -27,13 +27,14 @@ Government. For the majority of the students, this was a first professional | ||
27 | experience. Even though, our development process defined a central role on | 27 | experience. Even though, our development process defined a central role on |
28 | students participation. | 28 | students participation. |
29 | 29 | ||
30 | -\textbf{Q3.} \textit{How to introduce typical FLOSS collaborative and agile practices in the governmental development process?} | 30 | +\textbf{Q3.} \textit{How to introduce typical FLOSS collaborative and agile |
31 | +practices in the governmental development process?} | ||
31 | % | 32 | % |
32 | The software development in Brazilian government is based on a very traditional | 33 | The software development in Brazilian government is based on a very traditional |
33 | way, frequently focusing documentation deliveries. We had to convince them to | 34 | way, frequently focusing documentation deliveries. We had to convince them to |
34 | accept the idea of open scope and empirical development. They had certain | 35 | accept the idea of open scope and empirical development. They had certain |
35 | expectations about the project development according to the Rational Unified | 36 | expectations about the project development according to the Rational Unified |
36 | -Process (RUP) and the Project Management Body of Knowledge (PMBOK) approaches, which | ||
37 | -mismatched our work style based on agile and FLOSS practices. So we created | ||
38 | -strategies to conciliate these different organizational cultures within the | ||
39 | -project. | 37 | +Process (RUP) and the Project Management Body of Knowledge (PMBOK) approaches, |
38 | +which mismatched our work style based on agile and FLOSS practices. So we | ||
39 | +created strategies to conciliate these different organizational cultures within | ||
40 | +the project. |
opensym2017/content/05-requirements.tex
@@ -32,7 +32,8 @@ replace the old SPB Portal, prioritizing the following features: | @@ -32,7 +32,8 @@ replace the old SPB Portal, prioritizing the following features: | ||
32 | 32 | ||
33 | \begin{enumerate} | 33 | \begin{enumerate} |
34 | \item An organized public software catalog; | 34 | \item An organized public software catalog; |
35 | -\item Social network environment (profiles for users, software pages, and community pages); | 35 | +\item Social network environment (profiles for users, software pages, and |
36 | + community pages); | ||
36 | \item CMS features; | 37 | \item CMS features; |
37 | \item Web-based Git repository manager with Wiki and issue tracking features; | 38 | \item Web-based Git repository manager with Wiki and issue tracking features; |
38 | \item Mailing lists and discussion forums. | 39 | \item Mailing lists and discussion forums. |
opensym2017/content/06-architecture.tex
1 | \section{Architecture} | 1 | \section{Architecture} |
2 | \label{sec:architecture} | 2 | \label{sec:architecture} |
3 | 3 | ||
4 | -From the architeture point of view, the integration of several features (such as centralized authentication, unified interface, search engine as well as other back-end features) of systems with different programming languages and frameworks would require a non-trivial amount of work. In this context, the most important architetural requirements for the new platform were: | 4 | +From the architeture point of view, the integration of several features (such |
5 | +as centralized authentication, unified interface, search engine as well as | ||
6 | +other back-end features) of systems with different programming languages and | ||
7 | +frameworks would require a non-trivial amount of work. In this context, the | ||
8 | +most important architetural requirements for the new platform were: | ||
5 | 9 | ||
6 | \begin{enumerate} | 10 | \begin{enumerate} |
7 | \item \textit{Integrating existing FLOSS systems} with minimal differences | 11 | \item \textit{Integrating existing FLOSS systems} with minimal differences |
@@ -11,13 +15,18 @@ From the architeture point of view, the integration of several features (such as | @@ -11,13 +15,18 @@ From the architeture point of view, the integration of several features (such as | ||
11 | \end{enumerate} | 15 | \end{enumerate} |
12 | 16 | ||
13 | The adoption of existing FLOSS systems and the minimization of their local | 17 | The adoption of existing FLOSS systems and the minimization of their local |
14 | -changes had the purpose to lower the effort of upgrading the software packages that compose the platform to newer version of their original software. With this facility, the platform | ||
15 | -benefits from maintenance and improvements made by communities. The development of a consistent user interface aims to provide to platform's users a smooth transition between different systems. Without it, the necessity of | ||
16 | -adaptation and learning for each tool could get users confused and fatigued. | 18 | +changes had the purpose to lower the effort of upgrading the software packages |
19 | +that compose the platform to newer version of their original software. With | ||
20 | +this facility, the platform benefits from maintenance and improvements made by | ||
21 | +communities. The development of a consistent user interface aims to provide to | ||
22 | +platform's users a smooth transition between different systems. Without it, the | ||
23 | +necessity of adaptation and learning for each tool could get users confused and | ||
24 | +fatigued. | ||
17 | % | 25 | % |
18 | For the first requirement, we have identified four main systems which would | 26 | For the first requirement, we have identified four main systems which would |
19 | have specialized teams for work in the integration process. Team members have | 27 | have specialized teams for work in the integration process. Team members have |
20 | -learned how to write code to their assigned systems and how to contribute to the original communities to align the used version with the original one. | 28 | +learned how to write code to their assigned systems and how to contribute to |
29 | +the original communities to align the used version with the original one. | ||
21 | 30 | ||
22 | % | 31 | % |
23 | In the end of the project, the SPB portal has combined more than ten | 32 | In the end of the project, the SPB portal has combined more than ten |
@@ -30,8 +39,9 @@ change between applications. For that, Colab provides facilities for: (i) | @@ -30,8 +39,9 @@ change between applications. For that, Colab provides facilities for: (i) | ||
30 | Centralized authentication, (ii) Visual consistency, (iii) Relaying of events | 39 | Centralized authentication, (ii) Visual consistency, (iii) Relaying of events |
31 | between applications, and (iv) Integrated search engine. | 40 | between applications, and (iv) Integrated search engine. |
32 | % | 41 | % |
33 | -Colab implements this integration by working as a reverse proxy for the applications, i.e., all external requests pass through Colab | ||
34 | -before reaching them. | 42 | +Colab implements this integration by working as a reverse proxy for the |
43 | +applications, i.e., all external requests pass through Colab before reaching | ||
44 | +them. | ||
35 | % | 45 | % |
36 | Initially, Colab had support for a small set of applications (Trac, GNU | 46 | Initially, Colab had support for a small set of applications (Trac, GNU |
37 | Mailman, and Apache Lucene) hard-coded in its core. Our team have helped Colab | 47 | Mailman, and Apache Lucene) hard-coded in its core. Our team have helped Colab |
@@ -150,7 +160,7 @@ network created between them. | @@ -150,7 +160,7 @@ network created between them. | ||
150 | 160 | ||
151 | \begin{figure*}[hbt] | 161 | \begin{figure*}[hbt] |
152 | \centering | 162 | \centering |
153 | - \includegraphics[width=.95\linewidth]{figures/arch3.png} | 163 | + \includegraphics[width=.85\linewidth]{figures/arch3.png} |
154 | \caption{Instanciation view of the SPB architecture.} | 164 | \caption{Instanciation view of the SPB architecture.} |
155 | \label{fig:architecture2} | 165 | \label{fig:architecture2} |
156 | \end{figure*} | 166 | \end{figure*} |
@@ -169,8 +179,8 @@ Gitlab provides web interface for Git repositories and issues tracker, and | @@ -169,8 +179,8 @@ Gitlab provides web interface for Git repositories and issues tracker, and | ||
169 | Prezento is a front-end for source code static analysis. | 179 | Prezento is a front-end for source code static analysis. |
170 | 180 | ||
171 | The source code static analysis is performed by \textit{mezuro}. It runs some | 181 | The source code static analysis is performed by \textit{mezuro}. It runs some |
172 | -static analysis tools on source code stored in a repository and provides this data | ||
173 | -to Prezento. A social network and CMS is provided by Noosfero in | 182 | +static analysis tools on source code stored in a repository and provides this |
183 | +data to Prezento. A social network and CMS is provided by Noosfero in | ||
174 | \textit{social}, and the databases of all tools with a cache service are in | 184 | \textit{social}, and the databases of all tools with a cache service are in |
175 | \textit{database}. | 185 | \textit{database}. |
176 | 186 |