Commit 7027cecdd93d7c9adf8c0316ecbfa1fe1723e8a3

Authored by Melissa Wen
2 parents 01222dd8 a3f537ad

[i3eSW] Remove first challenge; put explanation about SPB in the beginning of Pi…

…peline; fix some information conclicts
Showing 1 changed file with 170 additions and 175 deletions   Show diff stats
ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
... ... @@ -45,41 +45,44 @@ overcome them.
45 45  
46 46 ## Introduction
47 47  
48   -We worked on a thirty-month-long Brazilian government project to modernize the
49   -Brazilian Public Software (SPB) portal (www.softwarepublico.gov.br) [1]. This
50   -project, started in 2014, was a partnership between the Ministry of Planning,
51   -Budget, and Management and two public universities: University of Brasília and
52   -University of São Paulo.
  48 +From 2014 to 2016, we were part of a team that worked on a thirty-month-long
  49 +Brazilian government project to modernize the Brazilian Public Software (SPB)
  50 +portal (www.softwarepublico.gov.br) [1]. This project was a partnership between
  51 +the Ministry of Planning, Budget, and Management and two public universities:
  52 +University of Brasília and University of São Paulo.
53 53  
54   -With this partnership, the SPB portal evolved to a Collaborative Development
  54 +During this time, the SPB portal evolved into a Collaborative Development
55 55 Environment (CDE) [2] which brought significant benefits for the government and
56   -the society. The government could minimize bureaucracy and costs of software
57   -development, encouraging the use of the same set of applications across
58   -different government agencies. The society gained a mechanism of transparency,
59   -follow government expenses, and collaboration, contribute to project
60   -communities. .
  56 +the society: The government could minimize bureaucracy and software
  57 +development costs, by reusing the same set of applications across
  58 +different government agencies; society could more transparently
  59 +follow government expenses and contribute to project
  60 +communities.
61 61  
62 62 In this article, we discuss the use of Continuous Delivery (CD) during our
63 63 experience as the academic partner in this project. We focus on how we managed
64 64 to implement CD in a large institution with traditional values and how CD
65 65 helped to build trust between the government and the university development
66   -team. CD enabled us to show our progress and earned the government’s confidence
  66 +team. CD enabled us to show our progress and to earn the government’s confidence
67 67 that we could adequately fulfill their requests, becoming an essential aspect
68 68 of our interaction with them. According to this experience, the use of CD as a
69 69 tool to build such trust relationships is yet another of its benefits [3].
70 70  
71 71 ## Context
72 72  
  73 +<!-- Avaliar se a descrição técnica sobre SPB não deveria vim aqui -->
73 74 SPB is a governmental program created to foster sharing and collaboration on
74 75 Open Source Software (OSS) development for the Brazilian public administration.
75   -For their projects, the Ministry managed both software requirements and server
  76 +In their own projects, the Ministry managed both software requirements and server
76 77 infrastructure. However, its hierarchical and traditional processes made them
77 78 unfamiliar with new software development techniques, such as CD. Any of our
78   -requests had to pass through layers of bureaucracy before being answered,
79   -accessing their infrastructure to perform a deploy was not different.
  79 +requests had to pass through layers of bureaucracy before being answered;
  80 +accessing their infrastructure to deploy updated software was not different.
  81 +The difficulties were aggravated because the new SPB portal is an unprecedented
  82 +platform in the Brazilian government, with a complicated deployment process.
80 83  
81   -During its lifetime, the project suffered significant interference from the
82   -board of directors because the portal represents an interface between
  84 +The project suffered significant interference from the
  85 +board of directors throughout time because the portal represents an interface between
83 86 government and society. In light of political interests, directors continually
84 87 imposed changes to the platform while ignoring our technical advice. In 2015,
85 88 the board of directors was changed and, with it, the vision of the project. New
... ... @@ -90,142 +93,136 @@ requirements previously approved.
90 93 mudar em todas as ocorrências de agents por staff, mas checar com o Fabio.
91 94 -->
92 95  
93   -In this context, we overcame three distinct challenges: (1) finding a system
94   -solution with which government and development team agree, (2) deconstructing
  96 +In this context, we overcame three distinct challenges: (1) deconstructing
95 97 the widespread belief among government staff that any project in partnership
96   -with a University is doomed to fail, and (3) dealing with bureaucracies
97   -involved in the deployment process by the Ministry.
  98 +with a University is doomed to fail, and (2) dealing with bureaucracies
  99 +involved in the deployment process.
  100 +<!-- Melissa: Acho que no segundo, seria bom falar: lidar com a aritmia que as burocracias do governo causavam ao nosso processo de deploy? -->
  101 +
  102 +<!-- TODO:
  103 +sugestão: Tira o primeiro challenge e acrescenta um texto no final desta
  104 +seção dizendo "no final deu tudo certo: construímos uma ferramenta modular
  105 +(inclui o conteúdo do parágrafo sobre o primeiro challenge) com uma equipe
  106 +heterogênea (coloca a descrição das pessoas) e chegamos a um pacote com
  107 +7 ferramentas blah blah blah
  108 +-->
98 109  
99   -To face the first issue, we designed the SPB portal as a CDE with additional
100   -social features. Due to the complexity of creating such a system from scratch,
101   -we decided to adapt and integrate existing OSS tools to build a
102   -system-of-systems [4]. We created a solution that orchestrates multiple
103   -components and allowed us to smoothly provide a unified interface for final
104   -users, including single sign-on and global searches [1]. On top of that, the
105   -new SPB portal was an unprecedented platform to the Brazilian government, with
106   -a complicated deployment process.
  110 +Firstly, our team was not from a typical company, consisting mainly of
  111 +undergraduate students coordinated by two professors. Accordingly, time and
  112 +resources allocation, accountability, and team continuity might be construed
  113 +as "unprofessional". On the government side, the SPB portal evolution was the
  114 +first software development collaboration between universities and the Ministry
  115 +staff involved, raising disbelief.
107 116  
  117 +Secondly, our team approached software deployment differently from the Ministry.
  118 +We believed frequent delivery is better for the project’s success. In contrast,
  119 +the Ministry is used to the idea of a single deployment at the end of the
  120 +project, and neither their bureaucratic structure nor their technical expertise
  121 +were conductive with this style of work. That ended up hampering the benefits of
  122 +the tool and preventing us from showing off the fruits of the project to those
  123 +responsible for evaluating it.
108 124  
109   -Regarding the second problem, our team was not from a typical company,
110   -consisting mainly of undergraduate students coordinated by two professors. In
111   -the first year, we had a group composed of 24 undergraduate students, one
112   -designer, and two senior developers. In 2015, our team grew to 36 students, two
113   -designers, eight senior developers. In the end, due to budget constraints, our
114   -team shrinked to 20 students, one designer, and two developers. On the
115   -government side, the SPB portal evolution was the first software development
116   -collaboration between university and government experienced by the Ministry
117   -staff involved in the project.
118   -
119   -Finally, our team thought software deployment differently than the Ministry. On
120   -our side, we believe that frequent deliveries are better for the project’s
121   -success. However, the Ministry works with the idea of a single deployment at
122   -the end of the project. In other words, neither the bureaucratic structure of
123   -the Ministry nor its technical abilities were conducive to this style of work.
124   -Furthermore, there was little effort to deploy new versions of the system
125   -promptly. That ended up hampering the benefits of the tool and preventing us
126   -from showing off the fruits of the project to those responsible for evaluating
127   -it.
  125 +<!-- Melissa: tentar dividir esse último parágrafo em 2? Tá cansativo ler ele todo - não consigo respirar :P -->
128 126  
129 127 These challenges made our relationship with the Ministry staff tense, in
130 128 particular during the first year, and alerted us to the fact that they could
131 129 finish the project at any time. The deployment limitation was the substantial
132 130 technical issue we could tackle in the short term. As a result, we worked to
133 131 deploy one version of the project onto our infrastructure and showed it to the
134   -government evaluators. This strategy proved them we could efficiently deliver
  132 +government evaluators. This strategy proved them we could efficiently provide
135 133 new features, fulfill their expectations regarding the delivery of the
136   -requirements, and incited them to demand that the latest version be deployed in
  134 +requirements, and incited them to demand the latest version to be deployed in
137 135 the Ministry infrastructure. This generated more pressure on the IT department
138 136 responsible for the deployment routines. With each CD cycle, we gradually built
139 137 a new relationship among all parties and, by the end of the project, we became
140 138 active participants in the deploy operations.
141 139  
  140 +<!--
  141 +In
  142 +the first year, we had a group composed of 24 undergraduate students, one
  143 +designer, and two senior developers. In 2015, our team grew to 36 students, two
  144 +designers, eight senior developers. In the end, due to budget constraints, our
  145 +team shrinked to 20 students, one designer, and two developers.
  146 +-->
142 147 ## Our Continuous Delivery Pipeline
143 148  
144   -The SPB portal is a system-of-systems with five integrated software projects.
145   -Colab (www.github.com/colab), a systems integration platform for web
146   -applications based on a plugin architecture, orchestrates communication
147   -among them. For this, we had also to develop specific plugins for each portal
148   -software component.
  149 +SPB portal was designed as a CDE with additional social features. Due to the
  150 +complexity of creating such a system from scratch, we decided to build
  151 +system-of-systems, adapting and integrating five existing OSS projects - Colab,
  152 +Noosfero, Gitlab, Mezuro, and Mailman. All integrated system represents a total
  153 +of more than XXX.XXX commits and X.XXX.XXX lines of code. We created a solution
  154 +that orchestrates multiple components and allowed us to smoothly provide a
  155 +unified interface for final users, including single sign-on and global searches [1].
149 156  
150   -<!--- Falta dados do Colab e a soma destes ao total --->
  157 +<!--
  158 +Melissa: avaliar se esse detalhamento é necessário para o texto
151 159 These software component have different levels of complexity and size. Colab
152 160 has had X commits which represent Y lines of code, Gitlab, 64.446 commits and
153 161 502.597 lines, Noosfero, 14.175 commits and 607.490 lines, Mezuro, 9.007 commits
154 162 and 217.828 lines, and, finally, Mailman with 19.101 commits and 180.871 lines.
155 163 We can thus realize, with only the sum of the integrated projects, we have a
156 164 platform that totals more than 106.729 commits and 1.508.786 lines of code.
  165 +-->
157 166  
158 167 ![The SPB Deployment Pipeline](figures/pipeline_3.png)
159 168  
160   -Figure 1 presents our CD pipeline. It follows a typical deployment pipeline
161   -[3], adapted to the technical and organizational complexity of our project and the
162   -use of OSS best practices. The pipeline started when new code arrived. A new
163   -feature might require changes to more than one SPB integrated software project.
164   -Notice that each one of them could be modified independently. As the code went
165   -through each step, it was tested and improved until it finally reached the
  169 +Figure 1 presents our CD pipeline. It follows a typical deployment pipeline [3],
  170 +adapted to the technical and organizational context of our project and the use
  171 +of OSS best practices. The pipeline started when new code arrived. As the code
  172 +went through each step, it was tested and improved until finally reaching the
166 173 production environment. At this point, we would restart the pipeline to release
167   -more versions.
  174 +new versions.
168 175  
169 176 <!---
170 177 Comentário do Fábio: A partir daqui o texto já deveria mostrar o tamanho da plataforma e trazer dados que comprovem isso.
171   -
172   -https://www.openhub.net/p/gitlab
173   -https://www.openhub.net/p/noosfero
174   -https://www.openhub.net/p/mezuro
175   -https://www.openhub.net/p/mailman
176   -
177   -
178 178 -->
179 179  
180 180 ### Automated Tests
181 181  
182   -As a software integration, the entire SPB platform, as well as each of its
183   -components need to be tested. Futhermore, the plugins developed to integrate a
184   -component has its own test suite, and this also work as integration tests.
185   -
186   -Both unit and integration tests provided us the performance and security needed
187   -to guarantee the stability of components and the platform. If any test suite
188   -failed, by either a test error or coverage reduction below a certain threshold,
189   -the process stopped. Only when all tests passed, the pipeline proceeded to the
190   -step of release preparation.
  182 +Each integrated system had to be tested with its own test suite. This was not
  183 +enough, however: we also had to test the platform as a whole. Given that the
  184 +plugins also have their own test suites and these suites assume a double role as
  185 +both plugin tests and as integration tests. These tests provided us the
  186 +performance and security needed to guarantee the stability of components and
  187 +the platform. If any test suite failed, by either a test error or coverage
  188 +reduction below a certain threshold, the process stopped. Only when all tests
  189 +passed, the pipeline proceeded to the step of release preparation.
191 190  
192 191 ### Preparing a New Release
193 192  
194   -An SPB portal release was composed of all its software component releases.
195   -Each software component release had a Git tag that referred to a specific
196   -feature or bug fix. When all tests passed for a given component, we manually
197   -created a new tag for it. Therefore, a new tag on any software component
198   -yielded a new SPB portal release. More precisely, SPB had a script that
199   -produced a single release for the entire system based on each component tag. At
200   -the end of this process, we started packaging.
  193 +Each software component was hosted in a separate Git repository. A new release
  194 +of a component was tagged with a reference to a specific new feature or bug fix.
  195 +SPB, as an integration project, had its own Git repository. An SPB portal
  196 +release was an aggregate of releases of all of its components. When a new
  197 +component release passed all of the SPB integration tests, we manually created a
  198 +corresponding new tag in its repository. Therefore, a new tag on any software
  199 +component yielded a new SPB portal release. At the end of this process, we
  200 +started packaging.
201 201  
202 202 ### Packaging
203 203  
204   -The platform runs on the CentOS 7 GNU/Linux distribution. Packaging a software
  204 +The platform runs on the CentOS 7 GNU/Linux distribution. Packaging software
205 205 for that distribution involves three steps: writing the script for the specific
206 206 environment (RPM), building the package, and uploading it to a package
207 207 repository.
208 208  
209   -We decided to create separate packages for each software component since:
210   -Packaging makes easy to manage the software on a given distribution,
211   -simplifies the deployment, follows the distribution's best practices, and
212   -enables configurations and permissions control.
  209 +We decided to create separate packages for each software component.
  210 +Packaging makes it easy to manage software in a given distribution,
  211 +simplifies deployment, follows the distribution's best practices, and
  212 +enables configuration and permission control.
213 213  
214 214 After creating a new tag for a component, the developers informed our DevOps
215   -[6] team, and the packaging process began. A set of scripts fully automated the
216   -three packaging steps aforementioned. When all them ran successfully, the new
217   -packages would be ready for our deployment scripts.
  215 +[6] team and the packaging process began. A set of scripts fully automated the
  216 +three packaging steps aforementioned. When all of them ran successfully, the new
  217 +packages would be ready and available for our deployment scripts.
218 218  
219 219 ### Validation Environment Deployment
220 220  
221 221 The Validation Environment (VE) is a replica of the Production Environment (PE)
222   -with its data anonymised, as well as only Ministry staffs and our DevOps team
223   -had access to it. To configure the environment, we used a configuration
224   -management tool named Chef (www.chef.io) with Chake support
225   -(www.github.com/terceiro/chake) -- a serverless configuration tool created by
226   -our team. It maintained environment consistency simplifying the deployment
227   -process. Additionally, the packages we built on the last step were readily
228   -available to the management tool.
  222 +with anonymised data, and access restricted to Ministry staff and our DevOps team.
  223 +To configure this environment, we used Chef (www.chef.io) and Chake, a serverless
  224 +configuration tool created by our team (www.github.com/terceiro/chake). This
  225 +maintained environment consistency, simplifying the deployment process.
229 226  
230 227 The Ministry staff used the VE to validate new features and required changes.
231 228 The VE also was used to verify the integrity of the entire portal as part of
... ... @@ -233,19 +230,18 @@ the next step in the pipeline.
233 230  
234 231 ### Acceptance Tests
235 232  
236   -After we deployed a new SPB portal version in the VE, the Ministry staffs were
237   -responsible for checking the features and bug fixes they required. If the
238   -Ministry staffs identified a problem, they would notify the developers via
239   -comments on the SPB portal's issue tracker. The development team fixed the
240   -problem and the pipeline restarted. If everything was validated, we moved
241   -forward.
  233 +After a new SPB portal deployment in the VE, the Ministry were
  234 +responsible for checking the required features and bug fixes. If they
  235 +identified a problem, they would notify the developers via
  236 +comments on the SPB portal's issue tracker, prompting the team to fix
  237 +it and restart the pipeline. Otherwise, we could move forward.
242 238  
243 239 ### Production Environment Deployment
244 240  
245   -When the Ministry staff finished the VE check, we could finally begin the
246   -deployment in production. We also used our configuration management tool, the
247   -same scripts and package versions as in the VE. After the deploy was completed,
248   -both VE and PE were identical. Here was the point where new features and bug
  241 +After the VE check, we could finally begin the
  242 +deployment in the PE, with the same configuration management tool,
  243 +scripts, and package versions as in the VE. After the deploy was completed,
  244 +both VE and PE were identical. At that point, new features and bug
249 245 fixes were finally available to end users.
250 246  
251 247 ## Benefits
... ... @@ -257,56 +253,53 @@ Working with the government, we noticed the following additional benefits.
257 253  
258 254 ### Strengthening Trust in the Relationship with the Government
259 255  
260   -CD helped to strengthen trust in the relationship between developers and
261   -Ministry staffs. Before using CD, Ministry staff had access to the features
262   -developed only at the end of the release, usually every four months.
263   -
  256 +CD helped strengthen trust in the relationship between developers and
  257 +the Ministry staff. Before using CD, they had access to the features
  258 +developed only at the end of the release cycle, usually every four months.
264 259 With the implementation of CD, intermediate and candidate versions became
265   -available, allowing Ministry staffs to perform small validations over time.
  260 +available, allowing them to perform small validations over time.
266 261 Constant monitoring of the development work brought greater security to the
267   -Ministry leaders and improved the interactions with our development team.
  262 +Ministry leaders and improved the interactions with our team.
268 263  
269 264 ### Responsiveness to Change
270 265  
271 266 Responsiveness was one of the direct benefits of adopting the CD pipeline. The
272   -ability to react quickly to changes requested by the Ministry staff was vital
273   -to the project’s survival for 30 months. Every meeting with the Ministry
274   -leaders resulted in requirements and priorities changes, several of them
275   -motivated by political needs. We observed that if we took too long to meet
276   -their demands, the Ministry would use undelivered requirements to justify cut
277   -in the financial support and cancel the project.
  267 +ability to react quickly to changes requested by the Ministry was vital to the
  268 +project’s survival for 30 months. These changes in requirements and priorities
  269 +were mostly motivated by political interests. We noticed that if we took too
  270 +long to meet their demands, they would threaten to reduce financial support and
  271 +even cancel the project.
278 272  
279 273 CD helped us keep the PE up-to-date, even with partial versions of a feature.
280   -That way, we always had something to show on meetings, reducing anxiety in
281   -getting the platform finished. For our team, it made the developers more
  274 +Therefore, we always had something to show on meetings, easying their
  275 +concerns about the final delivery of the platform.
  276 +For our team, CD made developers more
282 277 confident that the project would last a little longer.
283 278  
284 279 ### Shared Responsibility
285 280  
286 281 According to the conventional Ministry process, the development team could not
287   -track what happened to the code after its delivery, since Ministry staff were
  282 +track what happened to the code after its delivery, since their staff were
288 283 the only ones responsible for deployment. The implementation of CD made our
289 284 development team feel equally responsible for what was getting into production
290 285 and take ownership of the project.
291 286  
292 287 Interestingly, the CD pipeline had the same effect on the Ministry staff. They
293 288 became more engaged in the whole process, opening and discussing issues during
294   -platform evolution. Additionally, developers worked to improve the CD pipeline
295   -to speed up the process of making new features available in the production
296   -environment for the Ministry staff's validation.
297   -
298   -
299   -### Synchronicity Between Government and Development
300   -
301   -The CD pipeline performance depended on the synchronicity between our
302   -development team and the Ministry staffs so that the latter were prepared to
303   -start a step as soon as the former concluded the previous step and vice versa.
304   -Initially, the agenda of the Ministry staffs did not contemplate this concern,
305   -which generated delays in the validation of new features. This situation
306   -combined with governmental bureaucracy to release access to the production
307   -environment (up to 3 days) resulted in additional delays for the deployment
308   -step begin. This problem was softened when the Ministry staff realized the
309   -impact of these delays on the final product and decided to allocate the
  289 +the evolution of the platform. Additionally, developers worked to improve the CD pipeline
  290 +and speed up the process of making new features available in the production
  291 +environment.
  292 +
  293 +### Synchronization Between Government and Development
  294 +
  295 +The CD pipeline performance depended on the synchronization between our
  296 +development team and the Ministry staff: each party had to be prepared to
  297 +take action as soon as the other concluded a given task.
  298 +Initially, the Ministry staff did not contemplate this in their schedule which,
  299 +combined with the bureaucracy in providing access to the PE
  300 +(up to 3 days), resulted in significant delays in the validation of new features.
  301 +This problem was softened when they realized the
  302 +impact of these delays on the final product and decided to allocate
310 303 revisions in their work schedule.
311 304  
312 305 <!---
... ... @@ -316,15 +309,14 @@ Fabio sugeriu Lessons Learned, mas vamos mostrar exemplos da revista para ele ol
316 309 ## Lessons Learned
317 310  
318 311 Due to the successful building of the CD pipeline, we improved the Ministry
319   -deployment process and kept the project alive. We map now lessons learned.
  312 +deployment process and kept the project alive. We now look at the lessons learned.
320 313  
321 314 ### Build CD From Scratch
322 315  
323   -Taking on responsibilities for implementing CD impacted on the whole team.
324   -Mostly, our team members did not have know-how in this approach, and we had few
325   -working hours available to allocate for building the pipeline. The construction
326   -and maintenance of the CD process were possible by taking some decisions to
327   -mature the project:
  316 +Taking on the responsibility for implementing CD impacted the whole team.
  317 +Most of our team members did not have CD know-how and we had few
  318 +working hours available to build the pipeline. The construction
  319 +and maintenance of the CD process were made possible by the key decisions to:
328 320  
329 321 <!---
330 322 pensar em generalizar/filosofar
... ... @@ -332,53 +324,56 @@ pensar em generalizar/filosofar
332 324  
333 325 1. _Select the most experienced senior developers and some advanced students of
334 326 the project to work on a specific DevOps team._These senior developers used
335   -their experiences in OSS projects to craft an initial proposal for the
  327 +their experience in OSS projects to craft an initial proposal for the
336 328 deployment process. The solution enabled us to automate the deployment, even
337 329 though the process was, initially, still rudimentary.
338 330  
339 331 2. _Interchange team members and encourage teammates to migrate to the DevOps
340   -team._ The benefits of these movements were twofold: mitigating the difficulty
341   -to transmit the knowledge between DevOps developers and feature developers, and
  332 +team._ The benefits were twofold: mitigating the difficulty
  333 +in sharing knowledge between DevOps developers and feature developers, and
342 334 evolving the process on-the-fly.
343 335  
344 336 ### Overcoming Mistrust
345 337  
346   -Taking an unfamiliar approach requires trust. In the Ministry, traditional
347   -software was the product delivered at the end of a development contract. They
348   -expected and were prepared to validate and deploy a single delivery. Because
349   -the SPB portal is a system-of-systems, the steady growth of its complexity made
350   -large deliveries unsustainable. The long time for homologation of developed
351   -features also gave the government room to change requirements and priorities.
352   -The CD approach was necessary, but how to build trust and gain autonomy to
353   -implement a process that was not yet part of the dynamics of the Ministry?
  338 +<!-- Precisa 'dessuavizar' o porque das mudanças de requisitos - a motivação para ela não era tão natural como as que ocorrem em métodos ágeis -->
  339 +Taking an unfamiliar approach requires trust. In the Ministry, traditionally,
  340 +software was the product delivered at the end of a development contract; they
  341 +expected and were prepared to validate and deploy a single deliverable. This
  342 +was not adequate for the SPB: because the SPB portal is a system-of-systems,
  343 +the steady growth of its complexity made large deliveries unsustainable; the
  344 +fluid nature of how people use and interact with it brings the need to change
  345 +requirements and priorities. Therefore, the CD approach was necessary, but how
  346 +to build trust and gain autonomy to implement a process that was not yet part
  347 +of the dynamics of the Ministry?
354 348  
355 349 1. _Demonstrate actual results, do not simply tell._ Initially, we did not have
356 350 access to the Ministry infrastructure, so we created our own validation
357   -environment. Thus, we were able to follow the CD pipeline until the stage of
  351 +environment. Thus, we were able to follow the CD pipeline until
358 352 production deployment, when we faced two problems. First, our pace of
359   -intermediate deliveries to the government was faster than the deployment in
  353 +intermediate deliveries to the government was faster than the deployment to
360 354 production by the Ministry staff. Second, specific issues of the Ministry
361 355 infrastructure made some validated features not work as expected in the PE.
362   -That situation gave us arguments to negotiate access to production.
  356 +That situation gave us arguments to negotiate access to the PE.
363 357  
364 358 2. _Make project management transparent and collaborative for government
365   -staff._ Allowing the Ministry staff to follow our process for version
366   -deliveries and bug fixes, we showed them we were fulfilling our commitments.
367   -They started to interact more actively in the generation of versions and became
368   -part of the process. After understanding the process, the Ministry staff helped
369   -us in negotiations with the Ministry leaders. Finally, they created a VE as an
370   -isolated replica of the PE and gave us access to it.
371   -
372   -3. _Gain the confidence of government staff._ With the replica of the PE, we
373   -were able to run the entire pipeline and won the trust of the Ministry staff
  359 +staff._ Allowing the Ministry staff to track our development process showed them
  360 +we were fulfilling our commitments. They started to interact more actively in
  361 +the generation of versions and became involved in the CD. After understanding it,
  362 +the Ministry staff helped us negotiate access to a VE with the Ministry leaders,
  363 +creating as an isolated replica of the PE.
  364 +
  365 +3. _Gain the confidence of government staff._ With the PE replica, we
  366 +were able to run the entire pipeline and win the trust of the Ministry staff
374 367 involved in the process. They saw the mobilization and responsiveness of our
375   -team to generate a new version package. They also recognized the quality of our
376   -packages and our deployment process. Finally, the Ministry staff then realized
377   -that it could be beneficial for the project if they granted us access to the
  368 +team to generate each new version package. They also recognized the quality of our
  369 +work and deployment process. In the end, the Ministry staff realized
  370 +that it would be beneficial for the project if they granted us access to the
378 371 infrastructure, both VE and PE.
379 372  
380 373 <!---
381   -Paulo: Acho que precisamos de algo ligado ao Ha-Ha-moment para fechar o texto aqui; ou fechar falando que tudo foi feito de forma aberta e colaborativa com as comunidades dos projetos envolvidos, estão todos os fontes disponíveis em https://softwarepublico.gov.br/gitlab/softwarepublico/
  374 +Paulo: Acho que precisamos de algo ligado ao Ha-Ha-moment para fechar o texto aqui; ou fechar falando que tudo foi feito de forma aberta e colaborativa com as comunidades dos projetos envolvidos, estão todos os fontes disponíveis em https://softwarepublico.gov.br/gitlab/softwarepublico/
  375 +
  376 +Melissa: Acho que não temos perna, mas podemos usar o gráfico como ah-ha
382 377 -->
383 378  
384 379 ## References
... ...