Commit 9c39a3fcb4bd63c3afe3b4bb533019e109376df9

Authored by Melissa Wen
2 parents ffee7f7d c5a16f9d

Merge branch 'master' of http://softwarepublico.gov.br/gitlab/softwarepublico/articles

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 +
... ...