diff --git a/opensym2017/content/00-abstract.tex b/opensym2017/content/00-abstract.tex index 496b415..c9ba282 100644 --- a/opensym2017/content/00-abstract.tex +++ b/opensym2017/content/00-abstract.tex @@ -1,33 +1,31 @@ \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 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: trend towards -decentralization in decision-making, information and development sharing, and -continuous feedback. -% -In this context, we have designed a platform based on the integration and -evolution of existing FOSS 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, +Software (FOSS) solutions for the public administration. In the one hand, +Brazilian Public Softwares have some differences from FOSS 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 +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, -providing a nontrivial integration among them, as well as, have generated +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 out, we also discuss our work process, based on agile and free software -development practices, and the lessons learned in 3 years work on the SPB +development practices, and the lessons learned in 30 months work on the SPB project. -\end{abstract} -\category{H.5.m.}{Information Interfaces and Presentation - (e.g. HCI)}{Miscellaneous} +\end{abstract} + +\category{H.5.m.}{Information Interfaces and Presentation (e.g. HCI)} +{Miscellaneous} \keywords{\plainkeywords} diff --git a/opensym2017/content/01-introduction.tex b/opensym2017/content/01-introduction.tex index f0b6c1b..1399a1e 100644 --- a/opensym2017/content/01-introduction.tex +++ b/opensym2017/content/01-introduction.tex @@ -1,40 +1,35 @@ \section{Introduction} \label{sec:intro} -During the last few decades, the Brazilian Federal Government has -improved its software adoption and development processes. In 2003, the -recommendation to adopt Free/Open Source Software (FOSS) become a public -policy. In 2007, the Brazilian Government released a portal called -Brazilian Public Software (\textit{Software Público Brasileiro} -- SPB, -in Portuguese), with the goal of sharing FOSS projects developed by, or -for, the Brazilian Government. - -The Brazilian legal instrument on software contracting -(\textit{Instrução Normativa} 04/2012) mandates that public management -must consult the SPB Portal to adopt a software solution. The -acquisition of a proprietary solution must be explicitly justified by -demonstrating that there is no suitable option in the SPB Portal. - -Since 2009, however, the SPB Portal was having several technical issues. -The original codebase was not being developed anymore, and there was a -large amount of technical debt to overcome. The system was a modified -version of an existing FOSS platform that was not being developed -anymore, and the portal maintenance was becoming harder and harder. - -From January 2014 to June 2016, a new platform for the SPB Portal was -designed and developed by the University of Brasília (UnB) and the -University of São Paulo (USP) in a partnership with the Brazilian -Ministry of Budget, Planning, and Management(MP). This new Portal was -designed as an integrated platform for collaborative software -development. It includes functionality for social networking, mailing -lists, version control system, and source code quality monitoring. In -this paper, we present an overview of this new generation of the SPB -Portal. - -The project was developed by a team of 3 professors, 6 professionals, 2 -masters students, and approximately 40 undergraduate students (not all of -them at the same time, though -- graduations and other events triggered -changes in the team). +During the last few decades, the Brazilian Federal Government has improved its +software adoption and development processes. In 2003, the recommendation to +adopt Free and Open Source Software (FOSS) 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 Government. + +The Brazilian legal instrument on software contracting (known as IN 04/2012) +mandates that public management must consult the SPB Portal to adopt a software +solution. In short, the acquisition of a proprietary solution must be +explicitly justified by demonstrating that there is no suitable option in the +SPB Portal. However, since 2009, the SPB Portal was having several technical +issues. The original codebase was not being developed anymore, and there was a +large amount of technical debt to overcome. The system was a modified version +of an existing FOSS platform (called +OpenACS\footnote{\url{http://openacs.org}}) and the old SPB portal was not +being updated anymore with its official releases. In this scenario, the portal +maintenance was becoming harder and harder. + +Afterward some events and meetings to collect all requirements from the federal +government and society, a new platform for the SPB Portal was developed, among +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 +Budget, Planning, and Management (MP). It was designed it as an integrated +platform for collaborative software development. It includes functionality for +social networking, mailing lists, version control system, and source code +quality monitoring. To coordinate and develop this project during 30 months, +UnB received from the Brazilian Federal Government a total of 2,619,965.00 BRL +(about 750,000.00 USD in June 2016). \begin{figure*}[hbt] \centering @@ -43,8 +38,36 @@ changes in the team). \label{fig:spb} \end{figure*} -Figure \ref{fig:spb} shows the home page of this integrated platform. -The development tried to be as faithful as possible to FOSS development. -All development was done in the open, and the changes we needed in the -tools were contributed back to their communities. +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 +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 +Paulo/Brazil, Ribeirão Preto/Brazil, Salvador/Brazil, Punta Cana/Dominican +Republic, and Montreal/Canada. In other words, we had a team working in +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 communities. Our process was based on agile +practices and FOSS 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 begin of the project. We migrated and +turned off the old portal 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. +Alongside, this experience report shares our methodology and process to develop +this project working with the Brazilian federal government to comply with its +requirements at the same time to be as faithful as possible to FOSS +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 the Brazilian government applying empirical software development +methods. This case can help other projects overcome a lot of software +engineering challenges in the future, as well as, how the universities take +advances to improve the real-world experiences of their student with these +kinds of projects. diff --git a/opensym2017/content/09-lessons.tex b/opensym2017/content/09-lessons.tex index 1e2eec0..1a6f557 100644 --- a/opensym2017/content/09-lessons.tex +++ b/opensym2017/content/09-lessons.tex @@ -1,4 +1,4 @@ -\section{Lessons Learned} +\section{Lessons Learned and Conclusion} \label{sec:lessons} The multidisciplinary composition of the development teams, mainly software @@ -75,3 +75,38 @@ practice of software engineering. The members of the teams got opportunities to work in public, private, national and international organizations, in addition to those students they preferred entrepreneurship, opening their own companies. +%=========== +% Conclusion +%=========== + +The portal is available at \url{softwarepublico.gov.br}. All +documentation, including detailed architecture and operation manuals are +also available\footnote{\url{https://softwarepublico.gov.br/doc/} +(in Portuguese only at the moment)}). +% +All the integrated tools are FOSS and our contributions were published +in open repositories, available on the SPB Portal itself. We also +contributed these features back to the respective communities: that +benefits those communities, as well as us since we can share future +development and maintenance effort with other organizations that +participate in their projects. + + +%* utilização do projeto para formação de recursos humanos (alunos) + +%* dados da verificação dos repositório para a análise da qualidade dos código via Mezuro e CodeClimate + +%* o que achamos que irá acontecer com o SPB no futuro breve (acabar) + +%* 69 projetos marcados como SPB, de 81 no total na plataforma. + +%* 47\% é desenvolvido em PHP. + +% 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). + +% 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}. + +% 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. + +%* Debater economia de recursos em orgão públicos + diff --git a/opensym2017/content/10-finals.tex b/opensym2017/content/10-finals.tex deleted file mode 100644 index 523dbf3..0000000 --- a/opensym2017/content/10-finals.tex +++ /dev/null @@ -1,32 +0,0 @@ -\section{Final remarks} - -The portal is available at \url{softwarepublico.gov.br}. All -documentation, including detailed architecture and operation manuals are -also available\footnote{\url{https://softwarepublico.gov.br/doc/} -(in Portuguese only at the moment)}). -% -All the integrated tools are FOSS and our contributions were published -in open repositories, available on the SPB Portal itself. We also -contributed these features back to the respective communities: that -benefits those communities, as well as us since we can share future -development and maintenance effort with other organizations that -participate in their projects. - - -%* utilização do projeto para formação de recursos humanos (alunos) - -%* dados da verificação dos repositório para a análise da qualidade dos código via Mezuro e CodeClimate - -%* o que achamos que irá acontecer com o SPB no futuro breve (acabar) - -%* 69 projetos marcados como SPB, de 81 no total na plataforma. - -%* 47\% é desenvolvido em PHP. - -% 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). - -% 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}. - -% 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. - -%* Debater economia de recursos em orgão públicos diff --git a/opensym2017/spb.tex b/opensym2017/spb.tex index 75e8826..de2a9e9 100644 --- a/opensym2017/spb.tex +++ b/opensym2017/spb.tex @@ -159,7 +159,6 @@ \input{content/07-process} \input{content/08-contributions} \input{content/09-lessons} -\input{content/10-finals} %------------------------------------------------------------------------------ \bibliographystyle{SIGCHI-Reference-Format} -- libgit2 0.21.2