diff --git a/opensym2017/content/01-introduction.tex b/opensym2017/content/01-introduction.tex index 8766f06..188db75 100644 --- a/opensym2017/content/01-introduction.tex +++ b/opensym2017/content/01-introduction.tex @@ -2,108 +2,103 @@ \label{sec:intro} The Brazilian Government released in the year 2000 the Eletronic Government -program (eGov) aiming at democratizing information access and improving the -public provision quality of service and information. In 2003, the Brazilian -President created a committee for implementation of free -software(\footnote{\url{http://www.softwarelivre.gov.br/documentos-oficiais/ -DecretoComite}}) and thereafter the Chief of Staff of Brazil sent a circular- -letter to all Ministries in which the recommendation to adopt Free/Libre/Open -Source Software (FLOSS\footnote{In this work, the acronym ``FLOSS'' is -used as a representative for ``Free Software'', ``Open Source Software'' (OSS), -and``Free/Open Source Software'' (FOSS).}) became a public policy -(\footnote{\url{http://www.softwarelivre.gov.br/documentos-oficiais/circulardoministro}}). +program (eGov) aiming at democratizing information access and improving the +public provision quality of service and information. In 2003, the Brazilian +President created a +committee\footnote{\url{http://www.softwarelivre.gov.br/documentos-oficiais/ +DecretoComite}} for implementation of Free/Libre/Open Source Software +(FLOSS\footnote{In this work, the acronym ``FLOSS'' is used as a representative +for ``Free Software'', ``Open Source Software'' (OSS), and``Free/Open Source +Software'' (FOSS).}) and thereafter the Chief of Staff of Brazil sent a +circular- letter to all Ministries in which the recommendation to adopt FLOSS +became a public +policy\footnote{\url{http://www.softwarelivre.gov.br/documentos-oficiais/circulardoministro}}. In 2007, the Brazilian Public Software Portal (\textit{Portal do Software -Público Brasileiro}, in Portuguese) was released with the goal of sharing FLOSS projects developed by, or for, the Brazilian Government. Additionally, the +Público Brasileiro}, in Portuguese) was released with the 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 prioritize solutions available on the SPB Portal. The acquisition of a proprietary solution must be explicitly justified by demonstrating that there is no suitable alternative on the SPB Portal. In 2013, the Brazilian Federal Court issued a ruling (\textit{Acórdão 2314/2013}) -about contracts between the public administration and suppliers using agile +about contracts between the public administration and suppliers using agile methodologies in software development. Despite of these legal advancements, in practice, Brazilian government agents -still do not practice, or even understand, -collaborative and empirical software development methods, -such as free software or agile methodologies. Thus, -hierarchical and traditional processes and the lack -of expertise of public agents in real-world software development produce -inefficiency in software development contracts, besides -unjustifiable expending of taxpayers money. +still do not practice, or even understand, collaborative and empirical software +development methods, such as FLOSS or agile methodologies. Thus, hierarchical +and traditional processes and the lack of expertise of public agents in +real-world software development produce inefficiency in software development +contracts, besides unjustifiable expending of taxpayers money. Since 2009, the SPB Portal has had several technical issues. The original -codebase development has stopped, leaving substantial -technical debt~\cite{refactoring}. -The system was a modified version of an -existing FLOSS platform called OpenACS \footnote{\url{http://openacs.org}}, and -the old SPB Portal did not receive updates from OpenACS releases. -In this scenario, the portal maintenance has become increasingly -difficult. - -After collecting requirements from the Federal -Government and society, a new platform for the SPB Portal was -developed, between January 2014 and June 2016, by the University of Brasília -(UnB) and the University of São Paulo (USP) in a partnership with the Brazilian -Ministry of Planning, Budget, and Management (MP). It was designed as an -integrated platform for collaborative software development \cite{bobr2003}, -including social networking, mailing lists, version control -system, and source code quality monitoring. To coordinate and develop this -project during 30 months, UnB was funded by a grant -of 2,619,965.00 BRL (about 750,000.00 USD in June 2016) -from the Federal Government. - +codebase development has stopped, leaving substantial technical +debt~\cite{refactoring}. The system was a modified version of an existing +FLOSS platform called OpenACS\footnote{\url{http://openacs.org}}, and the old +SPB Portal did not receive updates from OpenACS releases. In this scenario, +the portal maintenance has become increasingly difficult. +After collecting requirements from the Federal Government and society, a new +platform for the SPB Portal was developed, between January 2014 and June 2016, +by the University of Brasília (UnB) and the University of São Paulo (USP) in a +partnership with the Brazilian Ministry of Planning, Budget, and Management +(MP). It was designed as an integrated platform for collaborative software +development \cite{bobr2003}, including social networking, mailing lists, +version control system, and source code quality monitoring. To coordinate and +develop this project during 30 months, UnB was funded by a grant of +2,619,965.00 BRL (about 750,000.00 USD in June 2016) from the Federal +Government. The project was developed by a team of three professors, two masters students, -about fifty undergraduate students (not all of them at the same time, -since the team changed along the time), -two professional designers, and six senior developers from free software -communities. Professors and undergraduate students were from UnB and -master students were from USP. Regarding the designers and senior -developers, seven of eight were living outside Brasília, the UnB location. -Two of them were abroad at Dominican Republic and Canada. -In other words, we had a distributed team working in a -collaborative virtual environment. This diversity of actors and the -relationships between industry, academy, and government also made the project a -valued opportunity to explore the benefits and challenges of using -FLOSS~\cite{kon2011,deKoenigsberg2008, fagerholm2013, fagerholm2014} and +about fifty undergraduate students (not all of them at the same time, since the +team changed along the time), two professional designers, and six senior +developers from FLOSS communities. Professors and undergraduate students were +from UnB and master students were from USP. Regarding the designers and senior +developers, seven of eight were living outside Brasília, the UnB location. Two +of them were abroad at Dominican Republic and Canada. In other words, we had a +distributed team working in a collaborative virtual environment. This diversity +of actors and the relationships between industry, academy, and government also +made the project a valued opportunity to explore the benefits and challenges of +using FLOSS~\cite{kon2011,deKoenigsberg2008, fagerholm2013, fagerholm2014} and Agile~\cite{steghofer2016, harzl2017} practices for Software Engineering education. -All the code was developed as open source. The changes we needed in the -FLOSS tools were implemented by ourselves and -contributed back to their respective communities. Our -process was based on agile practices and FLOSS communities interaction. -We incrementally released five 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 in -September 2015. Finally, the last version was -released in June 2016. +All the code was developed as open source. The changes we needed in the FLOSS +tools were implemented by ourselves and contributed back to their respective +communities. Our process was based on agile practices and FLOSS communities +interaction. We incrementally released five 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 in September 2015. +Finally, the last version was released in June 2016. -In this paper, we present an overview of the new SPB Portal. -The paper shares 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 undergraduate students team and remote senior developers. Finally, 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. The paper shares +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 undergraduate students team and remote senior +developers. Finally, 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. -The remainder of this work is organized as follows. -Section \ref{sec:spb}... -Section \ref{sec:related} enumerates a number of related works on the... -Section \ref{sec:researchdesign} presents the research design... -Section \ref{sec:requirements} reports ... -Section \ref{sec:architecture} ... -Section \ref{sec:features} ... -Section \ref{sec:ux} ... -Section \ref{sec:process} ... -Section \ref{sec:contributions} ... -Section \ref{sec:lessons} ... -Finally, Sections \ref{sec:conclusion} concludes the paper highlighting its -main contributions and pointing paths to future works. +The remainder of this work is organized as follows. Section \ref{sec:spb} +discusses the concepts of Brazilian Public Software and Free Software. Section +\ref{sec:related} enumerates a number of related projects from other countries. +Section \ref{sec:researchdesign} presents the open questions these guided this +paper. Section \ref{sec:requirements} reports how the Brazilian Government +stakeholders collected the theoretical requirements as well as how we define +the technological requirements to release an initial version. Section +\ref{sec:architecture} shares our decisions about the systems that together +provided a wide subset of the requirements and our strategy to integrate them. +Section \ref{sec:features} describes the main features of the new SPB Portal. +Section \ref{sec:ux} reports the user experience evolution during the +integration of the selected FLOSS tools. Section \ref{sec:process} discusses +our strategies to support the different organizational cultures and to involve +undergraduate students as protagonists of the development process. Section +\ref{sec:contributions} summarizes the contributions to the FLOSS upstream +communities we interacted with. Finally, Sections \ref{sec:conclusion} +concludes the paper highlighting its main contributions, sharing our lessons +learned, and pointing paths to future works. -- libgit2 0.21.2