Commit 47d6eed36618b97ac768b95692d52a4cf4ecbb1f
1 parent
d04d35a9
Exists in
master
and in
3 other branches
[opensym] the camera ready version \o/
Showing
6 changed files
with
57 additions
and
46 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 | 68 | beginning of the project. The old portal was shut down in September 2015. |
69 | 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 | 83 | \begin{comment} |
84 | 84 | %FALTA ESPAÇO | ... | ... |
opensym2017/content/02-spb.tex
... | ... | @@ -41,20 +41,20 @@ social networking environments. |
41 | 41 | |
42 | 42 | Initially, the purpose of the portal was only to share the software developed |
43 | 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 | 27 | experience. Even though, our development process defined a central role on |
28 | 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 | 33 | The software development in Brazilian government is based on a very traditional |
33 | 34 | way, frequently focusing documentation deliveries. We had to convince them to |
34 | 35 | accept the idea of open scope and empirical development. They had certain |
35 | 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 | 32 | |
33 | 33 | \begin{enumerate} |
34 | 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 | 37 | \item CMS features; |
37 | 38 | \item Web-based Git repository manager with Wiki and issue tracking features; |
38 | 39 | \item Mailing lists and discussion forums. | ... | ... |
opensym2017/content/06-architecture.tex
1 | 1 | \section{Architecture} |
2 | 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 | 10 | \begin{enumerate} |
7 | 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 | 15 | \end{enumerate} |
12 | 16 | |
13 | 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 | 26 | For the first requirement, we have identified four main systems which would |
19 | 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 | 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 | 39 | Centralized authentication, (ii) Visual consistency, (iii) Relaying of events |
31 | 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 | 46 | Initially, Colab had support for a small set of applications (Trac, GNU |
37 | 47 | Mailman, and Apache Lucene) hard-coded in its core. Our team have helped Colab |
... | ... | @@ -150,7 +160,7 @@ network created between them. |
150 | 160 | |
151 | 161 | \begin{figure*}[hbt] |
152 | 162 | \centering |
153 | - \includegraphics[width=.95\linewidth]{figures/arch3.png} | |
163 | + \includegraphics[width=.85\linewidth]{figures/arch3.png} | |
154 | 164 | \caption{Instanciation view of the SPB architecture.} |
155 | 165 | \label{fig:architecture2} |
156 | 166 | \end{figure*} |
... | ... | @@ -169,8 +179,8 @@ Gitlab provides web interface for Git repositories and issues tracker, and |
169 | 179 | Prezento is a front-end for source code static analysis. |
170 | 180 | |
171 | 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 | 184 | \textit{social}, and the databases of all tools with a cache service are in |
175 | 185 | \textit{database}. |
176 | 186 | ... | ... |
opensym2017/content/09-conclusion.tex
... | ... | @@ -165,10 +165,9 @@ infrastructure. |
165 | 165 | |
166 | 166 | \subsection{Final Remarks and Future Work} |
167 | 167 | |
168 | -Ultimately, the SPB portal is in | |
169 | -production\footnote{\url{https://softwarepublico.gov.br}} and its full | |
170 | -documentation, including detailed architecture and operation manuals, is also | |
171 | -available\footnote{\url{https://softwarepublico.gov.br/doc/}}. | |
168 | +The SPB portal is in production\footnote{\url{https://softwarepublico.gov.br}} | |
169 | +and its full documentation, including detailed architecture and operation | |
170 | +manuals, is also available\footnote{\url{https://softwarepublico.gov.br/doc/}}. | |
172 | 171 | % |
173 | 172 | All the integrated tools are FLOSS and our contributions were published in open |
174 | 173 | repositories, available on the SPB Portal itself. We also contributed these | ... | ... |