Commit ae32d560fd205d9e4078bf233bedf9d17de38acf

Authored by Paulo Meireles
1 parent f5da9c76

[opensym] minor fixes

opensym2017/content/00-abstract.tex
1 \begin{abstract} 1 \begin{abstract}
2 2
3 The Brazilian Public Software (SPB) is a program by the Brazilian Federal 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 4 +Government to foster the sharing and collaboration on Free/Libre/Open Source
  5 +Software (FLOSS) solutions for the public administration. In the one hand,
  6 +Brazilian Public Softwares have some differences from FLOSS projects, in
7 particular, the software is considered a public good and the Federal government 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 8 assumes some responsibilities related to its use. In the other hand, the
9 software development principles are the same: the trend towards 9 software development principles are the same: the trend towards
10 decentralization in decision-making, the information and development sharing, 10 decentralization in decision-making, the information and development sharing,
11 and the continuous feedback. In this context, we have designed a platform based 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 12 +on the integration and evolution of existing FLOSS tools. Nowadays, the SPB
13 Portal provides several modern features for software collaborative development, 13 Portal provides several modern features for software collaborative development,
14 helping the Brazilian public administration to share its solutions. In this 14 helping the Brazilian public administration to share its solutions. In this
15 paper, we present this integrated software development platform that was 15 paper, we present this integrated software development platform that was
16 developed for the program by a heterogeneous team composed by professors, 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, 17 +master students, undergraduate students and professionals from FLOSS
  18 +communities. The development of this platform used several FLOSS applications,
19 providing a non-trivial integration among them, as well as, have generated 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 20 several contributed features back to them. In this experience report, alongside
21 the platform architecture, features, and the user experience efforts carried 21 the platform architecture, features, and the user experience efforts carried
opensym2017/content/01-introduction.tex
@@ -3,11 +3,11 @@ @@ -3,11 +3,11 @@
3 3
4 The Brazilian Federal Government has been 4 The Brazilian Federal Government has been
5 improving its software adoption and development processes. For 5 improving its software adoption and development processes. For
6 -instance, in 2003, the recommendation to adopt Free and Open Source  
7 -Software (FOSS) become a public policy. In 2007, the Brazilian 6 +instance, in 2003, the recommendation to adopt Free/Libre/Open Source
  7 +Software (FLOSS) become a public policy. In 2007, the Brazilian
8 Government released a portal named Brazilian Public Software 8 Government released a portal named Brazilian Public Software
9 (\textit{Software Público Brasileiro} -- SPB, in Portuguese), with the 9 (\textit{Software Público Brasileiro} -- SPB, in Portuguese), with the
10 -goal of sharing FOSS projects developed by, or for, the Brazilian 10 +goal of sharing FLOSS projects developed by, or for, the Brazilian
11 Government. Additionally, the Brazilian legal instrument on software 11 Government. Additionally, the Brazilian legal instrument on software
12 contracting (known as IN 04/2012) mandates that public agents must give 12 contracting (known as IN 04/2012) mandates that public agents must give
13 priority to solutions available on the SPB Portal. In short, the 13 priority to solutions available on the SPB Portal. In short, the
@@ -18,12 +18,12 @@ In 2013, the Brazilian Federal Court issued a ruling document @@ -18,12 +18,12 @@ In 2013, the Brazilian Federal Court issued a ruling document
18 agile methodologies in software development contracts with the public 18 agile methodologies in software development contracts with the public
19 administration. 19 administration.
20 20
21 -Despite of that, in practice, FOSS or agile methodologies, that is, 21 +Despite of that, in practice, free software or agile methodologies, that is,
22 collaborative and empirical software development methods are not widely 22 collaborative and empirical software development methods are not widely
23 practiced and understood by the Brazilian government agents. Thus, the 23 practiced and understood by the Brazilian government agents. Thus, the
24 hierarchical and traditional processes from the government and the lack 24 hierarchical and traditional processes from the government and the lack
25 of expertise in real-world software development of its agents produces a 25 of expertise in real-world software development of its agents produces a
26 -situation of inneficient software development contracts and 26 +situation of inefficient software development contracts and
27 unjustifiable expending of taxpayers' money. 27 unjustifiable expending of taxpayers' money.
28 28
29 % TODO: ^ references 29 % TODO: ^ references
@@ -32,7 +32,7 @@ Since 2009, the SPB Portal was having several technical issues. The original @@ -32,7 +32,7 @@ Since 2009, the SPB Portal was having several technical issues. The original
32 codebase was not being developed anymore, also, there was a large amount of 32 codebase was not being developed anymore, also, there was a large amount of
33 knowingly non-optimal or wrong design decisions to overcome (in other words, 33 knowingly non-optimal or wrong design decisions to overcome (in other words,
34 technical debt \cite{refactoring}). The system was a modified version of an 34 technical debt \cite{refactoring}). The system was a modified version of an
35 -existing FOSS platform called OpenACS \footnote{\url{http://openacs.org}}, and 35 +existing FLOSS platform called OpenACS \footnote{\url{http://openacs.org}}, and
36 the old SPB portal was not being updated anymore against the official OpenACS 36 the old SPB portal was not being updated anymore against the official OpenACS
37 releases. In this scenario, the portal maintenance has become increasingly 37 releases. In this scenario, the portal maintenance has become increasingly
38 difficult. 38 difficult.
@@ -59,7 +59,7 @@ the Brazilian Federal Government a total of 2,619,965.00 BRL (about @@ -59,7 +59,7 @@ the Brazilian Federal Government a total of 2,619,965.00 BRL (about
59 The project was developed by a team of 3 professors, 2 masters students, and 59 The project was developed by a team of 3 professors, 2 masters students, and
60 approximately 50 undergraduate students (not all of them at the same time, 60 approximately 50 undergraduate students (not all of them at the same time,
61 though -- graduations and other events triggered changes in the team) together 61 though -- graduations and other events triggered changes in the team) together
62 -with 2 professional designers and 6 senior developers from the FOSS 62 +with 2 professional designers and 6 senior developers from free software
63 communities. The professors and all undergraduate student were from UnB, and 63 communities. The professors and all undergraduate student were from UnB, and
64 the master students were from USP. Regarding the designers and senior 64 the master students were from USP. Regarding the designers and senior
65 developers, 7 of 8 they were living outside of Brasília: Curitiba/Brazil, São 65 developers, 7 of 8 they were living outside of Brasília: Curitiba/Brazil, São
@@ -69,18 +69,18 @@ distributed collaborative virtual environment. @@ -69,18 +69,18 @@ distributed collaborative virtual environment.
69 69
70 Figure \ref{fig:spb} shows the home page of this integrated platform. 70 Figure \ref{fig:spb} shows the home page of this integrated platform.
71 All development was done in the open, and the changes we needed in the 71 All development was done in the open, and the changes we needed in the
72 -FOSS tools were contributed back to their respective communities. Our  
73 -process was based on agile practices and FOSS communities interaction. 72 +FLOSS tools were contributed back to their respective communities. Our
  73 +process was based on agile practices and FLOSS communities interaction.
74 We defined development cycles and released 5 versions of the new SPB 74 We defined development cycles and released 5 versions of the new SPB
75 Portal. The first release (beta) was in September 2014, only 9 months 75 Portal. The first release (beta) was in September 2014, only 9 months
76 -from the beginning of the project. The old portal was shut down down in  
77 -September 2015. Finally, the last version illustrated in Figure 1 was 76 +from the beginning of the project. The old portal was shut down in
  77 +September 2015. Finally, the last version, illustrated in Figure 1, was
78 released in June 2016. 78 released in June 2016.
79 79
80 In this paper, we present an overview of this new generation of the SPB 80 In this paper, we present an overview of this new generation of the SPB
81 Portal. The paper shares the methodology employed to develop this project, 81 Portal. The paper shares the methodology employed to develop this project,
82 in partnership with the Brazilian Federal Government, to comply with its 82 in partnership with the Brazilian Federal Government, to comply with its
83 -requirements at the same time to be as faithful as possible to FOSS development. 83 +requirements at the same time to be as faithful as possible to FLOSS development.
84 Moreover, we discuss several lessons learned to provide a distributed 84 Moreover, we discuss several lessons learned to provide a distributed
85 collaborative virtual environment involving a large undergraduate student team 85 collaborative virtual environment involving a large undergraduate student team
86 and remote senior developers. Lastly, we released an unprecedented platform for 86 and remote senior developers. Lastly, we released an unprecedented platform for
opensym2017/content/02-spb.tex
@@ -6,15 +6,15 @@ that we now identify as free software, that is, sharing code openly. This @@ -6,15 +6,15 @@ that we now identify as free software, that is, sharing code openly. This
6 openness makes the code available for inspection, modification, and use by any 6 openness makes the code available for inspection, modification, and use by any
7 person or organization \cite{hippel2003,kon2012}. 7 person or organization \cite{hippel2003,kon2012}.
8 8
9 -The elements that distinguish FOSS from other types of software are the 9 +The elements that distinguish FLOSS from other types of software are the
10 reasoning about the development process, the economic context, the relationship 10 reasoning about the development process, the economic context, the relationship
11 between developers and users, as well as the ethical and legal characteristics 11 between developers and users, as well as the ethical and legal characteristics
12 -that relate to the software. In the context of FOSS, user freedom is promoted 12 +that relate to the software. In the context of FLOSS, user freedom is promoted
13 and its development is based on open collaboration and development practices 13 and its development is based on open collaboration and development practices
14 \cite{meirelles2013}. 14 \cite{meirelles2013}.
15 15
16 From the economic point of view, unlike what happens with proprietary software, 16 From the economic point of view, unlike what happens with proprietary software,
17 -FOSS promotes the establishment of several suppliers that can compete with each 17 +FLOSS promotes the establishment of several suppliers that can compete with each
18 other based on the same software. This stronger competition among suppliers 18 other based on the same software. This stronger competition among suppliers
19 brings benefits to users because it gives better assurances regarding the 19 brings benefits to users because it gives better assurances regarding the
20 evolution of the system and induces a reduction in prices \cite{kon2012}. These 20 evolution of the system and induces a reduction in prices \cite{kon2012}. These
@@ -23,9 +23,9 @@ freedoms and assurances on software are guaranteed in Brazil by Law 9610/98 @@ -23,9 +23,9 @@ freedoms and assurances on software are guaranteed in Brazil by Law 9610/98
23 the terms conferred by a contract related to certain software. This contract is 23 the terms conferred by a contract related to certain software. This contract is
24 called ``license''. A software license determines a list of rights that are 24 called ``license''. A software license determines a list of rights that are
25 given to, and duties that are imposed on a user of the software. In particular, 25 given to, and duties that are imposed on a user of the software. In particular,
26 -what differentiates FOSS from proprietary software is just the way they are  
27 -licensed \cite{sabino2009}. The FOSS licenses guarantee the right to execute,  
28 -study, adapt, and improve the software. Example of common FOSS licenses are 26 +what differentiates FLOSS from proprietary software is just the way they are
  27 +licensed \cite{sabino2009}. The FLOSS licenses guarantee the right to execute,
  28 +study, adapt, and improve the software. Example of common FLOSS licenses are
29 the \textit{GPL (GNU General Public License)}, the Apache license, the MIT 29 the \textit{GPL (GNU General Public License)}, the Apache license, the MIT
30 license, and the BSD license. 30 license, and the BSD license.
31 31
@@ -35,7 +35,7 @@ that has consolidated itself as an environment for sharing software @@ -35,7 +35,7 @@ that has consolidated itself as an environment for sharing software
35 projects. It provides a space (community) for each software. 35 projects. It provides a space (community) for each software.
36 Therefore, it was designed to include tools that promote collaboration 36 Therefore, it was designed to include tools that promote collaboration
37 and interaction in communities (by managers, users, and developers) of 37 and interaction in communities (by managers, users, and developers) of
38 -the projects, according to the practices used in FOSS communities. This 38 +the projects, according to the practices used in FLOSS communities. This
39 includes mailing lists, discussion forums, issue trackers, version 39 includes mailing lists, discussion forums, issue trackers, version
40 control systems, and social networking environments. 40 control systems, and social networking environments.
41 41
@@ -47,11 +47,11 @@ results obtained through the use of those solutions. In this way, some software @@ -47,11 +47,11 @@ results obtained through the use of those solutions. In this way, some software
47 development cooperatives and private companies have shown an interest in making 47 development cooperatives and private companies have shown an interest in making
48 their software available on the SPB platform. 48 their software available on the SPB platform.
49 49
50 -The concept of Brazilian Public Software goes beyond FOSS. In addition  
51 -to being licensed under a FOSS license, a SPB needs to have explicit 50 +The concept of Brazilian Public Software goes beyond FLOSS. In addition
  51 +to being licensed under a FLOSS license, a Brazilian public software needs to have explicit
52 guarantees that it is a public good, and that project must be available 52 guarantees that it is a public good, and that project must be available
53 on the SPB portal. Being a true public good assumes requirements that 53 on the SPB portal. Being a true public good assumes requirements that
54 -can not be met solely by means of FOSS licensing. For example, there 54 +can not be met solely by means of FLOSS licensing. For example, there
55 must be a relaxed trademark usage policy by the original vendor that 55 must be a relaxed trademark usage policy by the original vendor that
56 does not stop eventual competitors from advertising services for that 56 does not stop eventual competitors from advertising services for that
57 same software. Inclusion in the SPB Portal also has extra requirements, 57 same software. Inclusion in the SPB Portal also has extra requirements,
opensym2017/content/03-relatedworks.tex
@@ -2,9 +2,10 @@ @@ -2,9 +2,10 @@
2 \label{sec:relatedwork} 2 \label{sec:relatedwork}
3 3
4 The new SPB platform presented in this paper is a fully integrated 4 The new SPB platform presented in this paper is a fully integrated
5 -environment, as we can see in Figure \ref{fig:requirements}, being very  
6 -advanced in comparison with related projects and initiatives. For example,  
7 -the USA government has a platform designed to improve access to the federal 5 +environment, being very
  6 +advanced in comparison with related projects and initiatives.
  7 +
  8 +The USA government has a platform designed to improve access to the federal
8 government developed software\footnote{\url{https://code.gov}}. Code.gov 9 government developed software\footnote{\url{https://code.gov}}. Code.gov
9 is an interface to organize the USA government projects and, in short, make 10 is an interface to organize the USA government projects and, in short, make
10 it easy for users and developers to obtain information and access their 11 it easy for users and developers to obtain information and access their
@@ -30,7 +31,7 @@ business applications, cloud computing platforms and foster a community and @@ -30,7 +31,7 @@ business applications, cloud computing platforms and foster a community and
30 business ecosystem. In short, it aims to support the development, deployment 31 business ecosystem. In short, it aims to support the development, deployment
31 and management of distributed applications with a focus on FOSS middleware and 32 and management of distributed applications with a focus on FOSS middleware and
32 related development and management tools. 33 related development and management tools.
33 -% 34 +
34 Moreover, from the European Commission in 2007 until 20011, there was the 35 Moreover, from the European Commission in 2007 until 20011, there was the
35 QualiPSo project that aimed at providing FOSS users, developers, and consumers, 36 QualiPSo project that aimed at providing FOSS users, developers, and consumers,
36 with quality resources and expertise on the various topics related to FOSS. The 37 with quality resources and expertise on the various topics related to FOSS. The
@@ -49,10 +50,10 @@ source code repositories are available at the Bitbucket @@ -49,10 +50,10 @@ source code repositories are available at the Bitbucket
49 platform\footnote{\url{https://bitbucket.org/softwarepublico}}. 50 platform\footnote{\url{https://bitbucket.org/softwarepublico}}.
50 51
51 The Brazilian government needed to evolve the SPB project that 52 The Brazilian government needed to evolve the SPB project that
52 -existed since 2005. In 2013, when we started this project, the SPB Portal  
53 -had about 200 thousand registered users. We could not just contact these 53 +existed since 2005. When we started this project, the SPB Portal
  54 +had about 200 thousand registered users. For example, we could not just contact these
54 users and ask them to register an account at Github as well. Moreover, 55 users and ask them to register an account at Github as well. Moreover,
55 -after the Edward Snowden case, the Brazilian government approved a 56 +after the Edward Snowden's case, the Brazilian government approved a
56 specific law decree (8.135/2013) to rule its communication services, 57 specific law decree (8.135/2013) to rule its communication services,
57 requiring the public administration to host its information systems to 58 requiring the public administration to host its information systems to
58 be provided by itself, what rules out usage of private platforms, 59 be provided by itself, what rules out usage of private platforms,
opensym2017/content/06-architecture.tex
1 \section{Architecture} 1 \section{Architecture}
2 \label{sec:architecture} 2 \label{sec:architecture}
3 3
4 -Based on the extensive list of functional requirements defined by the  
5 -Brazilian Federal Government, we selected some FOSS systems to form our  
6 -solution. We looked for system that together could provide the largest  
7 -subset possible of the requirements, and were fully aware that we would  
8 -need to improve those systems in order to provide the rest. We were also  
9 -convinced that it would be impossible to provide all of those  
10 -requirements with a single tool.  
11 -  
12 From the point of view of the architecture, two main requirements was 4 From the point of view of the architecture, two main requirements was
13 brought by the Brazilian Federal Government for the new platform: 5 brought by the Brazilian Federal Government for the new platform:
14 6