Commit 9c39a3fcb4bd63c3afe3b4bb533019e109376df9
Exists in
master
and in
3 other branches
Merge branch 'master' of http://softwarepublico.gov.br/gitlab/softwarepublico/articles
Showing
5 changed files
with
95 additions
and
22 deletions
Show diff stats
opensym2017/content/01-introduction.tex
... | ... | @@ -24,7 +24,7 @@ anymore, and the portal maintenance was becoming harder and harder. |
24 | 24 | From January 2014 to June 2016, a new platform for the SPB Portal was |
25 | 25 | designed and developed by the University of Brasília (UnB) and the |
26 | 26 | University of São Paulo (USP) in a partnership with the Brazilian |
27 | -Ministry of Budget, Planning, and Management. This new Portal was | |
27 | +Ministry of Budget, Planning, and Management(MP). This new Portal was | |
28 | 28 | designed as an integrated platform for collaborative software |
29 | 29 | development. It includes functionality for social networking, mailing |
30 | 30 | lists, version control system, and source code quality monitoring. In |
... | ... | @@ -46,5 +46,5 @@ changes in the team). |
46 | 46 | Figure \ref{fig:spb} shows the home page of this integrated platform. |
47 | 47 | The development tried to be as faithful as possible to FOSS development. |
48 | 48 | All development was done in the open, and the changes we needed in the |
49 | -tools user were contributed back to their communities. | |
49 | +tools were contributed back to their communities. | |
50 | 50 | ... | ... |
opensym2017/content/02-spb.tex
1 | -\section{Brazilian Public Software versus Free/Open Source Software} | |
1 | +\section{Free/Open Source Software and Brazilian Public Software} | |
2 | 2 | \label{sec:spb} |
3 | 3 | |
4 | -FOSS is considered a recent phenomenon that has gained notoriety in recent years and has been arousing a interest of observation by the academy. However, since the beginning of computing the majority of developers worked in the way that we now identify as free software, that is, sharing code openly. This feature makes the code available for inspection, modification, and use by any person or organization \cite{kon2012}, \cite{hippel2003}. | |
4 | +FOSS is a phenomenon that has gained notoriety in recent years and has been attarcting the interest of academia. However, since the beginning of computing the majority of developers worked in the way that we now identify as free software, that is, sharing code openly. This feature makes the code available for inspection, modification, and use by any person or organization \cite{kon2012}, \cite{hippel2003}. | |
5 | 5 | |
6 | 6 | The elements that distinguish FOSS 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 free software, user freedom is promoted and its development is based on open collaboration and development practices \cite{meirelles2013}. |
7 | 7 | |
8 | -From the economic point of view, unlike what happens with proprietary, restricted software, FOSS promotes the establishment of several suppliers that 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. These freedoms and assurances on software are guaranteed in Brazil by Law 9610/98, copyright law. Most of the time, this protection from the law complies the terms conferred by a contract related to certain software. This contract is called `` license ''. The license of a software determines a list of rights and duties that are projected on a user of the software. In particular, what differentiates FOSS from proprietary software is just the way of licensing\cite{sabino2009}. The FOSS licenses are the ones that guarantee the right to execute, study, adapt, and improve the software, such as the \textit{GPL (GNU General Public License)} licenses accepted for projects hosted in the SPB. | |
8 | +From the economic point of view, unlike what happens with proprietary software, FOSS promotes the establishment of several suppliers that 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. These freedoms and assurances on software are guaranteed in Brazil by Law 9610/98, copyright law. Most of the time, this protection from the law complies with the terms conferred by a contract related to certain software. This contract is called ``license''. The license of a software 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 the \textit{GPL (GNU General Public License)}, the Apache license, the MIT license, and the BSD license. | |
9 | 9 | |
10 | 10 | The SPB has been released in 2007. In a practical view, is a web system that has consolidated itself as a software project sharing environment. It provides a space (community) for each software. Therefore, the current platform for SPB was designed to include tools that promote collaboration and interaction in communities (by managers, users and |
11 | 11 | developers) of the projects, according to the practices used in FOSS communities. This includes e-mail lists, discussion forums, issue trackers, version control systems, and social networking environments. |
12 | 12 | |
13 | 13 | Initially, the purpose of the portal was only to share the software developed in the brazilian government, in order to reduce the costs of hiring software. However it was observed that when the software were released, communities were formed around those software with several people collaborating and sharing the 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. |
14 | 14 | |
15 | -The concept of brazilian public software differs from FOSS in some aspects highlighting the attribution of public good to software and the obligation of the software to be in the SPB. Although there are some differences between what is FOSS and brazilian public software, there are common principles, such as the tendency for decentralization in decision-making, the intense sharing of information and feedback processes resulting from the use of artifacts produced. On the one hand, FOSS presents itself as an already consolidated and viable model in an increasing number of applications and environments. On the other hand, legal and economic uncertainties remain. Some of these challenges are associated to the barriers created by the proprietary software model and culture \cite{kon2012}. Besides these, there are also difficulties for the entry and permanence of new contributors in the projects. In SPB context probably due to the organizational structure and bureaucratic processes of the Brazilian Federal Government. | |
16 | - | |
17 | -% TODO | |
18 | -% Criar uma seção de related works | |
15 | +The concept of Brazilian Public Software goes beyond FOSS. In addition to being licensed under a FOSS license, a Brazilian Public Software needs to have explicit guarantees that it is a public good, and that project must be available in the SPB. Being a true public good assumes requirements that can't be met solely by means of FOSS licensing. For example, there must be a relaxed trademark usage policy by the original vendor that don't stop eventual competitors from adversiting services for that same software. Inclusion in the SPB also has extra requirements, such as having a public version control system, installation manual, hardware requirements specification, etc. | ... | ... |
opensym2017/content/03-requirements.tex
... | ... | @@ -77,7 +77,7 @@ interface, and a search engine, as well as, other back-end features, is not a |
77 | 77 | trivial work. |
78 | 78 | |
79 | 79 | The new SPB platform is fully an integrated environment, as we can see in |
80 | -Figure \ref{git:requirements}, being very advanced comparing to other related | |
80 | +Figure \ref{fig:requirements}, being very advanced comparing to other related | |
81 | 81 | projects and initiatives. For example, the USA government has a platform |
82 | 82 | designed to improve access to the federal government developed software. |
83 | 83 | Code.gov is an interface to organize the USA government projects and, in short, |
... | ... | @@ -120,4 +120,16 @@ can create content in the communities (news items, documents, wiki pages), but |
120 | 120 | all repository is available at the Bitbucket platform. |
121 | 121 | %http://www.softwarepublico.gob.cl -> https://bitbucket.org/softwarepublico |
122 | 122 | |
123 | -%TODO: fazer o gancho final para linkar com a seção da arquitetura | |
123 | +The Brazilian government needed to evolute the SPB project that exists since | |
124 | +2005. In 2013, when we started this project, the SPB Portal had about 200 | |
125 | +thousand registered users. We could not just contact these users and ask them | |
126 | +to register an account at Github as well. Moreover, after the Edward Snowden | |
127 | +case, the Brazilian government approved a specific law decree (8.135/2013) to | |
128 | +rule its communication service. Summarily, services like Gmail, Google Drive, | |
129 | +Dropbox, Live, Outlook, iCloud, as well, Google Groups, Github, etc do not | |
130 | +could be used by a Brazilian public agent as tool for your work. To use these | |
131 | +kinds of services the Brazilian government needs to provide them to itself. | |
132 | +Thus, we developed our own solution to cover all the requirements, producing a | |
133 | +complete governmental integrated platform for collaborative software | |
134 | +development. | |
135 | + | ... | ... |
opensym2017/content/07-process.tex
... | ... | @@ -17,7 +17,7 @@ synchronized. |
17 | 17 | |
18 | 18 | \subsection{Teams organizations} |
19 | 19 | |
20 | -More than X\% of the teams was composed of undergraduate students and they | |
20 | +Approximately 70\% of the development teams were composed of software engineering undergraduate students from UnB and they | |
21 | 21 | worked physically in the same laboratory in the opposite of the senior. Each |
22 | 22 | student had their own scheduler based on their class, it made complicated to |
23 | 23 | implement pair programming. Also, they had a different area of interests. To |
... | ... | @@ -25,7 +25,7 @@ cope with those diversity, we had two basic rules which guided the project |
25 | 25 | organization: |
26 | 26 | |
27 | 27 | \begin{enumerate} |
28 | - \item Classes have to be the top priority for undergraduate students; | |
28 | + \item Classes have to be the high priority for undergraduate students; | |
29 | 29 | \item Always work in pair (locally or remotely). |
30 | 30 | \end{enumerate} |
31 | 31 | ... | ... |
opensym2017/content/09-lessons.tex
1 | 1 | \section{Lessons Learned} |
2 | 2 | \label{sec:lessons} |
3 | 3 | |
4 | -- Dividir entre positivo e negativo (interação com profissionais de diferentes áreas) | |
5 | - * arquitetura ficou mais complexa do que o necessário devido à exigência de utilização do colab (gamificação) | |
6 | - * incapacidade do governo de continuar mantendo (mesmo com documentação e automação) | |
7 | - * automação/DevOps | |
8 | - * processo PMBok do Governo versus Ageis/SL do LAPPIS | |
9 | - * Atores da comunidade SL no projeto | |
10 | - * Gestão dos recursos: Fizemos mais por menos (2.6M de 3.2M) | |
11 | - * Impacto nos alunos (pós projeto) | |
12 | - * como trabalhar com alunos (tempo parcial etc) | |
4 | +The multidisciplinary composition of the development teams, mainly software | |
5 | +engineers and designers, is necessary for the development of good software | |
6 | +products, which naturally aim to meet the users needs. In the context of the | |
7 | +SPB project, there were also stakeholders from different areas who composed the | |
8 | +team of technicians and managers of the MP, as well as the administrative teams | |
9 | +of UnB. This interaction with different professionals brought a great learning | |
10 | +opportunity for the students, who had their first professional experience, even | |
11 | +during their graduation course. On the other hand, the different perceptions of | |
12 | +stakeholders generated high complexity of communications and expectations | |
13 | +management, burdening too much the professors who were responsible for project | |
14 | +management. | |
15 | + | |
16 | +The use of the Colab tool was a requirement required by the MP. They argueed | |
17 | +that this tool presented functionalities that would allow MP managers to | |
18 | +stimulate the participation of SPB service providers with gamefication | |
19 | +practices. As we said, in order for Colab to perform the expected behavior in | |
20 | +SPB its architecture had to be completely redefined and this caused in | |
21 | +practice, i) the considerable increase in the architectural complexity of the | |
22 | +SPB and ii) it was the subsystem that consumed the most effort and budget | |
23 | +during development. | |
24 | + | |
25 | +Due to the computational complexity related to the SPB deployment, associated | |
26 | +with MP's need for product support, we made an effort to provide complete | |
27 | +automation of the entire deployment procedure, a result of DevOps activities. | |
28 | +In this way, we encapsulate all this complexity and enable the deployment of | |
29 | +new SPB releases through the execution of few commands, as registered in the | |
30 | +project documentation. Although we have provided a high degree of automation, | |
31 | +training workshops for the MP technical team, and a meticulous description of | |
32 | +the procedures in the documentation, we observed that the MP technical staff | |
33 | +invariably depended on our support to perform these procedures. | |
34 | + | |
35 | +From the point of view of management and development processes, we had to | |
36 | +develop management strategies that would accommodate different organizational | |
37 | +cultures. As reported, the MP has a functional hierarchical organizational | |
38 | +culture, strongly supported by process management, typical of the traditional | |
39 | +development paradigm. The UnB teams use a process based on agile manifest | |
40 | +values and FOSS and agile community practices. So we created a process of | |
41 | +"translation" of work done to communicate with MP managers who manage their | |
42 | +portfolio based on the PMBoK processes. On the one hand, in the intermediary | |
43 | +and final project's phases we have matured this process, mainly due to the | |
44 | +perception of the results by MP, on the other hand, in the initial phase we had | |
45 | +a lot of intervention in our work style, which ended up focusing strategic | |
46 | +discussions for operational discussions. Again there was an overload in | |
47 | +professors, who were responsible for maintaining the strategic alignment of the | |
48 | +MP with the day to day development of the UnB team. | |
49 | + | |
50 | +Another importance factor for the students and maturing of the software | |
51 | +engineering practices used in the project was the composition of the teams with | |
52 | +the participation of experienced professionals from the FOSS communities. These | |
53 | +professionals together with the professors promoted a work environment where | |
54 | +the students could develop their skills in a didactic and practical way without | |
55 | +being transferred the pressures for them. In addition, these experienced | |
56 | +professionals were responsible for the most relevant technical decisions | |
57 | +related to the SPB software product. | |
58 | + | |
59 | +% * Gestão dos recursos: Fizemos mais por menos (2.6M de 3.2M) --- sem os dados | |
60 | +%% (escopo, custo, tempo e qualidade) bem discutidos é difícil sustentar essa | |
61 | +%% afirmação, embora eu e Paulo consigamos perceber isso. | |
62 | + | |
63 | +The experience of the SPB project led UnB to develop a model of team | |
64 | +composition and work style that proved to be appropriate to the cararteristics | |
65 | +of an education environment, bringing the academy closer to the industry. The | |
66 | +highest priority from the university's point of view is the students. | |
67 | +Considering this, the activities of the project were never prioritized to the | |
68 | +detriment of the classes and other didactic-pedagogical activities. In short we | |
69 | +had students working at different times, part time, remotely or presential, | |
70 | +always respecting their individual conditions, but doing the work in a | |
71 | +collective, collaborative and open way. At the end of the project we realized | |
72 | +that the skills developed by the students empowered them with the state in the | |
73 | +practice of software engineering. The members of the teams got opportunities to | |
74 | +work in public, private, national and international organizations, in addition | |
75 | +to those students they preferred entrepreneurship, opening their own companies. | |
76 | + | ... | ... |