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