Commit 240bfef0ef92fda12deffd401d769cc2c708b403
Exists in
master
and in
3 other branches
Merge branch 'ieee_new' of http://softwarepublico.gov.br/gitlab/softwarepublico/…
…articles into ieee_new
Showing
1 changed file
with
45 additions
and
47 deletions
Show diff stats
ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
| @@ -41,10 +41,10 @@ him at fabio.kon@ime.usp.br. | @@ -41,10 +41,10 @@ him at fabio.kon@ime.usp.br. | ||
| 41 | For many software development teams, the first aspects that come to mind | 41 | For many software development teams, the first aspects that come to mind |
| 42 | regarding Continuous Delivery (CD) are the operational challenges and the | 42 | regarding Continuous Delivery (CD) are the operational challenges and the |
| 43 | competitive benefits. In our experience, CD was much more: it was a survival | 43 | 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 Brazilian | 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 | 45 | government project for the development of a Collaborative Development |
| 46 | Environment (CDE), sharing the challenges we faced and the strategies used to | 46 | Environment (CDE), sharing the challenges we faced and the strategies used to |
| 47 | -overcome them. | 47 | +overcome them. ( >> FECHAR COM FRASE DE IMPACTO <<<). |
| 48 | 48 | ||
| 49 | ## Introduction | 49 | ## Introduction |
| 50 | 50 | ||
| @@ -69,7 +69,7 @@ team. CD enabled us to show our progress and to earn the government’s | @@ -69,7 +69,7 @@ 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 | 69 | confidence that we could adequately fulfill their requests, becoming an |
| 70 | essential aspect of our interaction with them. According to this experience, | 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 | 71 | the use of CD as a tool to build such trust relationships is yet another of its |
| 72 | -benefits [2]. | 72 | +benefits [2,3]. |
| 73 | 73 | ||
| 74 | ## Context | 74 | ## Context |
| 75 | 75 | ||
| @@ -81,7 +81,7 @@ them unfamiliar with new software development techniques, such as CD. Any of | @@ -81,7 +81,7 @@ 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; | 81 | our requests had to pass through layers of bureaucracy before being answered; |
| 82 | accessing their infrastructure to deploy updated software was not different. | 82 | accessing their infrastructure to deploy updated software was not different. |
| 83 | The difficulties were aggravated because the new SPB portal is an unprecedented | 83 | The difficulties were aggravated because the new SPB portal is an unprecedented |
| 84 | -platform in the Brazilian government, with a complicated deployment process. | 84 | +platform in the Brazilian government, with a complicated deployment process [4]. |
| 85 | 85 | ||
| 86 | The project suffered significant interference from the board of directors | 86 | The project suffered significant interference from the board of directors |
| 87 | throughout time because the portal represents an interface between government | 87 | throughout time because the portal represents an interface between government |
| @@ -100,15 +100,16 @@ the widespread belief among government staff that any project in partnership | @@ -100,15 +100,16 @@ the widespread belief among government staff that any project in partnership | ||
| 100 | with a University is doomed to fail, and (2) dealing with bureaucracies | 100 | with a University is doomed to fail, and (2) dealing with bureaucracies |
| 101 | involved in the Ministry deployment process. | 101 | involved in the Ministry deployment process. |
| 102 | 102 | ||
| 103 | -Firstly, our team was not from a typical company, consisting mainly of | ||
| 104 | -undergraduate students supported senior developers and designers, all | ||
| 105 | -coordinated by two professors. Accordingly, time and resources allocation, | ||
| 106 | -accountability, and team continuity might be construed as "unprofessional". On | ||
| 107 | -the government side, the SPB portal evolution was the first software | ||
| 108 | -development collaboration between universities and the Ministry staff involved, | 103 | +First, our development team was not from a typical company, consisting mainly |
| 104 | +of undergraduate interns supported by senior developers and designers, all | ||
| 105 | +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 . | ||
| 108 | +On the government side, the SPB portal evolution was the first software | ||
| 109 | +development collaboration involving universities and the Ministry staff, | ||
| 109 | raising disbelief. | 110 | raising disbelief. |
| 110 | 111 | ||
| 111 | -Secondly, our team approached software deployment differently from the | 112 | +Second, our team approached software deployment differently from the |
| 112 | Ministry. We believed frequent delivery is better for the project’s success. | 113 | Ministry. We believed frequent delivery is better for the project’s success. |
| 113 | In contrast, the Ministry is used to the idea of a single deployment at the end | 114 | In contrast, the Ministry is used to the idea of a single deployment at the end |
| 114 | of the project, and neither their bureaucratic structure nor their technical | 115 | of the project, and neither their bureaucratic structure nor their technical |
| @@ -116,17 +117,17 @@ expertise was conducive to this style of work. That ended up hampering the | @@ -116,17 +117,17 @@ expertise was conducive to this style of work. That ended up hampering the | ||
| 116 | benefits of the tool and preventing us from showing off the fruits of the | 117 | benefits of the tool and preventing us from showing off the fruits of the |
| 117 | project to those responsible for evaluating it. | 118 | project to those responsible for evaluating it. |
| 118 | 119 | ||
| 119 | -<!-- Melissa: tentar dividir esse último parágrafo em 2? Tá cansativo ler ele todo - não consigo respirar :P --> | 120 | +<!-- AHA Moment!!!!! --> |
| 120 | 121 | ||
| 121 | These challenges made our relationship with the Ministry staff tense, in | 122 | These challenges made our relationship with the Ministry staff tense, in |
| 122 | particular during the first year, and alerted us to the fact that they could | 123 | particular during the first year, and alerted us to the fact that they could |
| 123 | -finish the project at any time. The deployment limitation was the substantial | 124 | +cancel the project at any time. The deployment limitation was the substantial |
| 124 | technical issue we could tackle in the short term. As a result, we worked to | 125 | technical issue we could tackle in the short term. As a result, we worked to |
| 125 | deploy one version of the project onto our infrastructure and showed it to the | 126 | deploy one version of the project onto our infrastructure and showed it to the |
| 126 | government evaluators. This strategy proved them we could efficiently provide | 127 | government evaluators. This strategy proved them we could efficiently provide |
| 127 | new features, fulfill their expectations regarding the delivery of the | 128 | new features, fulfill their expectations regarding the delivery of the |
| 128 | requirements, and incited them to demand that the latest version be deployed in | 129 | requirements, and incited them to demand that the latest version be deployed in |
| 129 | -the Ministry infrastructure. This generated more pressure on the IT | 130 | +the Ministry infrastructure. Our CD approach generated more pressure on the IT |
| 130 | department responsible for the deployment routines. With each CD cycle, we | 131 | department responsible for the deployment routines. With each CD cycle, we |
| 131 | gradually built a new relationship among all parties and, by the end of the | 132 | gradually built a new relationship among all parties and, by the end of the |
| 132 | project, we became active participants in the deploy operations. | 133 | project, we became active participants in the deploy operations. |
| @@ -134,33 +135,33 @@ project, we became active participants in the deploy operations. | @@ -134,33 +135,33 @@ project, we became active participants in the deploy operations. | ||
| 134 | ## Our Continuous Delivery Pipeline | 135 | ## Our Continuous Delivery Pipeline |
| 135 | 136 | ||
| 136 | SPB portal is a CDE with additional social features, having 83 software | 137 | SPB portal is a CDE with additional social features, having 83 software |
| 137 | -communities and 6,460 users. We built system-of-systems adapting and | ||
| 138 | -integrating five existing OSS projects: Colab (www.github.com/colab), Noosfero | ||
| 139 | -(www.noosfero.org), Gitlab (www.gitlab.com), Mezuro (www.mezuro.org), and | ||
| 140 | -Mailman (www.list.org). Colab orchestrates these multiple components and | ||
| 141 | -allowed us to smoothly provide a unified interface for final users, including | ||
| 142 | -single sign-on and global searches [1]. All these integrated systems represents | ||
| 143 | -a total of 106.253 commits and 1.347.421 lines of code. | 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. | ||
| 144 | 147 | ||
| 145 |  | 148 |  |
| 146 | 149 | ||
| 147 | -The portal deployment follows a typical CD pipeline [3], adapted to the | 150 | +The portal deployment follows a typical CD pipeline [5], adapted to the |
| 148 | technical and organizational context of our project and the use of OSS best | 151 | technical and organizational context of our project and the use of OSS best |
| 149 | practices, as presented in Figure 1. It started when new code arrived; and when | 152 | practices, as presented in Figure 1. It started when new code arrived; and when |
| 150 | it reaches the production environment, we would restart the pipeline to release | 153 | it reaches the production environment, we would restart the pipeline to release |
| 151 | new versions. | 154 | new versions. |
| 152 | 155 | ||
| 153 | -<!-- 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. [atualmente, 83 softwares abrigado no portal?]--> | ||
| 154 | - | ||
| 155 | ### Automated Tests | 156 | ### Automated Tests |
| 156 | 157 | ||
| 157 | -Each integrated system had to be tested with its own test suite. This checking | ||
| 158 | -was not enough, however: we even had to test the platform as a whole. Given | ||
| 159 | -that the plugins also have their own test suites and these suites assume a | ||
| 160 | -double role as both plugin tests and as integration tests. If any test suite | ||
| 161 | -failed, by either a test error or coverage reduction below a certain threshold, | ||
| 162 | -the process stopped. Only when all tests passed, the pipeline proceeded to the | ||
| 163 | -step of release preparation. | 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. | ||
| 164 | 165 | ||
| 165 | ### Preparing a New Release | 166 | ### Preparing a New Release |
| 166 | 167 | ||
| @@ -213,7 +214,7 @@ point, new features and bug fixes were finally available to end users. | @@ -213,7 +214,7 @@ point, new features and bug fixes were finally available to end users. | ||
| 213 | 214 | ||
| 214 | CD brings many advantages such as accelerated time to market, building the | 215 | CD brings many advantages such as accelerated time to market, building the |
| 215 | right product, productivity and efficiency improvements, stable releases, and | 216 | right product, productivity and efficiency improvements, stable releases, and |
| 216 | -better customer satisfaction [2]. The charts presented in Figure 2 show these | 217 | +better customer satisfaction [2,3]. The charts presented in Figure 2 show these |
| 217 | benefits of CD in our project and associates them with the creation of a DevOps | 218 | benefits of CD in our project and associates them with the creation of a DevOps |
| 218 | team. In the time of 30 months, we deployed a total of 84 versions. Over 64% of | 219 | team. In the time of 30 months, we deployed a total of 84 versions. Over 64% of |
| 219 | these activities happened in the second half of 2015, with the DevOps team | 220 | these activities happened in the second half of 2015, with the DevOps team |
| @@ -252,7 +253,7 @@ According to the conventional Ministry process, the development team could not | @@ -252,7 +253,7 @@ According to the conventional Ministry process, the development team could not | ||
| 252 | track what happened to the code after its delivery, since their staff was the | 253 | track what happened to the code after its delivery, since their staff was the |
| 253 | only ones responsible for deployment. The implementation of CD made our | 254 | only ones responsible for deployment. The implementation of CD made our |
| 254 | development team feel equally responsible for what was getting into production | 255 | development team feel equally responsible for what was getting into production |
| 255 | -and take ownership of the project. | 256 | +and take ownership of the project [4]. |
| 256 | 257 | ||
| 257 | Interestingly, the CD pipeline had the same effect on the Ministry staff. They | 258 | Interestingly, the CD pipeline had the same effect on the Ministry staff. They |
| 258 | became more engaged in the whole process, opening and discussing issues during | 259 | became more engaged in the whole process, opening and discussing issues during |
| @@ -277,6 +278,9 @@ Fabio sugeriu Lessons Learned, mas vamos mostrar exemplos da revista para ele ol | @@ -277,6 +278,9 @@ Fabio sugeriu Lessons Learned, mas vamos mostrar exemplos da revista para ele ol | ||
| 277 | 278 | ||
| 278 | ## Lessons Learned | 279 | ## Lessons Learned |
| 279 | 280 | ||
| 281 | +<!--- | ||
| 282 | +(>>>FABIO FAZER RELAÇÃO COM CHALLENGES DA SEÇÃO CONTEXTO<<<). | ||
| 283 | +--> | ||
| 280 | Due to the successful building of the CD pipeline, we improved the Ministry | 284 | Due to the successful building of the CD pipeline, we improved the Ministry |
| 281 | deployment process and kept the project alive. We now look at the lessons | 285 | deployment process and kept the project alive. We now look at the lessons |
| 282 | learned. | 286 | learned. |
| @@ -289,7 +293,7 @@ available to build the pipeline. The construction and maintenance of the CD | @@ -289,7 +293,7 @@ available to build the pipeline. The construction and maintenance of the CD | ||
| 289 | process were made possible by the key decisions to: | 293 | process were made possible by the key decisions to: |
| 290 | 294 | ||
| 291 | 1. _Select the most experienced senior developers and some advanced students of | 295 | 1. _Select the most experienced senior developers and some advanced students of |
| 292 | -the project to work on a specific DevOps team._These senior developers used | 296 | +the project to work on a specific DevOps team._ These senior developers used |
| 293 | their experience in OSS projects to craft an initial proposal for the | 297 | their experience in OSS projects to craft an initial proposal for the |
| 294 | deployment process. The solution enabled us to automate the deployment, even | 298 | deployment process. The solution enabled us to automate the deployment, even |
| 295 | though the process was, initially, still rudimentary. | 299 | though the process was, initially, still rudimentary. |
| @@ -304,7 +308,7 @@ process on-the-fly. | @@ -304,7 +308,7 @@ process on-the-fly. | ||
| 304 | Adopting an unfamiliar approach requires trust. Ministry staff, traditionally, | 308 | Adopting an unfamiliar approach requires trust. Ministry staff, traditionally, |
| 305 | expected and were prepared to validate and deploy a single deliverable. However, | 309 | expected and were prepared to validate and deploy a single deliverable. However, |
| 306 | the steady growth of SPB complexity made large deliveries unsustainable. The CD | 310 | the steady growth of SPB complexity made large deliveries unsustainable. The CD |
| 307 | -approach was necessary. Therefore, we developed the following line of action to | 311 | +approach was necessary [4]. Therefore, we developed the following line of action to |
| 308 | make this new dynamics possible: | 312 | make this new dynamics possible: |
| 309 | 313 | ||
| 310 | 1. _Demonstrate actual results, do not simply tell._ Initially, we did not have | 314 | 1. _Demonstrate actual results, do not simply tell._ Initially, we did not have |
| @@ -333,20 +337,14 @@ both VE and PE. | @@ -333,20 +337,14 @@ both VE and PE. | ||
| 333 | 337 | ||
| 334 | ## References | 338 | ## References |
| 335 | 339 | ||
| 336 | -1. P. Meirelles, M. Wen, A. Terceiro, R. Siqueira, L. Kanashiro, and H. Neri, "Brazilian Public Software Portal: an integrated platform for collaborative development", Proceedings of the 13th International Symposium on Open Collaboration. ACM, Article 16, 2017, 10 pages. | ||
| 337 | -1. L. Chen, "Continuous Delivery: Huge Benefits, but Challenges Too", IEEE Software, vol. 32, no. 2, 2015, pp. 50-54. | ||
| 338 | -1. J. Humble and D. Farley, "Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation", Addison-Wesley Professional, 2010. | 340 | +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 | +1. L. Chen, "Continuous Delivery: Huge Benefits, but Challenges Too", IEEE Software, 32 (2) 2015. | ||
| 342 | +1. T. Savor, M. Douglas, M. Gentili, L. Williams, K. Beck and M. Stumm, "Continuous Deployment at Facebook and OANDA", ICSE, 2016. | ||
| 343 | +1. M. Shahin, M. A. Babar, and L. Zhu. “The Intersection of Continuous Deployment and Architecting Process: Practitioners' Perspectives”. ESEM, 2016. | ||
| 344 | +1. J. Humble and D. Farley, "Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation", Addison-Wesley, 2010. | ||
| 339 | 345 | ||
| 340 | <!--- | 346 | <!--- |
| 341 | -Citadas apenas para definir coisas já disseminadas | ||
| 342 | -1. G. Booch and A. Brown, A. W. "Collaborative Development Environments", Advances in Computers, vol. 59, 2003, pp. 1-27. | ||
| 343 | 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. | 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. |
| 344 | -1. J. Davis and K. Daniels, "Effective Devops: Building a Culture of Collaboration, Affinity, and Tooling at Scale", O'Reilly Media, Inc., 2016. | 348 | +--> |
| 345 | 349 | ||
| 346 | -Estava citada apenas na introdução dos benefícios | ||
| 347 | -1. T. Savor, M. Douglas, M. Gentili, L. Williams, K. Beck and M. Stumm, "Continuous Deployment at Facebook and OANDA", 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C), Austin, TX, 2016, pp. 21-30. | ||
| 348 | 350 | ||
| 349 | -Considerar: | ||
| 350 | -2017 State of DevOps Report | ||
| 351 | -https://puppet.com/resources/whitepaper/state-of-devops-report | ||
| 352 | ---> |