Commit 455d1bbde358dad3ba461e3e54c5dbea18804eff

Authored by Rodrigo Siqueira de Melo
2 parents 3bff9c92 a39bd2ef

Merge branch 'master' of softwarepublico.gov.br:softwarepublico/articles

opensym2017/content/00-abstract.tex
1 1 \begin{abstract}
2   -The Brazilian Public Software is a program by the Brazilian Federal
3   -Government to foster the sharing and collaboration on FOSS solutions for
4   -the public administration. In this paper, we present an integrated
5   -development platform that was developed for the program. The development
6   -of this platform used several FOSS applications and contributed
7   -features back to them. We discuss the development methodology, platform
8   -architecture, and the user experience efforts carried out.
9   -\end{abstract}
10   -
11   -\category{H.5.m.}{Information Interfaces and Presentation
12   - (e.g. HCI)}{Miscellaneous}
  2 +
  3 +The Brazilian Public Software (SPB) is a program by the Brazilian Federal
  4 +Government to foster the sharing and collaboration on Free and Open Source
  5 +Software (FOSS) solutions for the public administration. In the one hand,
  6 +Brazilian Public Softwares have some differences from FOSS projects, in
  7 +particular, the software is considered a public good and the Federal government
  8 +assumes some responsibilities related to its use. In the other hand, the
  9 +software development principles are the same: the trend towards
  10 +decentralization in decision-making, the information and development sharing,
  11 +and the continuous feedback. In this context, we have designed a platform based
  12 +on the integration and evolution of existing FOSS tools. Nowadays, the SPB
  13 +Portal provides several modern features for software collaborative development,
  14 +helping the Brazilian public administration to share its solutions. In this
  15 +paper, we present this integrated software development platform that was
  16 +developed for the program by a heterogeneous team composed by professors,
  17 +master students, undergraduate students and professionals from FOSS
  18 +communities. The development of this platform used several FOSS applications,
  19 +providing a non-trivial integration among them, as well as, have generated
  20 +several contributed features back to them. In this experience report, alongside
  21 +the platform architecture, features, and the user experience efforts carried
  22 +out, we also discuss our work process, based on agile and free software
  23 +development practices, and the lessons learned in 30 months work on the SPB
  24 +project.
  25 +
  26 +\end{abstract}
  27 +
  28 +\category{H.5.m.}{Information Interfaces and Presentation (e.g. HCI)}
  29 +{Miscellaneous}
13 30  
14 31 \keywords{\plainkeywords}
... ...
opensym2017/content/01-introduction.tex
1 1 \section{Introduction}
2 2 \label{sec:intro}
3 3  
4   -During the last few decades, the Brazilian Federal Government has
5   -improved its software adoption and development processes. In 2003, the
6   -recommendation to adopt Free/Open Source Software (FOSS) become a public
7   -policy. In 2007, the Brazilian Government released a portal called
8   -Brazilian Public Software (\textit{Software Público Brasileiro} -- SPB,
9   -in Portuguese), with the goal of sharing FOSS projects developed by, or
10   -for, the Brazilian Government.
11   -
12   -The Brazilian legal instrument on software contracting
13   -(\textit{Instrução Normativa} 04/2012) mandates that public management
14   -must consult the SPB Portal to adopt a software solution. The
15   -acquisition of a proprietary solution must be explicitly justified by
16   -demonstrating that there is no suitable option in the SPB Portal.
17   -
18   -Since 2009, however, the SPB Portal was having several technical issues.
19   -The original codebase was not being developed anymore, and there was a
20   -large amount of technical debt to overcome. The system was a modified
21   -version of an existing FOSS platform that was not being developed
22   -anymore, and the portal maintenance was becoming harder and harder.
23   -
24   -From January 2014 to June 2016, a new platform for the SPB Portal was
25   -designed and developed by the University of Brasília (UnB) and the
26   -University of São Paulo (USP) in a partnership with the Brazilian
27   -Ministry of Budget, Planning, and Management(MP). This new Portal was
28   -designed as an integrated platform for collaborative software
29   -development. It includes functionality for social networking, mailing
30   -lists, version control system, and source code quality monitoring. In
31   -this paper, we present an overview of this new generation of the SPB
32   -Portal.
33   -
34   -The project was developed by a team of 3 professors, 6 professionals, 2
35   -masters students, and approximately 40 undergraduate students (not all of
36   -them at the same time, though -- graduations and other events triggered
37   -changes in the team).
  4 +During the last few decades, the Brazilian Federal Government has improved its
  5 +software adoption and development processes. In 2003, the recommendation to
  6 +adopt Free and Open Source Software (FOSS) become a public policy. In 2007, the
  7 +Brazilian Government released a portal named Brazilian Public Software
  8 +(\textit{Software Público Brasileiro} -- SPB, in Portuguese), with the goal of
  9 +sharing FOSS projects developed by, or for, the Brazilian Government.
  10 +
  11 +The Brazilian legal instrument on software contracting (known as IN 04/2012)
  12 +mandates that public management must consult the SPB Portal to adopt a software
  13 +solution. In short, the acquisition of a proprietary solution must be
  14 +explicitly justified by demonstrating that there is no suitable option in the
  15 +SPB Portal. However, since 2009, the SPB Portal was having several technical
  16 +issues. The original codebase was not being developed anymore, and there was a
  17 +large amount of technical debt to overcome. The system was a modified version
  18 +of an existing FOSS platform (called
  19 +OpenACS\footnote{\url{http://openacs.org}}) and the old SPB portal was not
  20 +being updated anymore with its official releases. In this scenario, the portal
  21 +maintenance was becoming harder and harder.
  22 +
  23 +Afterward some events and meetings to collect all requirements from the federal
  24 +government and society, a new platform for the SPB Portal was developed, among
  25 +January 2014 and June 2016, by the University of Brasília (UnB) and the
  26 +University of São Paulo (USP) in a partnership with the Brazilian Ministry of
  27 +Budget, Planning, and Management (MP). It was designed it as an integrated
  28 +platform for collaborative software development. It includes functionality for
  29 +social networking, mailing lists, version control system, and source code
  30 +quality monitoring. To coordinate and develop this project during 30 months,
  31 +UnB received from the Brazilian Federal Government a total of 2,619,965.00 BRL
  32 +(about 750,000.00 USD in June 2016).
38 33  
39 34 \begin{figure*}[hbt]
40 35 \centering
... ... @@ -43,8 +38,36 @@ changes in the team).
43 38 \label{fig:spb}
44 39 \end{figure*}
45 40  
46   -Figure \ref{fig:spb} shows the home page of this integrated platform.
47   -The development tried to be as faithful as possible to FOSS development.
48   -All development was done in the open, and the changes we needed in the
49   -tools were contributed back to their communities.
  41 +The project was developed by a team of 3 professors, 2 masters students, and
  42 +approximately 50 undergraduate students (not all of them at the same time,
  43 +though -- graduations and other events triggered changes in the team) together
  44 +with 2 professional designers and 6 senior developers from the FOSS
  45 +communities. The professors and all undergraduate student were from UnB, and
  46 +the master students were from USP. Regarding the designers and senior
  47 +developers, 7 of 8 they were living outside of Brasília: Curitiba/Brazil, São
  48 +Paulo/Brazil, Ribeirão Preto/Brazil, Salvador/Brazil, Punta Cana/Dominican
  49 +Republic, and Montreal/Canada. In other words, we had a team working in
  50 +distributed collaborative virtual environment.
  51 +
  52 +Figure \ref{fig:spb} shows the home page of this integrated platform. All
  53 +development was done in the open, and the changes we needed in the FOSS tools
  54 +were contributed back to their communities. Our process was based on agile
  55 +practices and FOSS communities interaction. We defined development cycles and
  56 +released 5 versions of the new SPB Portal. The first release (beta) was in
  57 +September 2014, only 9 months from the begin of the project. We migrated and
  58 +turned off the old portal in September 2015. Finally, the last version
  59 +illustrated in Figure 1 was released in June 2016.
  60 +
  61 +In this paper, we present an overview of this new generation of the SPB Portal.
  62 +Alongside, this experience report shares our methodology and process to develop
  63 +this project working with the Brazilian federal government to comply with its
  64 +requirements at the same time to be as faithful as possible to FOSS
  65 +development. Moreover, we discuss several lessons learned to provide a
  66 +distributed collaborative virtual environment involving a large undergraduate
  67 +student team and remote senior developers. Lastly, we released an unprecedented
  68 +platform for the Brazilian government applying empirical software development
  69 +methods. This case can help other projects overcome a lot of software
  70 +engineering challenges in the future, as well as, how the universities take
  71 +advances to improve the real-world experiences of their student with these
  72 +kinds of projects.
50 73  
... ...
opensym2017/content/02-spb.tex
1   -\section{Free/Open Source Software and Brazilian Public Software}
  1 +\section{Background}
2 2 \label{sec:spb}
3 3  
4 4 FOSS is a phenomenon that has gained notoriety in recent years and has been
... ... @@ -6,27 +6,27 @@ attarcting the interest of academia. However, since the beginning of computing
6 6 the majority of developers worked in the way that we now identify as free
7 7 software, that is, sharing code openly. This feature makes the code available
8 8 for inspection, modification, and use by any person or organization
9   -\cite{kon2012}, \cite{hippel2003}.
  9 +\cite{hippel2003,kon2012}.
10 10  
11 11 The elements that distinguish FOSS from other types of software are the
12 12 reasoning about the development process, the economic context, the relationship
13 13 between developers and users, as well as the ethical and legal characteristics
14 14 that relate to the software. In the context of FOSS, user freedom is promoted
15   -and its development is based on open collaboration and development practices.
16   -%TODO: Colocar referências sem ser nós mesmo e sem ser em PT-Br
  15 +and its development is based on open collaboration and development practices
  16 +\cite{meirelles2013}.
17 17  
18 18 From the economic point of view, unlike what happens with proprietary software,
19 19 FOSS promotes the establishment of several suppliers that compete with each
20 20 other based on the same software. This stronger competition among suppliers
21 21 brings benefits to users because it gives better assurances regarding the
22   -evolution of the system and induces a reduction in prices. These freedoms and
23   -assurances on software are guaranteed in Brazil by Law 9610/98 (copyright law).
24   -Most of the time, this protection from the law complies with the terms
25   -conferred by a contract related to certain software. This contract is called
26   -``license''. A software license determines a list of rights that are
  22 +evolution of the system and induces a reduction in prices \cite{kon2012}. These
  23 +freedoms and assurances on software are guaranteed in Brazil by Law 9610/98
  24 +(copyright law). Most of the time, this protection from the law complies with
  25 +the terms conferred by a contract related to certain software. This contract is
  26 +called ``license''. A software license determines a list of rights that are
27 27 given to, and duties that are imposed on a user of the software. In particular,
28 28 what differentiates FOSS from proprietary software is just the way they are
29   -licensed\cite{sabino2009}. The FOSS licenses guarantee the right to execute,
  29 +licensed \cite{sabino2009}. The FOSS licenses guarantee the right to execute,
30 30 study, adapt, and improve the software. Example of common FOSS licenses are
31 31 the \textit{GPL (GNU General Public License)}, the Apache license, the MIT
32 32 license, and the BSD license.
... ... @@ -41,7 +41,7 @@ communities. This includes e-mail lists, discussion forums, issue trackers,
41 41 version control systems, and social networking environments.
42 42  
43 43 Initially, the purpose of the portal was only to share the software developed
44   -in the Brazilian government, to reduce the costs of hiring software. However
  44 +in the Brazilian government, to reduce the costs of hiring software. However,
45 45 it was observed that when softwares were released, their communities were
46 46 formed around those software with several people collaborating and sharing the
47 47 results obtained through the use of those solutions. In this way, some software
... ... @@ -49,12 +49,12 @@ development cooperatives and private companies have shown an interest in making
49 49 their software available on the SPB platform.
50 50  
51 51 The concept of Brazilian Public Software goes beyond FOSS. In addition to being
52   -licensed under a FOSS license, a Brazilian Public Software needs to have
53   -explicit guarantees that it is a public good, and that project must be
54   -available in the SPB. Being a true public good assumes requirements that can
55   -not be met solely by means of FOSS licensing. For example, there must be a
56   -relaxed trademark usage policy by the original vendor that do not stop eventual
57   -competitors from adversiting services for that same software. Inclusion in the
58   -SPB also has extra requirements, such as having a public version control
59   -system, installation manual, hardware requirements specification, etc.
  52 +licensed under a FOSS license, a SPB needs to have explicit guarantees that it
  53 +is a public good, and that project must be available in the SPB portal. Being a
  54 +true public good assumes requirements that can not be met solely by means of
  55 +FOSS licensing. For example, there must be a relaxed trademark usage policy by
  56 +the original vendor that do not stop eventual competitors from adversiting
  57 +services for that same software. Inclusion in the SPB project also has extra
  58 +requirements, such as having a public version control system, installation
  59 +manual, and hardware requirements specification.
60 60  
... ...
opensym2017/content/09-lessons.tex
1   -\section{Lessons Learned}
  1 +\section{Lessons Learned and Conclusion}
2 2 \label{sec:lessons}
3 3  
4 4 The multidisciplinary of the development teams - mainly composed of software
... ... @@ -83,3 +83,38 @@ teams got opportunities to work in public, private, national and international
83 83 organizations, in addition to those students they preferred entrepreneurship,
84 84 opening their own companies.
85 85  
  86 +%===========
  87 +% Conclusion
  88 +%===========
  89 +
  90 +The portal is available at \url{softwarepublico.gov.br}. All
  91 +documentation, including detailed architecture and operation manuals are
  92 +also available\footnote{\url{https://softwarepublico.gov.br/doc/}
  93 +(in Portuguese only at the moment)}).
  94 +%
  95 +All the integrated tools are FOSS and our contributions were published
  96 +in open repositories, available on the SPB Portal itself. We also
  97 +contributed these features back to the respective communities: that
  98 +benefits those communities, as well as us since we can share future
  99 +development and maintenance effort with other organizations that
  100 +participate in their projects.
  101 +
  102 +
  103 +%* utilização do projeto para formação de recursos humanos (alunos)
  104 +
  105 +%* dados da verificação dos repositório para a análise da qualidade dos código via Mezuro e CodeClimate
  106 +
  107 +%* o que achamos que irá acontecer com o SPB no futuro breve (acabar)
  108 +
  109 +%* 69 projetos marcados como SPB, de 81 no total na plataforma.
  110 +
  111 +%* 47\% é desenvolvido em PHP.
  112 +
  113 +% foi constatado que aproximadamente 75\% dos softwares \textbf{não} possuem seus códigos-fonte versionados nesta ferramenta. Realizado algumas pesquisas, foi encontrado o código-fonte em outros serviços (Github, Bitbucket).
  114 +
  115 +% Foram adicionados 31 softwares do SPB em ambas as ferramentas (Mezuro e Code Climate), desenvolvidos em PHP e Python. Estas adições resultaram na análise descrita nos próximos parágrafos. No Mezuro, dos 31 softwares adicionados, somente 4 obtiveram sucesso na avaliação. No Code Climate, 16 softwares realizaram a \textit{build} da avaliação com sucesso. Nos que falharam, alguns dos erros foram encontrados em três das \textit{engines}: ora em \textit{duplication}, ora na \textit{phpmd}, ora na \textit{eslint}.
  116 +
  117 +% também foram inseridos no Mezuro para avaliação, 5 projetos dos 17 desenvolvidos em Java, com o intuito de ser um contraponto ao Code Climatepor esta não compreender a análise de projetos em Java, C, ou C++. Infelizmente nenhuma das \textit{builds} resultou em resultados concretos.
  118 +
  119 +%* Debater economia de recursos em orgão públicos
  120 +
... ...
opensym2017/content/10-finals.tex
... ... @@ -1,32 +0,0 @@
1   -\section{Final remarks}
2   -
3   -The portal is available at \url{softwarepublico.gov.br}. All
4   -documentation, including detailed architecture and operation manuals are
5   -also available\footnote{\url{https://softwarepublico.gov.br/doc/}
6   -(in Portuguese only at the moment)}).
7   -%
8   -All the integrated tools are FOSS and our contributions were published
9   -in open repositories, available on the SPB Portal itself. We also
10   -contributed these features back to the respective communities: that
11   -benefits those communities, as well as us since we can share future
12   -development and maintenance effort with other organizations that
13   -participate in their projects.
14   -
15   -
16   -%* utilização do projeto para formação de recursos humanos (alunos)
17   -
18   -%* dados da verificação dos repositório para a análise da qualidade dos código via Mezuro e CodeClimate
19   -
20   -%* o que achamos que irá acontecer com o SPB no futuro breve (acabar)
21   -
22   -%* 69 projetos marcados como SPB, de 81 no total na plataforma.
23   -
24   -%* 47\% é desenvolvido em PHP.
25   -
26   -% foi constatado que aproximadamente 75\% dos softwares \textbf{não} possuem seus códigos-fonte versionados nesta ferramenta. Realizado algumas pesquisas, foi encontrado o código-fonte em outros serviços (Github, Bitbucket).
27   -
28   -% Foram adicionados 31 softwares do SPB em ambas as ferramentas (Mezuro e Code Climate), desenvolvidos em PHP e Python. Estas adições resultaram na análise descrita nos próximos parágrafos. No Mezuro, dos 31 softwares adicionados, somente 4 obtiveram sucesso na avaliação. No Code Climate, 16 softwares realizaram a \textit{build} da avaliação com sucesso. Nos que falharam, alguns dos erros foram encontrados em três das \textit{engines}: ora em \textit{duplication}, ora na \textit{phpmd}, ora na \textit{eslint}.
29   -
30   -% também foram inseridos no Mezuro para avaliação, 5 projetos dos 17 desenvolvidos em Java, com o intuito de ser um contraponto ao Code Climatepor esta não compreender a análise de projetos em Java, C, ou C++. Infelizmente nenhuma das \textit{builds} resultou em resultados concretos.
31   -
32   -%* Debater economia de recursos em orgão públicos
opensym2017/spb.tex
... ... @@ -159,7 +159,6 @@
159 159 \input{content/07-process}
160 160 \input{content/08-contributions}
161 161 \input{content/09-lessons}
162   -\input{content/10-finals}
163 162  
164 163 %------------------------------------------------------------------------------
165 164 \bibliographystyle{SIGCHI-Reference-Format}
... ...
sbqs2017/.gitignore 0 → 100644
... ... @@ -0,0 +1,10 @@
  1 +.DS_Store
  2 +*.sw*
  3 +guide.tex
  4 +*.bak
  5 +*.pdf
  6 +*.aux
  7 +*.log
  8 +*.bbl
  9 +*.blg
  10 +*.out
... ...
sbqs2017/content/00-abstract.tex
1 1 \begin{abstract}
2   -The Brazilian Public Software is a program by the Brazilian Federal
3   -Government to foster the sharing and collaboration on FOSS solutions for
4   -the public administration. In this paper, we present an integrated
5   -development platform that was developed for the program. The development
6   -of this platform used several FOSS applications and contributed
7   -features back to them. We discuss the development methodology, platform
8   -architecture, and the user experience efforts carried out.
9 2  
10   -\textbf{Keywords:} Brazilian Public Software, Free/Libre/Open Source Software, Software Evolution, Integrated Platform
  3 +The Brazilian Public Software (SPB) is a program by the Brazilian Federal
  4 +Government to foster the sharing and collaboration on Free and Open Source
  5 +Software (FOSS) solutions for the public administration. In the one hand,
  6 +Brazilian Public Softwares have some differences from FOSS projects, in
  7 +particular, the software is considered a public good and the Federal government
  8 +assumes some responsibilities related to its use. In the other hand, the
  9 +software development principles are the same: the trend towards
  10 +decentralization in decision-making, the information and development sharing,
  11 +and the continuous feedback. In this context, we have designed a platform based
  12 +on the integration and evolution of existing FOSS tools. Nowadays, the SPB
  13 +Portal provides several modern features for software collaborative development,
  14 +helping the Brazilian public administration to share its solutions. In this
  15 +paper, we present this integrated software development platform that was
  16 +developed for the program by a heterogeneous team composed by professors,
  17 +master students, undergraduate students and professionals from FOSS
  18 +communities. The development of this platform used several FOSS applications,
  19 +providing a non-trivial integration among them, as well as, have generated
  20 +several contributed features back to them. In this experience report, alongside
  21 +the platform architecture, features, and the user experience efforts carried
  22 +out, we also discuss our work process, based on agile and free software
  23 +development practices, and the lessons learned in 30 months work on the SPB
  24 +project.
11 25  
12   -\end{abstract}
  26 +\textbf{Keywords:} Brazilian Public Software, Free/Libre/Open Source Software,
  27 + Software Evolution, Integrated Platform
13 28  
  29 +\end{abstract}
... ...
sbqs2017/spb.tex
... ... @@ -2,7 +2,7 @@
2 2  
3 3 \usepackage{sbc-template}
4 4 \usepackage{graphicx,url}
5   -%\usepackage[brazil]{babel}
  5 +\usepackage[brazil]{babel}
6 6 \usepackage[utf8]{inputenc}
7 7 \usepackage{float}
8 8 \usepackage{setspace}
... ... @@ -12,22 +12,24 @@
12 12  
13 13 \begin{document}
14 14 \sloppy
15   -\title{Brazilian Public Software Portal: an integrated platform for collaborative development}
  15 +\title{ Development experience report on the new \\ Brazilian Public Software Portal}
16 16  
17   -\author{Paulo Meirelles\inst{1,2}, Antonio Terceiro\inst{3}, Hilmer Neri\inst{1},\\
18   - Melissa Wen\inst{3}, Rodrigo Siqueira\inst{2}, Lucas Kanashiro\inst{2}}
  17 +\author{Paulo Meirelles\inst{1,3}, Antonio Terceiro\inst{2}, Hilmer Neri\inst{1},\\
  18 + Melissa Wen\inst{2}, Rodrigo Siqueira\inst{3}, Lucas Kanashiro\inst{3}}
19 19  
20   -\address{Faculdade UnB Gama (FGA) -- Universidade de Brasília (UnB)\\
21   - Gama -- DF -- Brasil
  20 +\address{Laboratory of Production, Research and Innovation in Software (LAPPIS)\\
  21 + Faculdade UnB Gama (FGA) -- Universidade de Brasília (UnB)\\
  22 + Área Especial de Indústria Projeção A, Setor Leste -- Gama - DF -- Brasil
22 23 \email{\{paulormm,hilmer\}@unb.br}
23 24 \nextinstitute
24   - Instituto de Matemática e Estatística -- Universidade de São Paulo (USP)\\
25   - Rua do Matão, 1010 -- 05508-090 -- Cidade Universitária -- São Paulo -- SP -- Brasil
26   - \email{\{siqueira,lkd\}@ime.usp.br}
27   -\nextinstitute
28   - Cooperativa de Tecnologias Livre -- Colivre\\
29   - Salvador -- BA -- Brasil
  25 + Cooperativa de Trabalho em Tecnologias Livres -- Colivre\\
  26 + Rua Marechal Floriano, 28, Canela, Salvador - BA -- Brasil
30 27 \email{\{terceiro,melissa\}@colivre.coop.br}
  28 +\nextinstitute
  29 + Free Libre Open Source Competence Center (CCSL)\\
  30 + Instituto de Matemática e Estatística (IME) -- Universidade de São Paulo (USP)\\
  31 + Rua do Matão, 1010, Cidade Universitária -- São Paulo - SP -- Brasil
  32 + \email{\{siqueira,lkd\}@ime.usp.br}
31 33 }
32 34  
33 35 \maketitle
... ... @@ -44,7 +46,6 @@
44 46 \input{content/07-process}
45 47 \input{content/08-contributions}
46 48 \input{content/09-lessons}
47   -\input{content/10-finals}
48 49  
49 50 %------------------------------------------------------------------------------
50 51 \bibliographystyle{sbc}
... ...