From 47d6eed36618b97ac768b95692d52a4cf4ecbb1f Mon Sep 17 00:00:00 2001 From: Paulo Meirelles Date: Tue, 25 Jul 2017 20:10:21 -0300 Subject: [PATCH] [opensym] the camera ready version \o/ --- opensym2017/content/01-introduction.tex | 22 +++++++++++----------- opensym2017/content/02-spb.tex | 30 +++++++++++++++--------------- opensym2017/content/04-researchdesign.tex | 11 ++++++----- opensym2017/content/05-requirements.tex | 3 ++- opensym2017/content/06-architecture.tex | 30 ++++++++++++++++++++---------- opensym2017/content/09-conclusion.tex | 7 +++---- 6 files changed, 57 insertions(+), 46 deletions(-) diff --git a/opensym2017/content/01-introduction.tex b/opensym2017/content/01-introduction.tex index d73c9d3..7d1921a 100644 --- a/opensym2017/content/01-introduction.tex +++ b/opensym2017/content/01-introduction.tex @@ -68,17 +68,17 @@ The first release (beta) was in September 2014, only 9 months from the beginning of the project. The old portal was shut down in September 2015. Finally, the last version was released in June 2016. -In this paper, we present an overview of the new SPB Portal. We share -the methodology employed to develop this project. This methodology has the -goals of satisfying Government requirements and adhering as much as possible to -FLOSS and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss -lessons learned in providing a distributed and collaborative virtual -environment involving a large team of undergraduate students and remote senior -developers. In short, we released an innovative platform for helping the -Brazilian government to apply empirical software development methods. This case -can help other projects to overcome similar software engineering challenges in -the future, as well as to illustrate how universities can improve the -real-world experience of their students. +In this paper, we present an overview of the new SPB Portal. We share the +methodology employed to develop this project. This methodology has the goals +of satisfying Government requirements and adhering as much as possible to FLOSS +and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss lessons +learned in providing a distributed and collaborative virtual environment +involving a large team of undergraduate students and remote senior developers. +In short, we released an innovative platform for helping the Brazilian +government to apply empirical software development methods. This case can help +other projects to overcome similar software engineering challenges in the +future, as well as to illustrate how universities can improve the real-world +experience of their students. \begin{comment} %FALTA ESPAƇO diff --git a/opensym2017/content/02-spb.tex b/opensym2017/content/02-spb.tex index 5fcd410..d408698 100644 --- a/opensym2017/content/02-spb.tex +++ b/opensym2017/content/02-spb.tex @@ -41,20 +41,20 @@ social networking environments. Initially, the purpose of the portal was only to share the software developed in the Brazilian government to reduce the costs of hiring software. However, it -was observed that when a software was released, a community was formed -around it, with several people collaborating and sharing the results -obtained through the use of those solutions, as commonly occurs in FLOSS -\cite{ducheneaut2005}. In this way, some software development cooperatives and -private companies have shown an interest in making their software available on -the SPB Portal. +was observed that when a software was released, a community was formed around +it, with several people collaborating and sharing the results obtained through +the use of those solutions, as commonly occurs in FLOSS \cite{ducheneaut2005}. +In this way, some software development cooperatives and private companies have +shown an interest in making their software available on the SPB Portal. -The concept of Brazilian Public Software goes beyond FLOSS \cite{freitas2008}. In addition to being -licensed under a FLOSS license, this software needs to have explicit guarantees that it -is a public good, and its project must be available on the SPB portal. Being a -true public good assumes requirements that can not be met solely by means of -FLOSS licensing. For example, there must be a relaxed trademark usage policy by -the original vendor that does not stop eventual competitors from advertising -services for that same software. Inclusion in the SPB Portal also has extra -requirements, such as having a public version control system, installation -manual, and hardware requirements specification. +The concept of Brazilian Public Software goes beyond FLOSS \cite{freitas2008}. +In addition to being licensed under a FLOSS license, this software needs to +have explicit guarantees that it is a public good, and its project must be +available on the SPB portal. Being a true public good assumes requirements that +can not be met solely by means of FLOSS licensing. For example, there must be a +relaxed trademark usage policy by the original vendor that does not stop +eventual competitors from advertising services for that same software. +Inclusion in the SPB Portal also has extra requirements, such as having a +public version control system, installation manual, and hardware requirements +specification. diff --git a/opensym2017/content/04-researchdesign.tex b/opensym2017/content/04-researchdesign.tex index 943423e..5859bb2 100644 --- a/opensym2017/content/04-researchdesign.tex +++ b/opensym2017/content/04-researchdesign.tex @@ -27,13 +27,14 @@ Government. For the majority of the students, this was a first professional experience. Even though, our development process defined a central role on students participation. -\textbf{Q3.} \textit{How to introduce typical FLOSS collaborative and agile practices in the governmental development process?} +\textbf{Q3.} \textit{How to introduce typical FLOSS collaborative and agile +practices in the governmental development process?} % The software development in Brazilian government is based on a very traditional way, frequently focusing documentation deliveries. We had to convince them to accept the idea of open scope and empirical development. They had certain expectations about the project development according to the Rational Unified -Process (RUP) and the Project Management Body of Knowledge (PMBOK) approaches, which -mismatched our work style based on agile and FLOSS practices. So we created -strategies to conciliate these different organizational cultures within the -project. +Process (RUP) and the Project Management Body of Knowledge (PMBOK) approaches, +which mismatched our work style based on agile and FLOSS practices. So we +created strategies to conciliate these different organizational cultures within +the project. diff --git a/opensym2017/content/05-requirements.tex b/opensym2017/content/05-requirements.tex index 9621846..decb64d 100644 --- a/opensym2017/content/05-requirements.tex +++ b/opensym2017/content/05-requirements.tex @@ -32,7 +32,8 @@ replace the old SPB Portal, prioritizing the following features: \begin{enumerate} \item An organized public software catalog; -\item Social network environment (profiles for users, software pages, and community pages); +\item Social network environment (profiles for users, software pages, and + community pages); \item CMS features; \item Web-based Git repository manager with Wiki and issue tracking features; \item Mailing lists and discussion forums. diff --git a/opensym2017/content/06-architecture.tex b/opensym2017/content/06-architecture.tex index a7e32d9..02d0d25 100644 --- a/opensym2017/content/06-architecture.tex +++ b/opensym2017/content/06-architecture.tex @@ -1,7 +1,11 @@ \section{Architecture} \label{sec:architecture} -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: +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: \begin{enumerate} \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 \end{enumerate} The adoption of existing FLOSS systems and the minimization of their local -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 -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 -adaptation and learning for each tool could get users confused and fatigued. +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 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 adaptation and learning for each tool could get users confused and +fatigued. % For the first requirement, we have identified four main systems which would have specialized teams for work in the integration process. Team members have -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. +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. % 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) Centralized authentication, (ii) Visual consistency, (iii) Relaying of events between applications, and (iv) Integrated search engine. % -Colab implements this integration by working as a reverse proxy for the applications, i.e., all external requests pass through Colab -before reaching them. +Colab implements this integration by working as a reverse proxy for the +applications, i.e., all external requests pass through Colab before reaching +them. % Initially, Colab had support for a small set of applications (Trac, GNU Mailman, and Apache Lucene) hard-coded in its core. Our team have helped Colab @@ -150,7 +160,7 @@ network created between them. \begin{figure*}[hbt] \centering - \includegraphics[width=.95\linewidth]{figures/arch3.png} + \includegraphics[width=.85\linewidth]{figures/arch3.png} \caption{Instanciation view of the SPB architecture.} \label{fig:architecture2} \end{figure*} @@ -169,8 +179,8 @@ Gitlab provides web interface for Git repositories and issues tracker, and Prezento is a front-end for source code static analysis. The source code static analysis is performed by \textit{mezuro}. It runs some -static analysis tools on source code stored in a repository and provides this data -to Prezento. A social network and CMS is provided by Noosfero in +static analysis tools on source code stored in a repository and provides this +data to Prezento. A social network and CMS is provided by Noosfero in \textit{social}, and the databases of all tools with a cache service are in \textit{database}. diff --git a/opensym2017/content/09-conclusion.tex b/opensym2017/content/09-conclusion.tex index 80f6215..2d9d5bd 100644 --- a/opensym2017/content/09-conclusion.tex +++ b/opensym2017/content/09-conclusion.tex @@ -165,10 +165,9 @@ infrastructure. \subsection{Final Remarks and Future Work} -Ultimately, the SPB portal is in -production\footnote{\url{https://softwarepublico.gov.br}} and its full -documentation, including detailed architecture and operation manuals, is also -available\footnote{\url{https://softwarepublico.gov.br/doc/}}. +The SPB portal is in production\footnote{\url{https://softwarepublico.gov.br}} +and its full documentation, including detailed architecture and operation +manuals, is also available\footnote{\url{https://softwarepublico.gov.br/doc/}}. % All the integrated tools are FLOSS and our contributions were published in open repositories, available on the SPB Portal itself. We also contributed these -- libgit2 0.21.2