Commit 85235f41a9482f0f563b2743d5bcb5c3b3ab1c55
1 parent
a0801133
Exists in
master
and in
3 other branches
[opensym] general review - part 1
Showing
8 changed files
with
237 additions
and
225 deletions
Show diff stats
opensym2017/content/00-abstract.tex
1 | 1 | \begin{abstract} |
2 | 2 | |
3 | 3 | The Brazilian Public Software (SPB) is a program promoted by the Brazilian |
4 | -Federal Government to foster sharing and collaboration on FLOSS solutions for | |
5 | -the public administration. In this case, a public software is considered a | |
6 | -public good and the Federal Government assumes some responsibilities related to | |
7 | -its use. Once its devolpment principles is the same of the FLOSS projects, we | |
8 | -have designed the SPB Portal, a platform based on the integration and evolution | |
9 | -of existing FLOSS tools. It provides several modern features for software | |
10 | -collaborative development, helping the Brazilian public administration in | |
11 | -sharing its solutions. In this paper, we present this integrated software | |
12 | -development platform that was developed for the SPB program by a heterogeneous | |
13 | -team composed by professors, master students, undergraduate students, and | |
14 | -professionals from FLOSS communities. The development of this platform used | |
15 | -several FLOSS applications, providing a non-trivial integration among them. | |
16 | -This effort has also produced several new features that were contributed back | |
17 | -to these FLOSS applications. In this experience report, alongside the platform | |
18 | -architecture, the features, and the user experience challenges, we also discuss | |
19 | -our work process, based on agile and free software development practices, and | |
20 | -the lessons learned in 30 months of work on the SPB project. | |
4 | +Federal Government to foster sharing and collaboration on Free/Libre/Open | |
5 | +Source Software (FLOSS) solutions for the public administration. In this | |
6 | +context, a public software is considered a public good and the Federal | |
7 | +Government assumes some responsibilities related to its use. Once its | |
8 | +devolpment principles is the same of the FLOSS projects, we have designed the | |
9 | +SPB Portal, a platform based on the integration and evolution of existing FLOSS | |
10 | +tools. It provides several modern features for software collaborative | |
11 | +development, helping the Brazilian public administration in sharing its | |
12 | +solutions. In this paper, we present this integrated software development | |
13 | +platform that was developed for the SPB program by a heterogeneous team | |
14 | +composed by professors, master students and undergraduate students, as well as | |
15 | +by professionals from FLOSS communities. The development of this platform used | |
16 | +several FLOSS projects, providing a non-trivial integration among them. This | |
17 | +effort has also produced several new features that were contributed back to | |
18 | +these projects. Alongside the architectural challenges, we also discuss in this | |
19 | +paper our work process, based on agile and free software development practices, | |
20 | +and the lessons learned during 30 months of work on the SPB project. | |
21 | 21 | |
22 | 22 | \end{abstract} |
23 | 23 | ... | ... |
opensym2017/content/01-introduction.tex
... | ... | @@ -6,9 +6,7 @@ program (eGov) aiming at democratizing information access and improving the |
6 | 6 | public provision quality of service and information. |
7 | 7 | % |
8 | 8 | In 2003, the Federal Government created a committee for implementation of |
9 | -Free/Libre/Open Source Software (FLOSS\footnote{In this work, the acronym | |
10 | -``FLOSS'' is used as a representative for ``Free Software'', ``Open Source | |
11 | -Software'' (OSS), and``Free/Open Source Software'' (FOSS).}) and thereafter a | |
9 | +Free/Libre/Open Source Software (FLOSS)\footnote{Free Software, Open Source, or Free/Open Source Software.} and thereafter a | |
12 | 10 | circular-letter was sent to all Ministries in which the recommendation to adopt |
13 | 11 | FLOSS became a public policy. |
14 | 12 | % |
... | ... | @@ -36,35 +34,33 @@ contracts, besides unjustifiable expending of taxpayers money. |
36 | 34 | For instance, since 2009 the SPB Portal has had several technical issues. The |
37 | 35 | original codebase development has stopped. The system was a modified version of |
38 | 36 | an existing FLOSS platform called OpenACS\footnote{\url{http://openacs.org}}, |
39 | -and the old SPB Portal did not receive updates from OpenACS releases. In this | |
37 | +and the old SPB Portal did not receive updates from OpenACS releases. In this | |
40 | 38 | scenario, the portal maintenance has become increasingly difficult. |
41 | 39 | |
42 | -After collecting requirements from the Federal Government and society, a new | |
43 | -platform for the SPB Portal was developed, between January 2014 and June 2016, | |
44 | -by the University of Brasília (UnB) and the University of São Paulo (USP) in a | |
40 | +Approximately five years later from the first problems, a new platform for the | |
41 | +SPB Portal was planned and funded. Between January 2014 and June 2016, the | |
42 | +University of Brasília (UnB) and the University of São Paulo (USP) in a | |
45 | 43 | partnership with the Brazilian Ministry of Planning, Budget, and Management |
46 | -(MP). It was designed as an integrated platform for collaborative software | |
47 | -development \cite{bobr2003}, including social networking, mailing lists, | |
48 | -version control system, and source code quality monitoring. To coordinate and | |
49 | -develop this project during 30 months, UnB was funded by a grant of | |
50 | -2,619,965.00 BRL (about 750,000.00 USD in June 2016) from the Federal | |
51 | -Government. | |
44 | +(MP) designed an integrated platform for collaborative software development | |
45 | +\cite{bobr2003}, including social networking, mailing lists, version control | |
46 | +system, and source code quality monitoring. To coordinate and develop this | |
47 | +project during 30 months, UnB was funded by a grant of 2,619,965.00 BRL (about | |
48 | +750,000.00 USD in June 2016) from the Federal Government. | |
52 | 49 | |
53 | 50 | The project was developed by a team of three professors, two masters students, |
54 | 51 | about fifty undergraduate students (not all of them at the same time, since the |
55 | 52 | team changed along the time), two professional designers, and six senior |
56 | 53 | developers from FLOSS communities. Professors and undergraduate students were |
57 | 54 | from UnB and master students were from USP. Regarding the designers and senior |
58 | -developers, seven of eight were living outside Brasília, the UnB location. Two | |
59 | -of them were abroad at Dominican Republic and Canada. In other words, we had a | |
60 | -distributed team working in a collaborative virtual environment. This diversity | |
61 | -of actors and the relationships between industry, academy, and government also | |
62 | -made the project a valued opportunity to explore the benefits and challenges of | |
63 | -using FLOSS~\cite{kon2011,deKoenigsberg2008, fagerholm2013, fagerholm2014} and | |
64 | -Agile~\cite{steghofer2016, harzl2017} practices for Software Engineering | |
65 | -education. | |
55 | +developers, seven of them were living outside Brasília, the UnB location. In | |
56 | +other words, we had a distributed team working in a collaborative virtual | |
57 | +environment. This diversity of actors and the relationships between industry, | |
58 | +academy, and government also made the project a valued opportunity to explore | |
59 | +the benefits and challenges of using FLOSS~\cite{kon2011,deKoenigsberg2008, | |
60 | +fagerholm2013, fagerholm2014} and Agile~\cite{steghofer2016, harzl2017} | |
61 | +practices for Software Engineering education. | |
66 | 62 | |
67 | -All the code was developed as open source. The changes we needed in the FLOSS | |
63 | +All the code was developed as free software. The changes we needed in the FLOSS | |
68 | 64 | tools were implemented by ourselves and contributed back to their respective |
69 | 65 | communities. Our process was based on agile practices and FLOSS communities |
70 | 66 | interaction. We incrementally released five versions of the new SPB Portal. |
... | ... | @@ -72,13 +68,13 @@ The first release (beta) was in September 2014, only 9 months from the |
72 | 68 | beginning of the project. The old portal was shut down in September 2015. |
73 | 69 | Finally, the last version was released in June 2016. |
74 | 70 | |
75 | -In this paper, we present an overview of the new SPB Portal. The paper shares | |
71 | +In this paper, we present an overview of the new SPB Portal. We share | |
76 | 72 | the methodology employed to develop this project. This methodology has the |
77 | 73 | goals of satisfying Government requirements and adhering as much as possible to |
78 | 74 | FLOSS and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss |
79 | 75 | lessons learned in providing a distributed and collaborative virtual |
80 | 76 | environment involving a large undergraduate students team and remote senior |
81 | -developers. Finally, we released an innovative platform for helping the | |
77 | +developers. In short, we released an innovative platform for helping the | |
82 | 78 | Brazilian government to apply empirical software development methods. This case |
83 | 79 | can help other projects to overcome similar software engineering challenges in |
84 | 80 | the future, as well as to illustrate how universities can improve the | ... | ... |
opensym2017/content/02-spb.tex
... | ... | @@ -24,8 +24,8 @@ complies with the terms conferred by a contract related to certain software. |
24 | 24 | This contract is called ``license''. A software license determines a list of |
25 | 25 | rights that are given to, and duties that are imposed on a user of the |
26 | 26 | software. In particular, what differentiates FLOSS from proprietary software is |
27 | -just the way they are licensed \cite{kon2011}. The FLOSS licenses guarantee | |
28 | -the right to execute, study, adapt, and improve the software. Example of common | |
27 | +just the way they are licensed \cite{kon2011}. The FLOSS licenses guarantee the | |
28 | +right to execute, study, adapt, and improve the software. Example of common | |
29 | 29 | FLOSS licenses are the \textit{GPL (GNU General Public License)}, the Apache |
30 | 30 | license, the MIT license, and the BSD license. |
31 | 31 | |
... | ... | @@ -40,22 +40,21 @@ mailing lists, discussion forums, issue trackers, version control systems, and |
40 | 40 | social networking environments. |
41 | 41 | |
42 | 42 | Initially, the purpose of the portal was only to share the software developed |
43 | -in the Brazilian government, to reduce the costs of hiring software. However, | |
44 | -it was observed that when softwares were released, their communities were | |
45 | -formed around those software with several people collaborating and sharing the | |
46 | -results obtained through the use of those solutions, as commonly occurs in OSS | |
43 | +in the Brazilian government to reduce the costs of hiring software. However, it | |
44 | +was observed that when softwares were released, their communities were formed | |
45 | +around those software with several people collaborating and sharing the results | |
46 | +obtained through the use of those solutions, as commonly occurs in FLOSS | |
47 | 47 | \cite{ducheneaut2005}. In this way, some software development cooperatives and |
48 | 48 | private companies have shown an interest in making their software available on |
49 | -the SPB platform. | |
49 | +the SPB Portal. | |
50 | 50 | |
51 | -The concept of Brazilian Public Software goes beyond FLOSS \cite{freitas2008}. | |
52 | -In additionto being licensed under a FLOSS license, a SPB needs to have | |
53 | -explicit guarantees that it is a public good, and that project must be | |
54 | -available on the SPB portal. Being a true public good assumes requirements that | |
55 | -can not be met solely by means of FLOSS licensing. For example, there must be a | |
56 | -relaxed trademark usage policy by the original vendor that does not stop | |
57 | -eventual competitors from advertising services for that same software. | |
58 | -Inclusion in the SPB Portal also has extra requirements, such as having a | |
59 | -public version control system, installation manual, and hardware requirements | |
60 | -specification. | |
51 | +The concept of SPB goes beyond FLOSS \cite{freitas2008}. In addition to being | |
52 | +licensed under a FLOSS license, a SPB needs to have explicit guarantees that it | |
53 | +is a public good, and that project must be available on the SPB portal. Being a | |
54 | +true public good assumes requirements that can not be met solely by means of | |
55 | +FLOSS licensing. For example, there must be a relaxed trademark usage policy by | |
56 | +the original vendor that does not stop eventual competitors from advertising | |
57 | +services for that same software. Inclusion in the SPB Portal also has extra | |
58 | +requirements, such as having a public version control system, installation | |
59 | +manual, and hardware requirements specification. | |
61 | 60 | ... | ... |
opensym2017/content/03-relatedworks.tex
1 | 1 | \section{Related Projects} |
2 | 2 | \label{sec:related} |
3 | 3 | |
4 | -The new SPB platform is a fully integrated environment, | |
5 | -very advanced in comparison with related initiatives. | |
6 | -% | |
7 | -For instance, the USA government has a platform designed to improve access to | |
8 | -federal government software\footnote{\url{https://code.gov}}. | |
9 | -Code.gov is an interface to organize USA government projects, | |
10 | -making it easy for users and developers to obtain information and to access their | |
11 | -source code repositories at GitHub. However, it does not provide social networking | |
12 | -and CMS features, as well as, other communication resources. | |
4 | +The new SPB platform is a fully integrated environment, very advanced in | |
5 | +comparison with related initiatives. For instance, the USA government has a | |
6 | +platform designed to improve access to federal government software, called | |
7 | +Code.gov\footnote{\url{https://code.gov}}. It is an interface to organize USA | |
8 | +government projects, making it easy for users and developers to obtain | |
9 | +information and to access their source code repositories at GitHub. However, | |
10 | +it does not provide social networking and CMS (Content Manager System) | |
11 | +features, as well as, other communication resources. | |
13 | 12 | |
14 | -The European Commission supports the Open Source Observatory\footnote{\url{https://joinup.ec.europa.eu/community/osor}} (OSOR) that is a | |
15 | -community hosted in the JoinUp platform. | |
16 | -OSOR intends to exchange information, experiences, and best practices around the | |
17 | -use of FLOSS in the public administration. It supports the discovering of FLOSS projects made | |
18 | -available by public agencies, providing information about these projects, such | |
19 | -as news, events, studies, and solutions. | |
20 | -It also offers discussion forums and community mailing lists. But it | |
21 | -does not have an integrated source code repository manager, so for each | |
22 | -project there is a link to its own external repository. | |
23 | -% | |
24 | -Moreover, in 2007 the European Comission published a study examining the impact | |
25 | -that the development and distribution of FLOSS by public agencies have on eGovernment | |
26 | -services and the economy~\cite{ghosh2004}. And, from 2007 to 2011, there | |
27 | -was the QualiPSo project, whose objective was to provide FLOSS | |
28 | -users, developers, and consumers with resources and expertise on FLOSS quality. | |
29 | -The QualiPSo project also had planned to | |
30 | -develop a platform called QualiPSo Factory, but it was not fully completed. | |
13 | +The European Commission (EC) assists the Open Source Observatory | |
14 | +(OSOR)\footnote{\url{https://joinup.ec.europa.eu/community/osor}} that intends | |
15 | +to exchange information, experiences, and best practices around the use of | |
16 | +FLOSS in the public administration. It supports the discovering of FLOSS | |
17 | +projects made available by public agencies, providing information about these | |
18 | +projects, such as news, events, studies, and solutions. It also offers | |
19 | +discussion forums and community mailing lists. But it does not have an | |
20 | +integrated source code repository manager, so for each project there is a link | |
21 | +to its own external repository. Previously, from 2007 to 2011, the EC promoted | |
22 | +the QualiPSo project that aimed to support FLOSS users, developers, and | |
23 | +consumers with resources and expertise on FLOSS quality. The QualiPSo project | |
24 | +also had planned to develop a platform called QualiPSo Factory, but it was not | |
25 | +fully completed. | |
31 | 26 | |
32 | -Finally, in Latin American there is an initiative based on the SPB project | |
33 | -called ``Software Público | |
34 | -Regional''\footnote{\url{http://softwarepublicoregionalbeta.net}}. | |
35 | -It provides a customized Gitlab instance to share | |
36 | -source code and documentation of projects developed by the involved countries. | |
37 | -% | |
38 | -Like Brazil, Chile has its own portal, called ``Repositorio Software | |
39 | -Público''\footnote{\url{http://softwarepublico.gob.cl}}. In the communities of the portal, | |
40 | -users can create content such as news, documents, and wiki pages, but source code | |
41 | -repositories are available at the Bitbucket | |
27 | +In Latin American there is an initiative called ``Software Público | |
28 | +Regional''\footnote{\url{http://softwarepublicoregionalbeta.net}} that provides | |
29 | +just a customized Gitlab instance to share source code and documentation of | |
30 | +projects developed by the involved countries. Moreover, Chile has also its own | |
31 | +portal named ``Repositório Software | |
32 | +Público''\footnote{\url{http://softwarepublico.gob.cl}}. In the communities of | |
33 | +the portal, users can create content such as news, documents, and wiki pages, | |
34 | +but source code repositories are available at the Bitbucket | |
42 | 35 | platform\footnote{\url{https://bitbucket.org/softwarepublico}}. |
43 | 36 | |
44 | 37 | The Brazilian government needed to evolve the SPB platform that existed since |
45 | 38 | 2007. When we started this project, the SPB Portal had about 200 thousand |
46 | -registered users. We could not just do something like contacting these users and asking | |
47 | -them to register an account at Github. Moreover, after the Edward | |
48 | -Snowden's case, the Brazilian government issued a decree | |
49 | -(8.135/2013) requiring public | |
50 | -agencies to host their information systems by themselves, | |
51 | -avoiding the usage of private platforms, especially the ones provided by foreign | |
52 | -companies. Therefore, we needed to develop our own solution to cover all the | |
53 | -requirements, producing a complete governmental integrated platform for | |
54 | -collaborative software development. | |
39 | +registered users. We could not just do something like contacting these users | |
40 | +and asking them to register an account at Github. Moreover, after the Edward | |
41 | +Snowden's case, the Brazilian government issued a decree (8.135/2013) requiring | |
42 | +public agencies to host their information systems by themselves, avoiding the | |
43 | +usage of private platforms, especially the ones provided by foreign companies. | |
44 | +Therefore, we needed to develop our own solution to cover all the requirements, | |
45 | +producing a complete governmental integrated platform for collaborative | |
46 | +software development. | ... | ... |
opensym2017/content/04-researchdesign.tex
1 | 1 | \section{Open Questions} |
2 | 2 | \label{sec:researchdesign} |
3 | 3 | |
4 | -In this paper, we share our experience in designing and developing the new | |
5 | -SPB Portal by reporting the technical efforts carried out, our | |
6 | -empirical work process, and the lessons learned. The new SPB Portal project | |
7 | -presented three main challenges, related to the open questions described below. | |
4 | +In this paper, we share our experience in designing and developing the new SPB | |
5 | +Portal by reporting the technical efforts carried out, our empirical work | |
6 | +process, and the lessons learned. The new SPB Portal project presented three | |
7 | +main challenges, related to the open questions described below. | |
8 | 8 | |
9 | 9 | \textbf{Q1:} \textit{Which strategy could be used to integrate several existing |
10 | 10 | FLOSS tools to promote a collaborative software development?} |
... | ... | @@ -14,26 +14,27 @@ Federal Government, we selected some FLOSS systems to compose our solution, |
14 | 14 | engineering a nontrivial integration among them. We looked for the systems set |
15 | 15 | realizing the largest possible subset of the requirements list. However, we |
16 | 16 | were fully aware that we would need to improve those systems in order to |
17 | -satisfy the remaining requirements. We were also convinced that it would be impossible to satisfy | |
18 | -all of those requirements with a single tool. | |
17 | +satisfy the remaining requirements. We were also convinced that it would be | |
18 | +impossible to satisfy all of those requirements with a single tool. | |
19 | 19 | |
20 | -\textbf{Q2:} \textit{How to involve students in real-world projects interacting with | |
21 | -real customers?} | |
20 | +\textbf{Q2:} \textit{How to involve students in real-world projects interacting | |
21 | +with real customers?} | |
22 | 22 | % |
23 | -Our team was mainly composed of software engineering undergraduate | |
24 | -students, who had the opportunity to interact with the UnB managers, | |
25 | -senior developers, designers, and even with technicians and | |
26 | -managers from the Brazilian Government. | |
27 | -For the majority of the students, this was a first professional experience. | |
28 | -Even though, our development process defined a central role on students participation. | |
23 | +Our team was mainly composed of software engineering undergraduate students, | |
24 | +who had the opportunity to interact with the UnB managers, senior developers, | |
25 | +designers, and even with technicians and managers from the Brazilian | |
26 | +Government. For the majority of the students, this was a first professional | |
27 | +experience. Even though, our development process defined a central role on | |
28 | +students participation. | |
29 | 29 | |
30 | -\textbf{Q3:} \textit{How to introduce collaborative and agile | |
31 | -practices typical in FLOSS environments in the governmental development process?} | |
30 | +\textbf{Q3:} \textit{How to introduce collaborative and agile practices typical | |
31 | +in FLOSS environments in the governmental development process?} | |
32 | 32 | % |
33 | -The software development on Brazilian government is based on a very traditional way, | |
34 | -frequently focusing documentation deliveries. We had to convince | |
35 | -them to accept the idea of open scope and empirical development. They had | |
36 | -certain expectations about the project development according to RUP | |
37 | -(Rational Unified Process) and PMBOK (Project Management Body of Knowledge) | |
38 | -approaches, which mismatched our work style based on agile and FLOSS practices. So we | |
39 | -created strategies to conciliate these different organizational cultures within the project. | |
33 | +The software development on Brazilian government is based on a very traditional | |
34 | +way, frequently focusing documentation deliveries. We had to convince them to | |
35 | +accept the idea of open scope and empirical development. They had certain | |
36 | +expectations about the project development according to RUP (Rational Unified | |
37 | +Process) and PMBOK (Project Management Body of Knowledge) approaches, which | |
38 | +mismatched our work style based on agile and FLOSS practices. So we created | |
39 | +strategies to conciliate these different organizational cultures within the | |
40 | +project. | ... | ... |
opensym2017/content/05-requirements.tex
... | ... | @@ -50,7 +50,7 @@ replace the old SPB portal. For that, the first version should have |
50 | 50 | features such as: |
51 | 51 | (i) An organized public software catalog; |
52 | 52 | (ii) Social network environment (profiles for users, software pages, and community pages); |
53 | -(iii) Content Management Systems (CMS) features; | |
53 | +(iii) CMS features; | |
54 | 54 | (iv) Web-based Git repository manager with wiki and issue tracking features; |
55 | 55 | (v) Mailing lists and discussion forums; |
56 | 56 | ... | ... |
opensym2017/content/06-architecture.tex
1 | 1 | \section{Architecture} |
2 | 2 | \label{sec:architecture} |
3 | 3 | |
4 | -From the architecture point of view, two main requirements was included on the new platform by Brazilian Federal Government request. They are: | |
4 | +From the architecture point of view, two main requirements was included on the | |
5 | +new platform by Brazilian Federal Government request. They are: | |
5 | 6 | |
6 | 7 | \begin{enumerate} |
7 | - \item \textit{Integrating existing FLOSS systems} with minimal differences from | |
8 | - their original versions; | |
8 | + \item \textit{Integrating existing FLOSS systems} with minimal differences | |
9 | + from their original versions; | |
9 | 10 | \item \textit{Providing consistent user interface} across different |
10 | 11 | systems as well as centralized authentication. |
11 | 12 | \end{enumerate} |
12 | 13 | |
13 | -The adoption of existing FLOSS systems and the minimization of their local changes had the purpose to able the platform's softwares being easily upgrade to newer versions of their original software. With this facility, the platform take advantages from the maintenance and improvements made by communities. The development of a consistent user interface aims to provide to platform users a smooth transition between differents systems . Without it, the necessity of adaptation and learning for each tool could get users confused and fatigued | |
14 | -% | |
15 | -For the first requirement, we have identified four main systems which would have specialized teams for work in the integration process. | |
16 | -Team members have learned how to develop for their assigned systems and to contribute to the | |
14 | +The adoption of existing FLOSS systems and the minimization of their local | |
15 | +changes had the purpose to able the platform's softwares being easily upgrade | |
16 | +to newer versions of their original software. With this facility, the platform | |
17 | +take advantages from the maintenance and improvements made by communities. The | |
18 | +development of a consistent user interface aims to provide to platform users a | |
19 | +smooth transition between differents systems . Without it, the necessity of | |
20 | +adaptation and learning for each tool could get users confused and fatigued. | |
21 | + % | |
22 | +For the first requirement, we have identified four main systems which would | |
23 | +have specialized teams for work in the integration process. Team members have | |
24 | +learned how to develop for their assigned systems and to contribute to the | |
17 | 25 | original communities to align the used version with the original one. |
18 | 26 | % |
19 | 27 | In the end of the project, the SPB portal has combined more than ten |
... | ... | @@ -21,70 +29,87 @@ systems, such as Colab, Noosfero, Gitlab, and Mezuro. |
21 | 29 | |
22 | 30 | Colab\footnote{\url{https://github.com/colab}} is a systems integration |
23 | 31 | platform for web applications. One of its goals is allowing different |
24 | -applications to be combined in such a way that an user does not notice | |
25 | -the change between applications. For that, Colab provides facilities | |
26 | -for: (i) Centralized authentication, (ii) Visual consistency, (iii) Relaying of events between applications, and (iv) Integrated search engine. | |
32 | +applications to be combined in such a way that an user does not notice the | |
33 | +change between applications. For that, Colab provides facilities for: (i) | |
34 | +Centralized authentication, (ii) Visual consistency, (iii) Relaying of events | |
35 | +between applications, and (iv) Integrated search engine. | |
27 | 36 | % |
28 | 37 | Colab implements this integration by working as a reverse proxy for the |
29 | -integration applications, that is, all external requests pass through | |
30 | -Colab before reaching them. | |
38 | +integration applications, that is, all external requests pass through Colab | |
39 | +before reaching them. | |
31 | 40 | % |
32 | -Initially, Colab had support for a small set of applications (Trac, GNU Mailman, and Apache Lucene) made in hard-coded. Our team have helped Colab upstream to redesign the whole architecture, enabling the development of plugins to integrate new tools. We also added a feature that allowed Colab to run asynchronous tasks, which was a major improvement for us since we were developing a complex system. We have also migrated Django(web framework used by Colab) to the latest version and worked on RevProxy (the more important dependency of Colab) to put it in a good shape, fixing many bugs. | |
33 | - | |
34 | - | |
35 | -Noosfero\footnote{\url{http://noosfero.org}} is a software for building | |
36 | -social and collaboration networks. Besides the classical social | |
37 | -networking features, it also provides publication features such as blogs | |
38 | -and a general-purpose CMS (Content Management System). Most of the user | |
39 | -interactions with SPB is through Noosfero: user registration, project | |
40 | -home pages and documentation, and contact forms. | |
41 | +Initially, Colab had support for a small set of applications (Trac, GNU | |
42 | +Mailman, and Apache Lucene) made in hard-coded. Our team have helped Colab | |
43 | +upstream to redesign the whole architecture, enabling the development of | |
44 | +plugins to integrate new tools. We also added a feature that allowed Colab to | |
45 | +run asynchronous tasks, which was a major improvement for us since we were | |
46 | +developing a complex system. We have also migrated Django(web framework used by | |
47 | +Colab) to the latest version and worked on RevProxy (the more important | |
48 | +dependency of Colab) to put it in a good shape, fixing many bugs. | |
49 | + | |
50 | + | |
51 | +Noosfero\footnote{\url{http://noosfero.org}} is a software for building social | |
52 | +and collaboration networks. Besides the classical social networking features, | |
53 | +it also provides publication features such as blogs and a general-purpose CMS. | |
54 | +Most of the user interactions with SPB is through | |
55 | +Noosfero: user registration, project home pages and documentation, and contact | |
56 | +forms. | |
41 | 57 | % |
42 | -Noosfero was the tool that contemplated several functional requirements, therefore we have made a large number of contributions to upstream. We have helped it to migrate to the latest Rails version (web framework used by Noosfero), to enable the federation implementation (federation with other social networks) and to decouple the interface and the back-end. | |
58 | +Noosfero was the tool that contemplated several functional requirements, | |
59 | +therefore we have made a large number of contributions to upstream. We have | |
60 | +also helped it to migrate to the latest Rails version (web framework used by | |
61 | +Noosfero), to enable the federation implementation (federation with other | |
62 | +social networks) and to decouple the interface and the back-end. | |
43 | 63 | |
44 | 64 | |
45 | -Gitlab\footnote{\url{http://gitlab.com}} is a web-based Git repository | |
46 | -manager with wiki pages and issue tracking features. It is a FLOSS | |
47 | -platform and focuses on delivering a holistic solution that will see | |
48 | -developers from idea to production seamlessly and on a single platform. | |
65 | +Gitlab\footnote{\url{http://gitlab.com}} is a web-based Git repository manager | |
66 | +with wiki pages and issue tracking features. It is a FLOSS platform and focuses | |
67 | +on delivering a holistic solution that will see developers from idea to | |
68 | +production seamlessly and on a single platform. | |
49 | 69 | % |
50 | -Gitlab has several unique features, such as built-in continuous | |
51 | -integration and continuous deployment, flexible permissions, tracking of | |
52 | -Work-in-Progress work, moving issues between projects, group-level | |
53 | -milestones, creating new branches from issues, issues board, and time | |
54 | -tracking. | |
70 | +Gitlab has several unique features, such as built-in continuous integration and | |
71 | +continuous deployment, flexible permissions, tracking of Work-in-Progress work, | |
72 | +moving issues between projects, group-level milestones, creating new branches | |
73 | +from issues, issues board, and time tracking. | |
55 | 74 | % |
56 | -We have contributed to Gitlab upstream with some improvements related to configuration files and with the development of a new plugin that enables user authentication in Gitlab through the REMOTE\_USER HTTP header. This plugin was needed because Colab uses this mechanism to manage the authentication. | |
75 | +We have contributed to Gitlab upstream with some improvements related to | |
76 | +configuration files and with the development of a new plugin that enables user | |
77 | +authentication in Gitlab through the REMOTE\_USER HTTP header. This plugin was | |
78 | +needed because Colab uses this mechanism to manage the authentication. | |
57 | 79 | |
58 | 80 | |
59 | -Mezuro\footnote{\url{http://mezuro.org/}} is a platform to | |
60 | -collect source code metrics to monitor the internal quality of software written | |
61 | -in C, C++, Java, Python, Ruby, and PHP. | |
81 | +Mezuro\footnote{\url{http://mezuro.org/}} is a platform to collect source code | |
82 | +metrics to monitor the internal quality of software written in C, C++, Java, | |
83 | +Python, Ruby, and PHP. | |
62 | 84 | % |
63 | -In general, source code metrics tools also do not present a friendly way | |
64 | -to interpret its results and, even more, do not follow a standardization | |
65 | -between them. Mezuro collects and presents these results to the end | |
66 | -user, specially, by analyzing source code metric history during its life | |
67 | -cycle. | |
85 | +In general, source code metrics tools also do not present a friendly way to | |
86 | +interpret its results and, even more, do not follow a standardization between | |
87 | +them. Mezuro collects and presents these results to the end user, specially, by | |
88 | +analyzing source code metric history during its life cycle. | |
68 | 89 | % |
69 | -The Mezuro platform provides a single interface grouping available | |
70 | -tools, allows selection and composition of metrics in a flexible manner, | |
71 | -stores the metrics evolution history, presents results in a friendly | |
72 | -way, as well as, allows users to customize the given interpretation | |
73 | -accordingly to their own context. | |
90 | +The Mezuro platform provides a single interface grouping available tools, | |
91 | +allows selection and composition of metrics in a flexible manner, stores the | |
92 | +metrics evolution history, presents results in a friendly way, as well as, | |
93 | +allows users to customize the given interpretation accordingly to their own | |
94 | +context. | |
74 | 95 | % |
75 | -During the project, we helped to modularize the Mezuro project in several independent services to minimize the amount of code to maintain it, helping to test it and grant its code quality. Currently, its computation and visualization modules use Kalibro and Prezento, respectively. They were developed into the Mezuro project and evolved during its integration to the new SPB Portal. | |
96 | +During the project, we helped to modularize the Mezuro project in several | |
97 | +independent services to minimize the amount of code to maintain it, helping to | |
98 | +test it and grant its code quality. Currently, its computation and | |
99 | +visualization modules use Kalibro and Prezento, respectively. They were | |
100 | +developed into the Mezuro project and evolved during its integration to the new | |
101 | +SPB Portal. | |
76 | 102 | |
77 | 103 | \subsection{System unification and User eXperience evolution} |
78 | 104 | |
79 | 105 | The conceptual architecture of the platform is presented in Figure |
80 | -\ref{fig:architecture}. Colab initially handles all user interaction, | |
81 | -directing requests to one of the integrated applications. It | |
82 | -post-processes responses from the applications to apply a consistent | |
83 | -visual appearance, manages authentication, and provides a unified search | |
84 | -functionality: instead of using the redundant restricted search | |
85 | -functionality of each application, a search o n the SPB portal might | |
86 | -return content from any of the applications, be it web pages, mailing | |
87 | -list posts, or source code. | |
106 | +\ref{fig:architecture}. Colab initially handles all user interaction, directing | |
107 | +requests to one of the integrated applications. It post-processes responses | |
108 | +from the applications to apply a consistent visual appearance, manages | |
109 | +authentication, and provides a unified search functionality: instead of using | |
110 | +the redundant restricted search functionality of each application, a search on | |
111 | +the SPB portal might return content from any of the applications, be it web | |
112 | +pages, mailing list posts, or source code. | |
88 | 113 | |
89 | 114 | \begin{figure}[hbt] |
90 | 115 | \centering |
... | ... | @@ -93,34 +118,40 @@ list posts, or source code. |
93 | 118 | \label{fig:architecture} |
94 | 119 | \end{figure} |
95 | 120 | |
96 | -But integration of collaborative environments goes beyond functional aspects. | |
97 | -To reduce the citizens perception of system complexity and to encourage them to use the software, a platform should offer an unified experience across its environments. | |
98 | -Thus, the SPB Portal information architecture was redesigned | |
99 | -to provide a transparent navigation and to reach users with different profiles. | |
100 | -A process of harmonization has been employed on the interaction models of each | |
101 | -tool to reduce the learning curve. At the same time, a new visual style was | |
102 | -created to unify the navigation experience and to comply with the guidelines of | |
103 | -the digital communication identity standard established by the Federal | |
104 | -Government. | |
105 | - | |
106 | -With the increase in system features and the addition of new tools, the | |
107 | -visual style has steadily evolved to keep the navigation unified. Moreover, | |
108 | -tools from different backgrounds, which in many cases provide similar | |
109 | -functionality, prompted the development of an unified interface. Some | |
110 | -features, such as search and user profile editing were eliminated from | |
111 | -the individual applications, and implemented centrally to ensure a | |
112 | -consistent look and feel. | |
113 | - | |
114 | -Another challenge was responsive web design. The integrated applications | |
115 | -had varying degrees of support for responsiveness, and the common | |
116 | -interface had to adapt for each individual scenario. In particular | |
117 | -Noosfero did not yet have a responsive design; we engaged in its | |
118 | -development and contributed towards that goal. | |
121 | +However, integration of collaborative environments goes beyond functional | |
122 | +aspects. To reduce the citizens perception of system complexity and to | |
123 | +encourage them to use the software, a platform should offer an unified | |
124 | +experience across its environments. Thus, the SPB Portal information | |
125 | +architecture was redesigned to provide a transparent navigation and to reach | |
126 | +users with different profiles. A process of harmonization has been employed on | |
127 | +the interaction models of each tool to reduce the learning curve. At the same | |
128 | +time, a new visual style was created to unify the navigation experience and to | |
129 | +comply with the guidelines of the digital communication identity standard | |
130 | +established by the Federal Government. | |
131 | + | |
132 | +With the increase in system features and the addition of new tools, the visual | |
133 | +style has steadily evolved to keep the navigation unified. Moreover, tools | |
134 | +from different backgrounds, which in many cases provide similar functionality, | |
135 | +prompted the development of an unified interface. Some features, such as search | |
136 | +and user profile editing were eliminated from the individual applications, and | |
137 | +implemented centrally to ensure a consistent look and feel. | |
138 | + | |
139 | +Another challenge was responsive web design. The integrated applications had | |
140 | +varying degrees of support for responsiveness, and the common interface had to | |
141 | +adapt for each individual scenario. In particular, Noosfero did not yet have a | |
142 | +responsive design; we also engaged in its development and contributed towards | |
143 | +that goal. | |
119 | 144 | |
120 | 145 | \subsection{Deploy} |
121 | 146 | |
122 | 147 | The SPB platform was deployed in 7 virtual machines with different functions, |
123 | -as we can see in Figure \ref{fig:architecture2}. | |
148 | +as we can see in Figure \ref{fig:architecture2}. The \textit{reverseproxy} | |
149 | +handles the HTTP requests and redirects them to the \textit{integration}, the | |
150 | +\textit{email} sends and receives e-mails on behalf of the platform and the | |
151 | +\textit{monitor} keeps the entire environment tracked. These three mentioned | |
152 | +virtual machines - \textit{reverseproxy}, \textit{email} and \textit{monitor} - | |
153 | +are accessible via Internet and the other ones are only available in the local | |
154 | +network created between them. | |
124 | 155 | |
125 | 156 | \begin{figure*}[hbt] |
126 | 157 | \centering |
... | ... | @@ -129,29 +160,22 @@ as we can see in Figure \ref{fig:architecture2}. |
129 | 160 | \label{fig:architecture2} |
130 | 161 | \end{figure*} |
131 | 162 | |
132 | -The \textit{reverseproxy} handles the HTTP requests and redirects them to the | |
133 | -\textit{integration}, the \textit{email} sends and receives e-mails on behalf | |
134 | -of the platform and the \textit{monitor} keeps the entire environment tracked. | |
135 | -These three \textit{VMs} mentioned - \textit{reverseproxy}, \textit{email} and | |
136 | -\textit{monitor} - are accessible via Internet and the other ones are only | |
137 | -available in the local network created between them. | |
138 | - | |
139 | 163 | \textit{Integration} works as a second layer of proxy beneath |
140 | 164 | \textit{reverseproxy}, any request to the platform will be handled by it. The |
141 | 165 | Colab service provides interface, authentication and search engine integration |
142 | -among all the services. When a request is received to a specific service, | |
143 | -Colab authenticates the user in the target tool, sends the request and makes a | |
144 | -visual transformation in the HTML page which is the content of the response. | |
145 | -Another user-oriented feature is the integrated search engine, when the user | |
146 | -want to find something in the platform Colab will perform the search in the | |
147 | -whole databases. Colab itself provides a web interface for GNU Mailman and we | |
148 | -have two others integrated tools in \textit{integration}: Gitlab and Prezento. | |
166 | +among all the services. When a request is received to a specific service, Colab | |
167 | +authenticates the user in the target tool, sends the request and makes a visual | |
168 | +transformation in the HTML page which is the content of the response. Another | |
169 | +user-oriented feature is the integrated search engine, when the user want to | |
170 | +find something in the platform Colab will perform the search in the whole | |
171 | +databases. Colab itself provides a web interface for GNU Mailman and we have | |
172 | +two others integrated tools in \textit{integration}: Gitlab and Prezento. | |
149 | 173 | Gitlab provides web interface for Git repositories and issues tracker, and |
150 | 174 | Prezento is a front-end for source code static analysis. |
151 | 175 | |
152 | 176 | The source code static analysis is performed by \textit{mezuro}. It runs some |
153 | 177 | static analysis tools on source code stored in repository and provide this data |
154 | -to Prezento. A social network and CMS (Content Manager System) is provided by | |
155 | -Noosfero in \textit{social}, and the databases of all tools with a cache | |
156 | -service are in \textit{database}. | |
178 | +to Prezento. A social network and CMS is provided by Noosfero in | |
179 | +\textit{social}, and the databases of all tools with a cache service are in | |
180 | +\textit{database}. | |
157 | 181 | ... | ... |
opensym2017/content/09-conclusion.tex
... | ... | @@ -11,7 +11,7 @@ possible to mitigate conflicts experienced in the development environment |
11 | 11 | and to conciliate governmental and academy cultures. To summarize our main contributions, we answered in this section the three open questions those guided this paper. |
12 | 12 | |
13 | 13 | \textbf{Q1:} \textit{Which strategy could be used to integrate several existing |
14 | -FLOSS tools to promote the collaborative software development?} | |
14 | +FLOSS tools to promote a collaborative software development?} | |
15 | 15 | % |
16 | 16 | The SPB portal integrates more than 10 FLOSS tools and provides several features, |
17 | 17 | such as social network, mailing list, version control, content management and |
... | ... | @@ -47,8 +47,8 @@ After the end of the project, some students successfully |
47 | 47 | embraced opportunities in public and private sectors, within national borders |
48 | 48 | and abroad. Some other students went further and started their own companies. |
49 | 49 | |
50 | -\textbf{Q3:} \textit{How to introduce the FLOSS collaborative and agile | |
51 | -practices to governmental development process?} | |
50 | +\textbf{Q3:} \textit{How to introduce collaborative and agile | |
51 | +practices typical in FLOSS environments in the governmental development process?} | |
52 | 52 | With some adaptations, what we called the ``translation processes'', it is feasible |
53 | 53 | to conciliate agile methodologies and FLOSS practices to develop software to |
54 | 54 | governmental organizations with functional hierarchical structures that use | ... | ... |