Commit 7ded138ccf0ef036733663024c490bf5f7219afc

Authored by Rodrigo Siqueira de Melo
1 parent a15978eb

Revisão com o Nelson

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