Commit 2c513948401f95606ccf4baa04969210e7905f28
1 parent
614bbeec
Exists in
master
and in
3 other branches
Review from all authors
Showing
1 changed file
with
190 additions
and
208 deletions
Show diff stats
ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
| 1 | 1 | --- |
| 2 | 2 | title: | |
| 3 | - | __Continuous Delivery__ | |
| 4 | - | Building Trust in a Large-scale, Complex Government Organization | |
| 3 | + | __Continuous Delivery:__ | |
| 4 | + | Building Trust in a Large-scale, Complex | |
| 5 | + | Government Organization | |
| 5 | 6 | papersize: a4 |
| 6 | 7 | geometry: "left=1in,right=1.5in" |
| 7 | 8 | --- |
| 8 | 9 | |
| 9 | 10 | ## Authors |
| 10 | 11 | |
| 11 | -__Rodrigo Siqueira__ is a masters student at IME - The Institute of Mathematics | |
| 12 | -and Statistics of the Sao Paulo University. His research interests include | |
| 13 | -software engineering, operating system and computer architecture. He worked for | |
| 14 | -two years with the Brazilian federal government as a coach and developer. | |
| 15 | -Contact him at siqueira@ime.usp.br. | |
| 16 | - | |
| 17 | -__Diego Camarinha__ is a masters student at IME - The Institute of Mathematics | |
| 18 | -and Statistics of the Sao Paulo University. His research interests include | |
| 19 | -software engineering, computer networks and source code metrics. He worked for | |
| 20 | -two years with the Brazilian federal government as a senior developer. Contact | |
| 21 | -him at diegoamc@ime.usp.br. | |
| 22 | - | |
| 23 | -__Melissa Wen__ is a software developer. She worked on SPB project as a senior | |
| 24 | -developer and also served as professor of Computer Science at UFBA - The Federal | |
| 25 | -University of Bahia. Her areas of interest include software engineering and open | |
| 26 | -source software development. Contact her at melissa.srw@gmail.com . | |
| 27 | - | |
| 28 | -__Paulo Meirelles__ received his Ph.D. in Computer Science from the Institute of | |
| 29 | -Mathematics and Statistics at the University of São Paulo. He is full-time | |
| 30 | -Professor at the University of Brasilia, and coordinated the new SPB portal | |
| 31 | -project. His research interest areas are: Free Software, Agile methods, Static | |
| 32 | -analysis, and Source code metrics. Contact him at paulormm@ime.usp.br. | |
| 33 | - | |
| 34 | -__Fabio Kon__ is Full Professor of the Department of Computer Science of the | |
| 35 | -University of São Paulo. (...) .His research interest areas are: (...). Contact | |
| 36 | -him at fabio.kon@ime.usp.br. | |
| 37 | - | |
| 38 | -<!-- 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 --> | |
| 12 | +__Rodrigo Siqueira__ is a Computer Science MSc student at the Institute of | |
| 13 | +Mathematics and Statistics of the University of São Paulo (IME-USP). His | |
| 14 | +research interests include software engineering, operating system, and computer | |
| 15 | +architecture. He worked for two years with the Brazilian federal government as | |
| 16 | +a coach and developer. Contact him at siqueira@ime.usp.br. | |
| 17 | + | |
| 18 | +__Diego Camarinha__ is a CS MSc masters student at IME-USP. His research | |
| 19 | +interests include software engineering, computer networks, and source code | |
| 20 | +metrics. He worked for two years with the Brazilian federal government as a | |
| 21 | +senior developer. Contact him at diegoamc@ime.usp.br. | |
| 22 | + | |
| 23 | +__Melissa Wen__ is a software developer. She worked on the SPB project as a | |
| 24 | +senior developer and also served as a Computer Science lecturer at the Federal | |
| 25 | +University of Bahia. Her areas of interest include software engineering and | |
| 26 | +open source software development. Contact her at melissa.srw@gmail.com. | |
| 27 | + | |
| 28 | +__Paulo Meirelles__ received his Ph.D. in Computer Science from IME-USP. He is | |
| 29 | +a full-time Professor at the University of Brasilia and coordinated the new SPB | |
| 30 | +portal project. His research interests are: Free Software, Agile methods, | |
| 31 | +Static analysis, and Source code metrics. Contact him at paulormm@ime.usp.br. | |
| 32 | + | |
| 33 | +__Fabio Kon__ is a Full Professor of Computer Science at IME-USP and | |
| 34 | +Editor-in-Chief of the SpringerOpen Journal of Internet Services and | |
| 35 | +Applications. His research interests include Agile Software Development, Smart | |
| 36 | +Cities, and Distributed Systems. Contact him at fabio.kon@ime.usp.br. | |
| 37 | + | |
| 39 | 38 | ## Abstract |
| 40 | 39 | |
| 41 | 40 | For many software development teams, the first aspects that come to mind |
| 42 | 41 | regarding Continuous Delivery (CD) are the operational challenges and the |
| 43 | 42 | competitive benefits. In our experience, CD was much more: it was a survival |
| 44 | -technique. This article presents how and why we applied CD in a large Brazilian | |
| 45 | -government project for the development of a Collaborative Development | |
| 46 | -Environment (CDE), sharing the challenges we faced and the strategies used to | |
| 47 | -overcome them. ( >> FECHAR COM FRASE DE IMPACTO <<<). | |
| 43 | +technique. This article presents how and why we applied CD in a large | |
| 44 | +governmental project for the development of a Collaborative Development | |
| 45 | +Environment. We share the challenges we faced and the strategies we used to | |
| 46 | +overcome them. The article concludes with a set of lessons learned that can be | |
| 47 | +valuable for readers in a variety of situations. | |
| 48 | 48 | |
| 49 | 49 | ## Introduction |
| 50 | 50 | |
| 51 | -From 2014 to 2016, we were part of a team that worked on a thirty-month-long | |
| 52 | -Brazilian government project to modernize the Brazilian Public Software (SPB) | |
| 53 | -portal (www.softwarepublico.gov.br) [1]. This project was a partnership between | |
| 54 | -the Ministry of Planning, Budget, and Management and two public universities: | |
| 51 | +From 2014 to 2016, we worked on a thirty-month-long Brazilian government | |
| 52 | +project to modernize the Brazilian Public Software (SPB) portal | |
| 53 | +(www.softwarepublico.gov.br) [1]. This project was a partnership between the | |
| 54 | +_Ministry of Planning, Budget, and Management_ and two public universities: | |
| 55 | 55 | University of Brasília and University of São Paulo. |
| 56 | 56 | |
| 57 | 57 | During this time, the SPB portal evolved into a Collaborative Development |
| 58 | -Environment (CDE) which brought significant benefits for the government and the | |
| 59 | -society: The government could minimize bureaucracy and software development | |
| 58 | +Environment (CDE), which brought significant benefits for the government and | |
| 59 | +the society. The government could minimize bureaucracy and software development | |
| 60 | 60 | costs, by reusing the same set of applications across different government |
| 61 | -agencies; society could more transparently follow government expenses and | |
| 61 | +Agencies. Society could more transparently follow government expenses and | |
| 62 | 62 | contribute to project communities. |
| 63 | 63 | |
| 64 | 64 | In this article, we discuss the use of Continuous Delivery (CD) during our |
| 65 | -experience as the academic partner in this project. We focus on how we managed | |
| 66 | -to implement CD in a large institution with traditional values and how CD | |
| 67 | -helped to build trust between the government and the university development | |
| 68 | -team. CD enabled us to show our progress and to earn the government’s | |
| 69 | -confidence that we could adequately fulfill their requests, becoming an | |
| 70 | -essential aspect of our interaction with them. According to this experience, | |
| 71 | -the use of CD as a tool to build such trust relationships is yet another of its | |
| 72 | -benefits [2,3]. | |
| 65 | +experience as the academic partner in this project. We show how we implemented | |
| 66 | +CD in a large institution with traditional, waterfall-like values and how CD | |
| 67 | +helped to build trust between the government and the university team. CD | |
| 68 | +enabled us to show our progress and to earn the government’s confidence that we | |
| 69 | +could adequately fulfill their requests, becoming an essential aspect of our | |
| 70 | +interaction. According to this experience, the use of CD as a tool to build | |
| 71 | +trust relationships is yet another of its benefits [2,3]. | |
| 73 | 72 | |
| 74 | 73 | ## Context |
| 75 | 74 | |
| 76 | 75 | SPB is a governmental program created to foster sharing and collaboration on |
| 77 | 76 | Open Source Software (OSS) development for the Brazilian public administration. |
| 78 | -In their own projects, the Ministry managed both software requirements and | |
| 79 | -server infrastructure. However, its hierarchical and traditional processes made | |
| 80 | -them unfamiliar with new software development techniques, such as CD. Any of | |
| 81 | -our requests had to pass through layers of bureaucracy before being answered; | |
| 82 | -accessing their infrastructure to deploy updated software was not different. | |
| 83 | -The difficulties were aggravated because the new SPB portal is an unprecedented | |
| 84 | -platform in the Brazilian government, with a complicated deployment process [4]. | |
| 85 | - | |
| 86 | -The project suffered significant interference from the board of directors | |
| 77 | +The ministry managed both software requirements and server infrastructure. | |
| 78 | +However, its hierarchical and traditional processes made them unfamiliar with | |
| 79 | +new software development techniques, such as CD. All our requests had to pass | |
| 80 | +through layers of bureaucracy before being answered; accessing their | |
| 81 | +infrastructure to deploy software was not different. The difficulties were | |
| 82 | +aggravated because the new SPB portal is an unprecedented platform in the | |
| 83 | +Brazilian government, with a complicated deployment process [4]. | |
| 84 | + | |
| 85 | +The project suffered significant interference from the Board of Directors | |
| 87 | 86 | throughout time because the portal represents an interface between government |
| 88 | 87 | and society. In light of political interests, directors continually imposed |
| 89 | -changes to the platform while ignoring our technical advice. In 2015, the board | |
| 90 | -of directors was changed and, with it, the vision of the project. New directors | |
| 91 | -had different political agendas which affected the project's requirements | |
| 88 | +changes to the platform while ignoring our technical advice. In 2015, the Board | |
| 89 | +of Directors was changed and, with it, the vision of the project. New directors | |
| 90 | +had different political agendas, which affected the project's requirements | |
| 92 | 91 | previously approved. |
| 93 | 92 | |
| 94 | -<!--- | |
| 95 | -mudar em todas as ocorrências de agents por staff, mas checar com o Fabio. | |
| 96 | ---> | |
| 97 | - | |
| 98 | -In this context, we overcame two distinct challenges: (1) deconstructing | |
| 99 | -the widespread belief among government staff that any project in partnership | |
| 100 | -with a University is doomed to fail, and (2) dealing with bureaucracies | |
| 101 | -involved in the Ministry deployment process. | |
| 93 | +In this context, we overcame two distinct challenges: (1) deconstructing the | |
| 94 | +widespread belief among government staff that any project in partnership with a | |
| 95 | +University is doomed to fail, and (2) dealing with bureaucracies involved in | |
| 96 | +the government deployment process. | |
| 102 | 97 | |
| 103 | -First, our development team was not from a typical company, consisting mainly | |
| 104 | -of undergraduate interns supported by senior developers and designers, all | |
| 98 | +First, our development team was not the typical one, consisting mainly of | |
| 99 | +undergraduate interns supported by senior developers and designers, all | |
| 105 | 100 | coordinated by two professors. Our unconventional team structure and |
| 106 | -organization might be considered as "unprofessional" by Ministry standards with | |
| 107 | -regard to time and resource allocation, accountability, and team continuity . | |
| 101 | +organization was considered as "unprofessional" by ministry standards with | |
| 102 | +regard to time and resource allocation, accountability, and team continuity. | |
| 108 | 103 | On the government side, the SPB portal evolution was the first software |
| 109 | -development collaboration involving universities and the Ministry staff, | |
| 104 | +development collaboration involving universities and the ministry staff, | |
| 110 | 105 | raising disbelief. |
| 111 | 106 | |
| 112 | 107 | Second, our team approached software deployment differently from the |
| 113 | -Ministry. We believed frequent delivery is better for the project’s success. | |
| 114 | -In contrast, the Ministry is used to the idea of a single deployment at the end | |
| 108 | +government. We believed frequent delivery is better for the project’s success. | |
| 109 | +In contrast, the ministry is used to the idea of a single deployment at the end | |
| 115 | 110 | of the project, and neither their bureaucratic structure nor their technical |
| 116 | -expertise was conducive to this style of work. That ended up hampering the | |
| 117 | -benefits of the tool and preventing us from showing off the fruits of the | |
| 118 | -project to those responsible for evaluating it. | |
| 111 | +expertise was conducive to this style of work. That was hampering the benefits | |
| 112 | +of the tool and preventing us from showing off the fruits of the project to | |
| 113 | +those responsible for evaluating it. | |
| 119 | 114 | |
| 120 | 115 | <!-- AHA Moment!!!!! --> |
| 121 | 116 | |
| 122 | -These challenges made our relationship with the Ministry staff tense, in | |
| 123 | -particular during the first year, and alerted us to the fact that they could | |
| 124 | -cancel the project at any time. The deployment limitation was the substantial | |
| 125 | -technical issue we could tackle in the short term. As a result, we worked to | |
| 126 | -deploy one version of the project onto our infrastructure and showed it to the | |
| 127 | -government evaluators. This strategy proved them we could efficiently provide | |
| 128 | -new features, fulfill their expectations regarding the delivery of the | |
| 129 | -requirements, and incited them to demand that the latest version be deployed in | |
| 130 | -the Ministry infrastructure. Our CD approach generated more pressure on the IT | |
| 131 | -department responsible for the deployment routines. With each CD cycle, we | |
| 132 | -gradually built a new relationship among all parties and, by the end of the | |
| 133 | -project, we became active participants in the deploy operations. | |
| 117 | +These challenges made our relationship with their staff strained, in particular | |
| 118 | +during the first year, and alerted us to the fact that they could cancel the | |
| 119 | +project at any time. The deployment limitation was the substantial technical | |
| 120 | +issue we could tackle in the short term. Thus, we worked to deploy the software | |
| 121 | +into our infrastructure and showed it to the government evaluators. This | |
| 122 | +strategy proved them we could efficiently provide new features, fulfill their | |
| 123 | +requirement delivery expectations, and incited them to demand that the latest | |
| 124 | +version be deployed in their infrastructure. Our CD approach generated more | |
| 125 | +pressure on the IT department responsible for the deployment routines. With | |
| 126 | +each CD cycle, we gradually built a new relationship among all parties and, by | |
| 127 | +the end of the project, we became active participants in the deploy operations | |
| 128 | +delivering quality software very frequently. | |
| 134 | 129 | |
| 135 | 130 | ## Our Continuous Delivery Pipeline |
| 136 | 131 | |
| 137 | -SPB portal is a CDE with additional social features, having 83 software | |
| 138 | -communities and 6,460 users, mostly government employees. We built | |
| 139 | -system-of-systems adapting and integrating five existing OSS projects: Colab | |
| 140 | -(www.github.com/colab), Noosfero (www.noosfero.org), Gitlab (www.gitlab.com), | |
| 141 | -Mezuro (www.mezuro.org), and | |
| 142 | -Mailman (www.list.org). Colab orchestrates these multiple systems using a | |
| 143 | -plugin architecture and allows us to smoothly provide a unified interface for | |
| 144 | -final users, including single sign-on and global searches [1]. All these | |
| 145 | -integrated systems represents a total of 106.253 commits and 1.347.421 lines of | |
| 146 | -code. | |
| 132 | +The SPB portal is an open CDE with additional social features, having 83 | |
| 133 | +software communities and 6,460 user accounts, mostly from government employees. | |
| 134 | +We built a system-of-systems [5] adapting and integrating five existing OSS | |
| 135 | +projects: Colab (www.github.com/colab), Noosfero (www.noosfero.org), Gitlab | |
| 136 | +(www.gitlab.com), Mezuro (www.mezuro.org), and Mailman (www.list.org). Colab | |
| 137 | +orchestrates these multiple systems using a plugin architecture and allowed us | |
| 138 | +to smoothly provide a unified interface to final users, including SSO and | |
| 139 | +global searches [1]. All these integrated systems involve a total of 106,253 | |
| 140 | +commits and 1,347,421 lines of code. | |
| 147 | 141 | |
| 148 | 142 |  |
| 149 | 143 | |
| 150 | -The portal deployment follows a typical CD pipeline [5], adapted to the | |
| 151 | -technical and organizational context of our project and the use of OSS best | |
| 152 | -practices, as presented in Figure 1. It started when new code arrived; and when | |
| 153 | -it reaches the production environment, we would restart the pipeline to release | |
| 154 | -new versions. | |
| 144 | +Portal deployment follows a typical CD pipeline [6], adapted to our technical | |
| 145 | +and organizational context and the use of OSS best practices. As depicted in | |
| 146 | +Figure 1, it begins when a new feature is ready for deployment and ends when it | |
| 147 | +reaches production. | |
| 148 | + | |
| 155 | 149 | |
| 156 | 150 | ### Automated Tests |
| 157 | 151 | |
| 158 | -In practice, each integrated system is a Colab plugin and had to be tested with | |
| 159 | -its own test suite. However, this checking was not enough: we also had to test | |
| 160 | -the platform as a whole. Since the plugins have their own test suites, they | |
| 161 | -also assume a double role as both plugin tests and as integration tests. If any | |
| 162 | -test suite failed, by either a test error or coverage reduction below a certain | |
| 163 | -threshold, the process stopped. Only when all tests passed, the pipeline | |
| 164 | -proceeded to the step of release preparation. | |
| 152 | +Each integrated system is a Colab plugin and had to be tested with its own test | |
| 153 | +suite. In addition, we also had to test the platform as a whole. Since the | |
| 154 | +plugins have their own test suites, they also assume a double role as both | |
| 155 | +plugin tests and as integration tests. If any test suite failed, by either a | |
| 156 | +test error or coverage reduction below a certain threshold, the process | |
| 157 | +stopped. Only when all tests passed, the pipeline proceeded to the next step. | |
| 165 | 158 | |
| 166 | 159 | ### Preparing a New Release |
| 167 | 160 | |
| 168 | -Each software component was hosted in a separate Git repository. A new component | |
| 169 | -release was tagged referencing a specific new feature or bug fix. SPB | |
| 170 | -had its own Git repository (www.softwarepublico.gov.br/gitlab/softwarepublico). | |
| 171 | -An SPB portal release was an aggregate of versions of all its components. | |
| 172 | -When a new component release passed all of the SPB integration tests, we | |
| 173 | -manually created a corresponding new tag in its repository. Therefore, a new | |
| 174 | -tag on any software component yielded a new SPB portal release. At the end of | |
| 175 | -this process, we started packaging. | |
| 161 | +A separate Git repository hosted each software component. New component | |
| 162 | +releases were tagged referencing a specific new feature or bug fix. SPB had its | |
| 163 | +own Git repository (www.softwarepublico.gov.br/gitlab/softwarepublico). An SPB | |
| 164 | +portal release was an aggregate of all its components. When a new component | |
| 165 | +release passed all of the SPB integration tests, we manually created a | |
| 166 | +corresponding new tag in its repository. At the end of this process, we started | |
| 167 | +packaging. | |
| 176 | 168 | |
| 177 | 169 | ### Packaging |
| 178 | 170 | |
| 179 | -After creating a new tag for a system, our DevOps team starts the packaging | |
| 180 | -process. Packaging brings portability, simplifies deployment, and enables | |
| 181 | -configuration and permission control. Our packaging software approach involves | |
| 182 | -building separate packages for each system, in three steps: writing the script | |
| 183 | -for the specific environment, building the package, and uploading it to a | |
| 184 | -package repository. A set of scripts fully automated these steps. When all them | |
| 185 | -ran successfully, the new packages would be ready and available for our | |
| 186 | -deployment scripts. | |
| 171 | +After creating a new tag, our DevOps team started the packaging process. | |
| 172 | +Packaging brings portability, simplifies deployment, and enables configuration | |
| 173 | +and permission control. Our approach involved building separate packages for | |
| 174 | +each system, in three fully automated steps: generating scripts for the | |
| 175 | +specific environment, building the package, and uploading it to a package | |
| 176 | +repository. When all ran successfully, the new packages would be ready and | |
| 177 | +available for our deployment scripts. | |
| 187 | 178 | |
| 188 | -### Validation Environment Deployment | |
| 179 | +### Validation Environment | |
| 189 | 180 | |
| 190 | 181 | The Validation Environment (VE) is a replica of the Production Environment (PE) |
| 191 | -with anonymised data, and access restricted to Ministry staff and our DevOps | |
| 182 | +with anonymised data, and access restricted to ministry staff and our DevOps | |
| 192 | 183 | team. To configure this environment, we used Chef (www.chef.io) and Chake, a |
| 193 | -serverless configuration tool created by our team | |
| 194 | -(www.github.com/terceiro/chake). This tool maintained environment consistency, | |
| 184 | +serverless configuration tool created by our team | |
| 185 | +(www.github.com/terceiro/chake) to maintain environment consistency, | |
| 195 | 186 | simplifying the deployment process. |
| 196 | 187 | |
| 197 | 188 | ### Acceptance Tests |
| 198 | 189 | |
| 199 | -After a new SPB portal deployment in the VE, we used the environment to verify | |
| 200 | -the integrity of the entire portal. In this step, Ministry staff also checked | |
| 201 | -the new features, required changes, and bug fixes. If they identified a | |
| 202 | -problem, they would notify the developers via comments on the SPB portal issue | |
| 203 | -tracker, prompting the team to fix it and restart the pipeline. Otherwise, we | |
| 204 | -could move forward. | |
| 190 | +After a new SPB portal VE deployment, we used the environment to verify the | |
| 191 | +integrity of the entire portal. Government staff also checked the new features, | |
| 192 | +required changes, and bug fixes. If they identified a problem, they would | |
| 193 | +notify developers via comments on the SPB portal issue tracker, prompting the | |
| 194 | +team to fix it and restart the pipeline. Otherwise, we could move forward. | |
| 205 | 195 | |
| 206 | 196 | ### Production Environment Deployment |
| 207 | 197 | |
| 208 | 198 | After the VE check, we could finally begin the deployment in production, with |
| 209 | 199 | the same configuration management tool, scripts, and package versions as in the |
| 210 | -VE. After the deploy was completed, both VE and PE were identical. At that | |
| 211 | -point, new features and bug fixes were finally available to end users. | |
| 200 | +VE. After the deploy was completed, both VE and PE were identical, making new | |
| 201 | +features and bug fixes available to end users. | |
| 212 | 202 | |
| 213 | 203 | ## Benefits |
| 214 | 204 | |
| 215 | 205 | CD brings many advantages such as accelerated time to market, building the |
| 216 | 206 | right product, productivity and efficiency improvements, stable releases, and |
| 217 | 207 | better customer satisfaction [2,3]. The charts presented in Figure 2 show these |
| 218 | -benefits of CD in our project and associates them with the creation of a DevOps | |
| 219 | -team. In the time of 30 months, we deployed a total of 84 versions. Over 64% of | |
| 220 | -these activities happened in the second half of 2015, with the DevOps team | |
| 221 | -creation. Besides these results, working with the government, we noticed the | |
| 222 | -following additional benefits. | |
| 208 | +benefits in our project and associates them with the creation of a DevOps team. | |
| 209 | +Over 30 months, we deployed 84 versions. Over 64% of the releases happened in | |
| 210 | +the last 12 months, after the creation of the DevOps team. Besides these | |
| 211 | +results, working with the government we noticed the following additional | |
| 212 | +benefits. | |
| 223 | 213 | |
| 224 | - | |
| 214 | + | |
| 225 | 215 | |
| 226 | 216 | ### Strengthening Trust in the Relationship with the Government |
| 227 | 217 | |
| 228 | -CD helped strengthen trust in the relationship between developers and the | |
| 229 | -Ministry staff. Before using CD, they could validate features developed only at | |
| 230 | -the end of the release cycle, usually every four months. With the | |
| 231 | -implementation of CD, intermediate and candidate versions became available, | |
| 232 | -allowing them to perform small validations over time. Constant monitoring of | |
| 233 | -the development work brought greater security to the Ministry leaders and | |
| 234 | -improved the interactions with our team. | |
| 218 | +CD helped strengthen trust between developers and the government staff. Before | |
| 219 | +using CD, they could validate features developed only at the end of the release | |
| 220 | +cycle, usually every four months. With the implementation of CD, intermediate | |
| 221 | +and candidate versions became available, allowing them to perform small | |
| 222 | +validations over time. Constant monitoring of the development work brought | |
| 223 | +greater assurance to the ministry leaders and improved the interactions with | |
| 224 | +our team. | |
| 235 | 225 | |
| 236 | 226 | ### Responsiveness to Change |
| 237 | 227 | |
| 238 | 228 | Responsiveness was one of the direct benefits of adopting the CD pipeline. |
| 239 | -Political interests may change requirements and priorities at any time. The | |
| 240 | -ability to react quickly to changes requested by the Ministry was vital to the | |
| 241 | -project’s survival for 30 months. We noticed that if we took too long to meet | |
| 242 | -their demands, they would threaten to reduce financial support and even cancel | |
| 243 | -the project. | |
| 229 | +Political forces may change requirements and priorities at any time. The | |
| 230 | +ability to react quickly to changes requested by the government was vital to | |
| 231 | +the project survival for 30 months. We noticed that if we took too long to meet | |
| 232 | +their demands, they could reduce financial support and even cancel the project. | |
| 244 | 233 | |
| 245 | 234 | CD helped us keep the PE up-to-date, even with partial versions of a feature. |
| 246 | -Therefore, we always had something to show on meetings, easing their concerns | |
| 247 | -about the final delivery of the platform. For our team, CD made developers more | |
| 235 | +Therefore, we always had new results to present on meetings, easing their | |
| 236 | +concerns About expected final delivery. For our team, CD made developers always | |
| 248 | 237 | confident that the project would last a little longer. |
| 249 | 238 | |
| 250 | 239 | ### Shared Responsibility |
| 251 | 240 | |
| 252 | -According to the conventional Ministry process, the development team could not | |
| 253 | -track what happened to the code after its delivery, since their staff was the | |
| 254 | -only ones responsible for deployment. The implementation of CD made our | |
| 241 | +According to the conventional ministry process, the development team could not | |
| 242 | +track what happened to the code after its delivery, since their employees were | |
| 243 | +the only ones responsible for deployment. The implementation of CD made our | |
| 255 | 244 | development team feel equally responsible for what was getting into production |
| 256 | 245 | and take ownership of the project [4]. |
| 257 | 246 | |
| 258 | -Interestingly, the CD pipeline had the same effect on the Ministry staff. They | |
| 247 | +Interestingly, the CD pipeline had the same effect on the ministry staff. They | |
| 259 | 248 | became more engaged in the whole process, opening and discussing issues during |
| 260 | 249 | the evolution of the platform. Additionally, developers worked to improve the |
| 261 | 250 | CD pipeline and speed up the process of making new features available in the |
| ... | ... | @@ -264,39 +253,33 @@ production environment. |
| 264 | 253 | ### Synchronization Between Government and Development |
| 265 | 254 | |
| 266 | 255 | The CD pipeline performance depended on the synchronization between our |
| 267 | -development team and the Ministry staff: each party had to be prepared to take | |
| 268 | -action as soon as the other concluded a given task. Initially, the Ministry | |
| 256 | +development team and the ministry staff: each party had to be prepared to take | |
| 257 | +action as soon as the other concluded a given task. Initially, the ministry | |
| 269 | 258 | staff did not contemplate this in their schedule which, combined with the |
| 270 | 259 | bureaucracy in providing access to the PE (up to 3 days), resulted in |
| 271 | 260 | significant delays in the validation of new features. The use of an explicit CD |
| 272 | 261 | pipeline helped us to identify critical points of delay, and increase our |
| 273 | 262 | productivity. |
| 274 | 263 | |
| 275 | -<!--- | |
| 276 | -Fabio sugeriu Lessons Learned, mas vamos mostrar exemplos da revista para ele olhar. | |
| 277 | ---> | |
| 278 | - | |
| 279 | 264 | ## Lessons Learned |
| 280 | 265 | |
| 281 | -<!--- | |
| 282 | -(>>>FABIO FAZER RELAÇÃO COM CHALLENGES DA SEÇÃO CONTEXTO<<<). | |
| 283 | ---> | |
| 284 | -Due to the successful building of the CD pipeline, we improved the Ministry | |
| 285 | -deployment process and kept the project alive. We now look at the lessons | |
| 286 | -learned. | |
| 266 | +Due to the successful building of the CD pipeline, we not only overcame the | |
| 267 | +challenges we described above but also improved the ministry deployment process | |
| 268 | +and kept the project alive until its successful conclusion. We now look at the | |
| 269 | +lessons we learned, which can be leveraged by readers in other situations. | |
| 287 | 270 | |
| 288 | 271 | ### Build CD From Scratch |
| 289 | 272 | |
| 290 | 273 | Taking on the responsibility for implementing CD impacted the whole team. Most |
| 291 | 274 | of our team members did not have CD know-how, and we had few working hours |
| 292 | -available to build the pipeline. The construction and maintenance of the CD | |
| 293 | -process were made possible by the key decisions to: | |
| 275 | +available to build the initial version of the pipeline. The construction and | |
| 276 | +maintenance of the CD process were made possible by the key decisions to: | |
| 294 | 277 | |
| 295 | -1. _Select the most experienced senior developers and some advanced students of | |
| 296 | -the project to work on a specific DevOps team._ These senior developers used | |
| 297 | -their experience in OSS projects to craft an initial proposal for the | |
| 298 | -deployment process. The solution enabled us to automate the deployment, even | |
| 299 | -though the process was, initially, still rudimentary. | |
| 278 | +1. _Select the most experienced senior developers and some advanced students to | |
| 279 | +work on a specific DevOps team._These senior developers used their experience | |
| 280 | +in OSS projects to craft an initial proposal for the deployment process. The | |
| 281 | +solution enabled us to automate the deployment, even though the process was, | |
| 282 | +initially, still rudimentary. | |
| 300 | 283 | |
| 301 | 284 | 2. _Interchange team members and encourage teammates to migrate to the DevOps |
| 302 | 285 | team._ The benefits were twofold: mitigating the difficulty in sharing |
| ... | ... | @@ -305,46 +288,45 @@ process on-the-fly. |
| 305 | 288 | |
| 306 | 289 | ### Overcoming Mistrust |
| 307 | 290 | |
| 308 | -Adopting an unfamiliar approach requires trust. Ministry staff, traditionally, | |
| 309 | -expected and were prepared to validate and deploy a single deliverable. However, | |
| 310 | -the steady growth of SPB complexity made large deliveries unsustainable. The CD | |
| 311 | -approach was necessary [4]. Therefore, we developed the following line of action to | |
| 312 | -make this new dynamics possible: | |
| 313 | - | |
| 314 | -1. _Demonstrate actual results, do not simply tell._ Initially, we did not have | |
| 315 | -access to the Ministry infrastructure, so we created our own validation | |
| 316 | -environment. Thus, we were able to follow the CD pipeline until production | |
| 317 | -deployment, when we faced two problems. First, our pace of intermediate | |
| 318 | -deliveries to the government was faster than the deployment to production by | |
| 319 | -the Ministry staff. Second, specific issues of the Ministry infrastructure made | |
| 320 | -some validated features not work as expected in the PE. That situation gave us | |
| 321 | -arguments to negotiate access to the PE. | |
| 291 | +Adopting an unfamiliar approach requires trust. ministry staff, traditionally, | |
| 292 | +expected and were prepared to validate and deploy a single deliverable. | |
| 293 | +However, the steady growth of SPB complexity made large deliveries | |
| 294 | +unsustainable. The CD approach was necessary [4]. Therefore, we developed the | |
| 295 | +following line of action to enable this new dynamics: | |
| 296 | + | |
| 297 | +1. _Demonstrate actual results, instead of simply reporting them._ Initially, | |
| 298 | +we did not have access to the ministry infrastructure, so we created our own | |
| 299 | +validation environment. Thus, we were able to follow the CD pipeline until | |
| 300 | +production deployment, when we faced two problems. First, our pace of | |
| 301 | +intermediate deliveries was faster than the deployment to production by the | |
| 302 | +government staff. Second, specific issues of the governmental infrastructure | |
| 303 | +made some validated features not work as expected in the PE. That situation | |
| 304 | +gave us arguments to negotiate access to the PE. | |
| 322 | 305 | |
| 323 | 306 | 2. _Make project management transparent and collaborative for government |
| 324 | -staff._ Allowing the Ministry staff to track our development process showed | |
| 307 | +staff._ Allowing the ministry staff to track our development process showed | |
| 325 | 308 | them we were fulfilling our commitments. They started to interact more actively |
| 326 | 309 | in the generation of versions and became involved in the CD. After |
| 327 | -understanding it, the Ministry staff helped us negotiate access to a VE with | |
| 328 | -the Ministry leaders, creating as an isolated replica of the PE. | |
| 310 | +understanding it, the ministry staff helped us negotiate access to a VE with | |
| 311 | +the ministry leaders, creating an isolated replica of the PE. | |
| 329 | 312 | |
| 330 | 313 | 3. _Gain the confidence of government staff._ With the PE replica, we were able |
| 331 | -to run the entire pipeline and win the trust of the Ministry staff involved in | |
| 314 | +to run the entire pipeline and win the trust of the ministry staff involved in | |
| 332 | 315 | the process. They saw the mobilization and responsiveness of our team to |
| 333 | 316 | generate each new version package. They also recognized the quality of our work |
| 334 | -and deployment process. In the end, the Ministry staff realized that it would | |
| 317 | +and deployment process. In the end, the ministry staff realized that it would | |
| 335 | 318 | be beneficial for the project if they granted us access to the infrastructure, |
| 336 | 319 | both VE and PE. |
| 337 | 320 | |
| 321 | +In summary, we encourage the use of a well-thought CD pipeline as a means to | |
| 322 | +gain trust in software development projects with large organizations. | |
| 323 | + | |
| 338 | 324 | ## References |
| 339 | 325 | |
| 340 | 326 | 1. P. Meirelles, M. Wen, A. Terceiro, R. Siqueira, L. Kanashiro, and H. Neri, "Brazilian Public Software Portal: an integrated platform for collaborative development", OpenSym, 2017. |
| 341 | 327 | 1. L. Chen, "Continuous Delivery: Huge Benefits, but Challenges Too", IEEE Software, 32 (2) 2015. |
| 342 | 328 | 1. T. Savor, M. Douglas, M. Gentili, L. Williams, K. Beck and M. Stumm, "Continuous Deployment at Facebook and OANDA", ICSE, 2016. |
| 343 | 329 | 1. M. Shahin, M. A. Babar, and L. Zhu. “The Intersection of Continuous Deployment and Architecting Process: Practitioners' Perspectives”. ESEM, 2016. |
| 330 | +1. C. B. Nielsen, P. G. Larsen, J. Fitzgerald, J. Woodcock, and J. Peleska, "Systems of Systems Engineering: Basic Concepts, Model-Based Techniques, and Research Directions", ACM Comput. Surv. 48, 2, 2015. | |
| 344 | 331 | 1. J. Humble and D. Farley, "Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation", Addison-Wesley, 2010. |
| 345 | 332 | |
| 346 | -<!--- | |
| 347 | -1. C. B. Nielsen, P. G. Larsen, J. Fitzgerald, J. Woodcock, and J. Peleska, "Systems of Systems Engineering: Basic Concepts, Model-Based Techniques, and Research Directions", ACM Comput. Surv. 48, 2, Article 18, 2015, 41 pages. | |
| 348 | ---> | |
| 349 | - | |
| 350 | - | ... | ... |