Commit 26f498c8bff4b024a190a1bd4fa4913fd1b7add3

Authored by Melissa Wen
2 parents 464b0aff 55614bd3

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

opensym2017/content/05-requirements.tex
@@ -2,28 +2,32 @@ @@ -2,28 +2,32 @@
2 \label{sec:requirements} 2 \label{sec:requirements}
3 3
4 By preparing the SPB Portal evolution, the Brazilian Government has executed 4 By preparing the SPB Portal evolution, the Brazilian Government has executed
5 -three steps to collect the requirements. The first step was the collection of proposals using an online tool called Pligg and the open sharing of them on the Internet.  
6 -In this step, the citizens have written and voted on proposals they  
7 -were more interested in. At the end, the Brazilian Government collected about 100 proposals and its initial perspective was to give to the most voted ones the priority of implementation on the new SPB Portal. 5 +three steps to collect the requirements. The first step was the collection of
  6 +proposals using an online tool called Pligg and the open sharing of them on the
  7 +Internet. In this step, the citizens have written and voted on proposals they
  8 +were more interested in. At the end, the Brazilian Government collected about
  9 +100 proposals and its initial perspective was to give to the most voted ones
  10 +the priority of implementation on the new SPB Portal.
8 11
9 The second step was two face-to-face meetings that aimed to discuss ideas (not 12 The second step was two face-to-face meetings that aimed to discuss ideas (not
10 necessarily based on the previous collected proposals) to improve the SPB 13 necessarily based on the previous collected proposals) to improve the SPB
11 -Portal and its environments. On the first day, the  
12 -participants were divided in two groups to discuss (i) features and  
13 -technologies as well as (ii) user experience and general ideas regarding the  
14 -SPB Portal. Each group has generated a ``mind map'' to summarize and to correlate its  
15 -ideas. During the second day, the participants were allocated in three groups  
16 -to discuss features related to (i) the process of software evaluation and  
17 -acceptance in the SPB Portal, (ii) approaches to share the SPB projects,  
18 -and (iii) ways to attract universities and students to collaborate to SPB  
19 -projects. 14 +Portal and its environments. On the first day, the participants were divided in
  15 +two groups to discuss (i) features and technologies as well as (ii) user
  16 +experience and general ideas regarding the SPB Portal. Each group has generated
  17 +a ``mind map'' to summarize and to correlate its ideas. During the second day,
  18 +the participants were allocated in three groups to discuss features related to
  19 +(i) the process of software evaluation and acceptance in the SPB Portal, (ii)
  20 +approaches to share the SPB projects, and (iii) ways to attract universities
  21 +and students to collaborate to SPB projects.
20 22
21 -The last step was a workshop with some IT representatives of the Federal Government and public organizations and, again, it was focused on collecting new proposals to evolve the SPB Portal. 23 +The last step was a workshop with some IT representatives of the Federal
  24 +Government and public organizations and, again, it was focused on collecting
  25 +new proposals to evolve the SPB Portal.
22 26
23 -After these unconnected three steps, the Brazilian government has generated a list of  
24 -145 requirements. In order to mitigate the lack of focus in the requirement  
25 -list, we have proposed to release an initial version to replace the old SPB  
26 -portal, prioritizing the following features: 27 +After these unconnected three steps, the Brazilian Government has generated a
  28 +list of 145 requirements. To provide a cohesive initial list of requirements,
  29 +we have proposed to release the first stable version of the new platform to
  30 +replace the old SPB Portal, prioritizing the following features:
27 31
28 \begin{enumerate} 32 \begin{enumerate}
29 \item An organized public software catalog; 33 \item An organized public software catalog;
@@ -35,8 +39,8 @@ portal, prioritizing the following features: @@ -35,8 +39,8 @@ portal, prioritizing the following features:
35 39
36 Moreover, the new SPB Portal would only work properly if there was a unique 40 Moreover, the new SPB Portal would only work properly if there was a unique
37 authentication to use the provided features. Additionally, a unified interface 41 authentication to use the provided features. Additionally, a unified interface
38 -was an important non-functional requirement to provide better user experience on  
39 -the new platform. 42 +was an important non-functional requirement to provide better user experience
  43 +on the new platform.
40 44
41 Other requirements were in the wishlist such as an integrated search engine and 45 Other requirements were in the wishlist such as an integrated search engine and
42 a web-based source code static analysis monitor. By analyzing all of these 46 a web-based source code static analysis monitor. By analyzing all of these
opensym2017/content/06-architecture.tex
@@ -150,7 +150,7 @@ network created between them. @@ -150,7 +150,7 @@ network created between them.
150 150
151 \begin{figure*}[hbt] 151 \begin{figure*}[hbt]
152 \centering 152 \centering
153 - \includegraphics[width=.85\linewidth]{figures/arch3.png} 153 + \includegraphics[width=.95\linewidth]{figures/arch3.png}
154 \caption{Instanciation view of the SPB architecture.} 154 \caption{Instanciation view of the SPB architecture.}
155 \label{fig:architecture2} 155 \label{fig:architecture2}
156 \end{figure*} 156 \end{figure*}
opensym2017/content/08-process.tex
@@ -14,7 +14,7 @@ have joined the project to help with the more difficult issues and to transfer @@ -14,7 +14,7 @@ have joined the project to help with the more difficult issues and to transfer
14 knowledge to the students. Their main task was to provide solutions for complex 14 knowledge to the students. Their main task was to provide solutions for complex
15 problems, working as developers. As these professionals are very skillful and 15 problems, working as developers. As these professionals are very skillful and
16 the project could not fund full-time work for all of them, they worked 16 the project could not fund full-time work for all of them, they worked
17 -partially on the project. In addition, they lived in either different Brazilian 17 +part-time on the project. In addition, they lived in either different Brazilian
18 states or other countries, which led much of the communication to be online. 18 states or other countries, which led much of the communication to be online.
19 19
20 In short, our work process was based on open and collaborative software 20 In short, our work process was based on open and collaborative software
@@ -99,9 +99,9 @@ between strategical, tactical, and operational views. We had one milestone per @@ -99,9 +99,9 @@ between strategical, tactical, and operational views. We had one milestone per
99 user history (feature) and one or more issues for addressing each feature. With 99 user history (feature) and one or more issues for addressing each feature. With
100 this approach we achieved two important goals: keeping all the management as 100 this approach we achieved two important goals: keeping all the management as
101 close as possible to the source code and tracking every feature developed 101 close as possible to the source code and tracking every feature developed
102 -during the project. Our decision to use the Wiki initially was empirical, but  
103 -later reinforced by a research conducted by Joseph Chao showing the advantage  
104 -of using Wikis~\cite{chao2007student, opensourcestyle}. 102 +during the project. Initially, our decision to use the Wiki was empirical, but
  103 +later such decision was reinforced by a research conducted by Joseph Chao
  104 +showing the advantage of using Wikis~\cite{chao2007student, opensourcestyle}.
105 105
106 \subsection{High-level Project Management and Reporting} 106 \subsection{High-level Project Management and Reporting}
107 107
@@ -122,10 +122,10 @@ they stopped resisting. @@ -122,10 +122,10 @@ they stopped resisting.
122 122
123 We defined some level of meeting granularity to avoid generating too much 123 We defined some level of meeting granularity to avoid generating too much
124 overhead to the developers. We had a strategical and a validating meeting with 124 overhead to the developers. We had a strategical and a validating meeting with
125 -the Brazilian Government (the former once in a month and the latter each 15th  
126 -day), a release planning with the entire team (one per month), and finally a  
127 -sprint planning (one each 15th day). Figure \ref{fig:meeting} is a diagram  
128 -that represents our meeting organization. 125 +the Brazilian Government (the former once in month and the latter biweekly), a
  126 +release planning with the entire team (one per month), and finally a sprint
  127 +planning (biweekly). Figure \ref{fig:meeting} is a diagram that represents our
  128 +meeting organization.
129 129
130 In the strategical meeting we usually defined the priorities and new features 130 In the strategical meeting we usually defined the priorities and new features
131 with the Brazilian Government. Normally the professors, the coach of each team, 131 with the Brazilian Government. Normally the professors, the coach of each team,
@@ -141,13 +141,13 @@ After the strategical meeting with Brazilian Government agents, we had a @@ -141,13 +141,13 @@ After the strategical meeting with Brazilian Government agents, we had a
141 planning phase with all teams together. In this part, each team worked together 141 planning phase with all teams together. In this part, each team worked together
142 to convert the Government wishes into smaller parts which were represented by 142 to convert the Government wishes into smaller parts which were represented by
143 the epics of the release. Each coach was responsible for conducting the 143 the epics of the release. Each coach was responsible for conducting the
144 -planning and recording it on the project Wiki. With this epic, each 15th day  
145 -the team have documented their sprint schedule (with small achievements mapped  
146 -to issues). 144 +planning and recording it on the project Wiki. With this epic, biweekly the
  145 +team have documented their sprint schedule (with small achievements mapped to
  146 +issues).
147 147
148 To keep the Brazilian Government always updated, we invited them to work with 148 To keep the Brazilian Government always updated, we invited them to work with
149 -us to validate the new features in progress. Normally we had a meeting each  
150 -15th day. Basically, this was our work flow. We always kept everything 149 +us to validate the new features in progress. Normally we had a meeting
  150 +biweekly. Basically, this was our work flow. We always kept everything
151 extremely open to the Government (our way of working, and the one often used by 151 extremely open to the Government (our way of working, and the one often used by
152 FLOSS projects) and to the team. 152 FLOSS projects) and to the team.
153 153
@@ -158,9 +158,9 @@ especially Gitlab. Basically, we had: @@ -158,9 +158,9 @@ especially Gitlab. Basically, we had:
158 \item Project repository: we have one organization with many repositories; 158 \item Project repository: we have one organization with many repositories;
159 \item Wiki: each release has one Wiki page with the compilation of the 159 \item Wiki: each release has one Wiki page with the compilation of the
160 strategical meeting; 160 strategical meeting;
161 - \item Milestones: each milestone was used to register a user history (feature); 161 + \item Milestones: each milestone was used to register a user story (feature);
162 \item Issues: each sprint planning generated issues, which we associated to 162 \item Issues: each sprint planning generated issues, which we associated to
163 - the related milestone (feature as user history) and registered on the related Wiki page. 163 + the related milestone (feature as user story) and registered on the related Wiki page.
164 Finally, each developer assigned the issue to herself. 164 Finally, each developer assigned the issue to herself.
165 \end{enumerate} 165 \end{enumerate}
166 166
@@ -170,6 +170,6 @@ code). It is important to highlight that we converged to this workflow after @@ -170,6 +170,6 @@ code). It is important to highlight that we converged to this workflow after
170 many experiments. For example, we used a tool named Redmine for organizing our 170 many experiments. For example, we used a tool named Redmine for organizing our
171 tasks during some sprints. However, this tool revealed to be inefficient for 171 tasks during some sprints. However, this tool revealed to be inefficient for
172 our case since the government agents lost part of the project traceability. We 172 our case since the government agents lost part of the project traceability. We
173 -realized that centralize all the work in the SPB Portal was the best option for  
174 -our case. 173 +realized that centralizing all the work in the SPB Portal was the best option
  174 +for our case.
175 175
opensym2017/content/09-conclusion.tex
@@ -21,7 +21,7 @@ sustainability and maintainability, the aforementioned FLOSS tools were @@ -21,7 +21,7 @@ sustainability and maintainability, the aforementioned FLOSS tools were
21 integrated with minimum differences from their official versions and the new 21 integrated with minimum differences from their official versions and the new
22 developed features were sent upstream to ensure an alignment between the portal 22 developed features were sent upstream to ensure an alignment between the portal
23 systems and their respective official versions. In the integration process, the 23 systems and their respective official versions. In the integration process, the
24 -main softwares were identified, specific teams were formed to work with each 24 +main software were identified, specific teams were formed to work with each
25 one of them and each team was composed of students with different levels of 25 one of them and each team was composed of students with different levels of
26 skills and at least one senior professional. 26 skills and at least one senior professional.
27 27
@@ -66,8 +66,8 @@ university. @@ -66,8 +66,8 @@ university.
66 66
67 \subsection{Lessons Learned} 67 \subsection{Lessons Learned}
68 68
69 -From the answers of our initial open questions, we also can highlighted six  
70 -lessons learned to make easier to share our experience during the development 69 +From the answers of our initial open questions, we can also highlight six
  70 +lessons learned to better share our experience during the development
71 of the new SPB Portal. 71 of the new SPB Portal.
72 72
73 \textbf{The participation of experienced professionals is crucial to 73 \textbf{The participation of experienced professionals is crucial to
@@ -117,11 +117,10 @@ brought strategic discussions to technical/operational meetings that were @@ -117,11 +117,10 @@ brought strategic discussions to technical/operational meetings that were
117 supposed to be about practical technical decisions. 117 supposed to be about practical technical decisions.
118 % 118 %
119 This produced a highly complex communication and management environment, 119 This produced a highly complex communication and management environment,
120 -overloading the professors because they were supposed for maintaining the  
121 -Government strategy synchronized with the implementation plans of the  
122 -development team. This was hard, especially because the aforementioned  
123 -cultural mismatch. Mixing both concerns in the same discussions caused  
124 -confusion on both sides. 120 +overloading the professors, who were supposed to maintain the Government
  121 +strategy synchronized with the implementation plans of the development team.
  122 +This was hard, especially because the aforementioned cultural mismatch. Mixing
  123 +both concerns in the same discussions caused confusion on both sides.
125 % 124 %
126 From the middle of the project we were able to keep those concerns separated, 125 From the middle of the project we were able to keep those concerns separated,
127 what eased the work of everyone involved. 126 what eased the work of everyone involved.
@@ -134,8 +133,8 @@ guide the development of the new SPB platform. Our team was totally against the @@ -134,8 +133,8 @@ guide the development of the new SPB platform. Our team was totally against the
134 idea because we already knew that Colab was a very experimental project and its 133 idea because we already knew that Colab was a very experimental project and its
135 adoption could dramatically increase the project complexity. Even though, we 134 adoption could dramatically increase the project complexity. Even though, we
136 provided technical reasons to not utilize Colab, the Government was adamant and 135 provided technical reasons to not utilize Colab, the Government was adamant and
137 -we had to manage this problem. We did massive changes to Colab, and at the end  
138 -of the project we have completely rewritten it to make it stable. It is 136 +we had to manage this problem. We did massive changes to Colab, and by the end
  137 +of the project we had completely rewritten it to make it stable. It is
139 important to notice that the Government compelled us to accept a technical 138 important to notice that the Government compelled us to accept a technical
140 decision based only on political interests, without considering all the 139 decision based only on political interests, without considering all the
141 resources that would be spent due to that decision. At the end of the project, 140 resources that would be spent due to that decision. At the end of the project,
@@ -149,19 +148,20 @@ capable of ignoring technical reasons in favor of political decisions. @@ -149,19 +148,20 @@ capable of ignoring technical reasons in favor of political decisions.
149 In the process of deploying the SPB platform in the Brazilian Government 148 In the process of deploying the SPB platform in the Brazilian Government
150 infrastructure we had to interact with the Government technicians. We did 149 infrastructure we had to interact with the Government technicians. We did
151 several workshops, training and a meticulous documentation describing all the 150 several workshops, training and a meticulous documentation describing all the
152 -required procedures to update the platform, however, we realized that they  
153 -constantly avoid the responsibility. After noticing the aforementioned  
154 -situation, we organized a DevOps team that completely automated all the  
155 -deployment procedure. We simplified all the platform deployment to a few steps:  
156 -(i) initial configurations (just ssh configuration) and (ii) the execution of  
157 -simple commands to completely update the platform. By the end of the project,  
158 -we observed that the Government technicians invariably still depended on our  
159 -support to update the platform even with all the automation provided by us. We  
160 -were sadly left with a feeling of uncertainty about the future of the platform  
161 -after the project ended. In hindsight, we realize that the Brazilian Government  
162 -dedicated system analysts and managers to the project, but not operations  
163 -technicians. The later should have been more involved with the process so they  
164 -could at least be comfortable in managing the platform infrastructure. 151 +required procedures to update the platform, however, we realized that the
  152 +technicians would constantly avoid the responsibility. After noticing the
  153 +aforementioned situation, we organized a DevOps team that completely automated
  154 +all the deployment procedure. We simplified all the platform deployment to a
  155 +few steps: (i) initial configurations (just ssh configuration) and (ii) the
  156 +execution of simple commands to completely update the platform. By the end of
  157 +the project, we observed that the Government technicians invariably still
  158 +depended on our support to update the platform even with all the automation
  159 +provided by us. We were sadly left with a feeling of uncertainty about the
  160 +future of the platform after the project ended. In hindsight, we realize that
  161 +the Brazilian Government dedicated system analysts and managers to the project,
  162 +but not operations technicians. The later should have been more involved with
  163 +the process so they could at least be comfortable in managing the platform
  164 +infrastructure.
165 165
166 \subsection{Final Remarks and Future Work} 166 \subsection{Final Remarks and Future Work}
167 167
@@ -201,9 +201,9 @@ the involved stakeholders. @@ -201,9 +201,9 @@ the involved stakeholders.
201 201
202 %* 47\% é desenvolvido em PHP. 202 %* 47\% é desenvolvido em PHP.
203 203
204 -% 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). 204 +% foi constatado que aproximadamente 75\% dos software \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).
205 205
206 -% 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}. 206 +% Foram adicionados 31 software 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 software adicionados, somente 4 obtiveram sucesso na avaliação. No Code Climate, 16 software 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}.
207 207
208 % 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. 208 % 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.
209 209