Commit 4617497c73fb90ed58c7e4ebc6b388587e5bc515

Authored by Melissa Wen
1 parent 532751ea

[i3eSW] Rechecking Fabio's comments

ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
1 --- 1 ---
2 -title: "Continuous Delivery: Building Trust in a Large-scale, Complex Government Organization" 2 +title: "Continuous Delivery: Building Trust in a Large-scale, complex government organization"
3 papersize: a4 3 papersize: a4
4 geometry: "left=1in,right=1.5in" 4 geometry: "left=1in,right=1.5in"
5 --- 5 ---
@@ -33,6 +33,7 @@ __Fabio Kon__ is Full Professor of the Department of Computer Science of the @@ -33,6 +33,7 @@ __Fabio Kon__ is Full Professor of the Department of Computer Science of the
33 University of São Paulo. (...) .His research interest areas are: (...). Contact 33 University of São Paulo. (...) .His research interest areas are: (...). Contact
34 him at fabio.kon@ime.usp.br. 34 him at fabio.kon@ime.usp.br.
35 35
  36 +<!-- Fabio: Esse resumo está não usual porque ele não resume o que o artigo apresenta. Ele serve como uma motivação apenas. Mas talvez podemos deixar assim pra ver o que acontece -->
36 ## Abstract 37 ## Abstract
37 38
38 For many software development teams, the first aspects that come to mind 39 For many software development teams, the first aspects that come to mind
@@ -46,7 +47,7 @@ overcome them. @@ -46,7 +47,7 @@ overcome them.
46 ## Introduction 47 ## Introduction
47 48
48 From 2014 to 2016, we were part of a team that worked on a thirty-month-long 49 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 +Brazilian government project to modernize the Brazilian Public Software (SPB)
50 portal (www.softwarepublico.gov.br) [1]. This project was a partnership between 51 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 the Ministry of Planning, Budget, and Management and two public universities:
52 University of Brasília and University of São Paulo. 53 University of Brasília and University of São Paulo.
@@ -106,7 +107,7 @@ development collaboration between universities and the Ministry staff involved, @@ -106,7 +107,7 @@ development collaboration between universities and the Ministry staff involved,
106 raising disbelief. 107 raising disbelief.
107 108
108 Secondly, our team approached software deployment differently from the 109 Secondly, our team approached software deployment differently from the
109 -Ministry. We believed frequent delivery is better for the project’s success. 110 +Ministry. We believed frequent delivery is better for the project’s success.
110 In contrast, the Ministry is used to the idea of a single deployment at the end 111 In contrast, the Ministry is used to the idea of a single deployment at the end
111 of the project, and neither their bureaucratic structure nor their technical 112 of the project, and neither their bureaucratic structure nor their technical
112 expertise were conducive with this style of work. That ended up hampering the 113 expertise were conducive with this style of work. That ended up hampering the
@@ -122,8 +123,8 @@ technical issue we could tackle in the short term. As a result, we worked to @@ -122,8 +123,8 @@ technical issue we could tackle in the short term. As a result, we worked to
122 deploy one version of the project onto our infrastructure and showed it to the 123 deploy one version of the project onto our infrastructure and showed it to the
123 government evaluators. This strategy proved them we could efficiently provide 124 government evaluators. This strategy proved them we could efficiently provide
124 new features, fulfill their expectations regarding the delivery of the 125 new features, fulfill their expectations regarding the delivery of the
125 -requirements, and incited them to demand the latest version to be deployed in  
126 -the Ministry infrastructure. This efficiency generated more pressure on the IT 126 +requirements, and incited them to demand that the latest version be deployed in
  127 +the Ministry infrastructure. This generated more pressure on the IT
127 department responsible for the deployment routines. With each CD cycle, we 128 department responsible for the deployment routines. With each CD cycle, we
128 gradually built a new relationship among all parties and, by the end of the 129 gradually built a new relationship among all parties and, by the end of the
129 project, we became active participants in the deploy operations. 130 project, we became active participants in the deploy operations.
@@ -146,12 +147,14 @@ practices, as presented in Figure 1. It started when new code arrived; and when @@ -146,12 +147,14 @@ practices, as presented in Figure 1. It started when new code arrived; and when
146 it reach the production environment, we would restart the pipeline to release 147 it reach the production environment, we would restart the pipeline to release
147 new versions. 148 new versions.
148 149
  150 +<!-- Fabio: Neste ponto eu já gostaria de ter uma ideia do tamanho do sistema [..] eu gostaria de ter outros números como linhas de código [x], quantidade de componentes[x], usuários desenvolvedores esperados[Temos acesso?], etc.-->
  151 +
149 ### Automated Tests 152 ### Automated Tests
150 153
151 Each integrated system had to be tested with its own test suite. This checking 154 Each integrated system had to be tested with its own test suite. This checking
152 was not enough, however: we even had to test the platform as a whole. Given 155 was not enough, however: we even had to test the platform as a whole. Given
153 that the plugins also have their own test suites and these suites assume a 156 that the plugins also have their own test suites and these suites assume a
154 -double role as both plugin tests and as integration tests. If any test suite 157 +double role as both plugin tests and as integration tests. If any test suite
155 failed, by either a test error or coverage reduction below a certain threshold, 158 failed, by either a test error or coverage reduction below a certain threshold,
156 the process stopped. Only when all tests passed, the pipeline proceeded to the 159 the process stopped. Only when all tests passed, the pipeline proceeded to the
157 step of release preparation. 160 step of release preparation.
@@ -172,9 +175,9 @@ this process, we started packaging. @@ -172,9 +175,9 @@ this process, we started packaging.
172 After creating a new tag for a system, DevOps team starts the packaging process. 175 After creating a new tag for a system, DevOps team starts the packaging process.
173 Packaging brings portability, simplifies deployment, and enables configuration 176 Packaging brings portability, simplifies deployment, and enables configuration
174 and permission control. Our packaging software approach involves building 177 and permission control. Our packaging software approach involves building
175 -separate packages for each system in three steps: writing the script for the 178 +separate packages for each system, in three steps: writing the script for the
176 specific environment, building the package, and uploading it to a package 179 specific environment, building the package, and uploading it to a package
177 -repository. A set of scripts fully automated these steps. When all of them ran 180 +repository. A set of scripts fully automated these steps. When all them ran
178 successfully, the new packages would be ready and available for our deployment 181 successfully, the new packages would be ready and available for our deployment
179 scripts. 182 scripts.
180 183
@@ -192,13 +195,13 @@ simplifying the deployment process. @@ -192,13 +195,13 @@ simplifying the deployment process.
192 After a new SPB portal deployment in the VE, we used the environment to verify 195 After a new SPB portal deployment in the VE, we used the environment to verify
193 the integrity of the entire portal. In this step, Ministry staff also checked 196 the integrity of the entire portal. In this step, Ministry staff also checked
194 the new features, required changes and bug fixes. If they identified a problem, 197 the new features, required changes and bug fixes. If they identified a problem,
195 -they would notify the developers via comments on the SPB portal's issue tracker, 198 +they would notify the developers via comments on the SPB portal issue tracker,
196 prompting the team to fix it and restart the pipeline. Otherwise, we could move 199 prompting the team to fix it and restart the pipeline. Otherwise, we could move
197 forward. 200 forward.
198 201
199 ### Production Environment Deployment 202 ### Production Environment Deployment
200 203
201 -After the VE check, we could finally begin the deployment in the PE, with the 204 +After the VE check, we could finally begin the deployment in production, with the
202 same configuration management tool, scripts, and package versions as in the VE. 205 same configuration management tool, scripts, and package versions as in the VE.
203 After the deploy was completed, both VE and PE were identical. At that point, 206 After the deploy was completed, both VE and PE were identical. At that point,
204 new features and bug fixes were finally available to end users. 207 new features and bug fixes were finally available to end users.
@@ -220,9 +223,9 @@ following additional benefits. @@ -220,9 +223,9 @@ following additional benefits.
220 223
221 CD helped strengthen trust in the relationship between developers and the 224 CD helped strengthen trust in the relationship between developers and the
222 Ministry staff. Before using CD, they could validate features developed only at 225 Ministry staff. Before using CD, they could validate features developed only at
223 -the end of the release cycle, usually every four months. With the 226 +the end of the release cycle, usually every four months. With the
224 implementation of CD, intermediate and candidate versions became available, 227 implementation of CD, intermediate and candidate versions became available,
225 -allowing them to perform small validations over time. Constant monitoring of 228 +allowing them to perform small validations over time. Constant monitoring of
226 the development work brought greater security to the Ministry leaders and 229 the development work brought greater security to the Ministry leaders and
227 improved the interactions with our team. 230 improved the interactions with our team.
228 231
@@ -258,7 +261,7 @@ production environment. @@ -258,7 +261,7 @@ production environment.
258 261
259 The CD pipeline performance depended on the synchronization between our 262 The CD pipeline performance depended on the synchronization between our
260 development team and the Ministry staff: each party had to be prepared to take 263 development team and the Ministry staff: each party had to be prepared to take
261 -action as soon as the other concluded a given task. Initially, the Ministry 264 +action as soon as the other concluded a given task. Initially, the Ministry
262 staff did not contemplate this in their schedule which, combined with the 265 staff did not contemplate this in their schedule which, combined with the
263 bureaucracy in providing access to the PE (up to 3 days), resulted in 266 bureaucracy in providing access to the PE (up to 3 days), resulted in
264 significant delays in the validation of new features. The use of an explicit CD 267 significant delays in the validation of new features. The use of an explicit CD
@@ -277,7 +280,7 @@ learned. @@ -277,7 +280,7 @@ learned.
277 280
278 ### Build CD From Scratch 281 ### Build CD From Scratch
279 282
280 -Taking on the responsibility for implementing CD impacted the whole team. Most 283 +Taking on the responsibility for implementing CD impacted the whole team. Most
281 of our team members did not have CD know-how, and we had few working hours 284 of our team members did not have CD know-how, and we had few working hours
282 available to build the pipeline. The construction and maintenance of the CD 285 available to build the pipeline. The construction and maintenance of the CD
283 process were made possible by the key decisions to: 286 process were made possible by the key decisions to:
@@ -295,15 +298,19 @@ process on-the-fly. @@ -295,15 +298,19 @@ process on-the-fly.
295 298
296 ### Overcoming Mistrust 299 ### Overcoming Mistrust
297 300
298 -Adopting an unfamiliar approach requires trust. Ministry staff, traditionally, expected and were prepared to validate and deploy a single deliverable. However, the steady growth of SPB complexity made large deliveries unsustainable. The CD approach was necessary. Therefore, we use the following approaches to made this new dynamic in the Ministry possible: 301 +Adopting an unfamiliar approach requires trust. Ministry staff, traditionally,
  302 +expected and were prepared to validate and deploy a single deliverable. However,
  303 +the steady growth of SPB complexity made large deliveries unsustainable. The CD
  304 +approach was necessary. Therefore, we use the following approaches to made this
  305 +new dynamic in the Ministry possible:
299 306
300 1. _Demonstrate actual results, do not simply tell._ Initially, we did not have 307 1. _Demonstrate actual results, do not simply tell._ Initially, we did not have
301 access to the Ministry infrastructure, so we created our own validation 308 access to the Ministry infrastructure, so we created our own validation
302 -environment. Thus, we were able to follow the CD pipeline until production 309 +environment. Thus, we were able to follow the CD pipeline until production
303 deployment, when we faced two problems. First, our pace of intermediate 310 deployment, when we faced two problems. First, our pace of intermediate
304 deliveries to the government was faster than the deployment to production by 311 deliveries to the government was faster than the deployment to production by
305 the Ministry staff. Second, specific issues of the Ministry infrastructure made 312 the Ministry staff. Second, specific issues of the Ministry infrastructure made
306 -some validated features not work as expected in the PE. That situation gave us 313 +some validated features not work as expected in the PE. That situation gave us
307 arguments to negotiate access to the PE. 314 arguments to negotiate access to the PE.
308 315
309 2. _Make project management transparent and collaborative for government 316 2. _Make project management transparent and collaborative for government