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 | 41 | For many software development teams, the first aspects that come to mind |
| 42 | 42 | regarding Continuous Delivery (CD) are the operational challenges and the |
| 43 | 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 | 45 | government project for the development of a Collaborative Development |
| 46 | 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 | 49 | ## Introduction |
| 50 | 50 | |
| ... | ... | @@ -69,7 +69,7 @@ team. CD enabled us to show our progress and to earn the government’s |
| 69 | 69 | confidence that we could adequately fulfill their requests, becoming an |
| 70 | 70 | essential aspect of our interaction with them. According to this experience, |
| 71 | 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 | 74 | ## Context |
| 75 | 75 | |
| ... | ... | @@ -81,7 +81,7 @@ them unfamiliar with new software development techniques, such as CD. Any of |
| 81 | 81 | our requests had to pass through layers of bureaucracy before being answered; |
| 82 | 82 | accessing their infrastructure to deploy updated software was not different. |
| 83 | 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 | 86 | The project suffered significant interference from the board of directors |
| 87 | 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 | 100 | with a University is doomed to fail, and (2) dealing with bureaucracies |
| 101 | 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 | 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 | 113 | Ministry. We believed frequent delivery is better for the project’s success. |
| 113 | 114 | In contrast, the Ministry is used to the idea of a single deployment at the end |
| 114 | 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 | 117 | benefits of the tool and preventing us from showing off the fruits of the |
| 117 | 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 | 122 | These challenges made our relationship with the Ministry staff tense, in |
| 122 | 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 | 125 | technical issue we could tackle in the short term. As a result, we worked to |
| 125 | 126 | deploy one version of the project onto our infrastructure and showed it to the |
| 126 | 127 | government evaluators. This strategy proved them we could efficiently provide |
| 127 | 128 | new features, fulfill their expectations regarding the delivery of the |
| 128 | 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 | 131 | department responsible for the deployment routines. With each CD cycle, we |
| 131 | 132 | gradually built a new relationship among all parties and, by the end of the |
| 132 | 133 | project, we became active participants in the deploy operations. |
| ... | ... | @@ -134,33 +135,33 @@ project, we became active participants in the deploy operations. |
| 134 | 135 | ## Our Continuous Delivery Pipeline |
| 135 | 136 | |
| 136 | 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 | 151 | technical and organizational context of our project and the use of OSS best |
| 149 | 152 | practices, as presented in Figure 1. It started when new code arrived; and when |
| 150 | 153 | it reaches the production environment, we would restart the pipeline to release |
| 151 | 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 | 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 | 166 | ### Preparing a New Release |
| 166 | 167 | |
| ... | ... | @@ -213,7 +214,7 @@ point, new features and bug fixes were finally available to end users. |
| 213 | 214 | |
| 214 | 215 | CD brings many advantages such as accelerated time to market, building the |
| 215 | 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 | 218 | benefits of CD in our project and associates them with the creation of a DevOps |
| 218 | 219 | team. In the time of 30 months, we deployed a total of 84 versions. Over 64% of |
| 219 | 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 | 253 | track what happened to the code after its delivery, since their staff was the |
| 253 | 254 | only ones responsible for deployment. The implementation of CD made our |
| 254 | 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 | 258 | Interestingly, the CD pipeline had the same effect on the Ministry staff. They |
| 258 | 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 | 278 | |
| 278 | 279 | ## Lessons Learned |
| 279 | 280 | |
| 281 | +<!--- | |
| 282 | +(>>>FABIO FAZER RELAÇÃO COM CHALLENGES DA SEÇÃO CONTEXTO<<<). | |
| 283 | +--> | |
| 280 | 284 | Due to the successful building of the CD pipeline, we improved the Ministry |
| 281 | 285 | deployment process and kept the project alive. We now look at the lessons |
| 282 | 286 | learned. |
| ... | ... | @@ -289,7 +293,7 @@ available to build the pipeline. The construction and maintenance of the CD |
| 289 | 293 | process were made possible by the key decisions to: |
| 290 | 294 | |
| 291 | 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 | 297 | their experience in OSS projects to craft an initial proposal for the |
| 294 | 298 | deployment process. The solution enabled us to automate the deployment, even |
| 295 | 299 | though the process was, initially, still rudimentary. |
| ... | ... | @@ -304,7 +308,7 @@ process on-the-fly. |
| 304 | 308 | Adopting an unfamiliar approach requires trust. Ministry staff, traditionally, |
| 305 | 309 | expected and were prepared to validate and deploy a single deliverable. However, |
| 306 | 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 | 312 | make this new dynamics possible: |
| 309 | 313 | |
| 310 | 314 | 1. _Demonstrate actual results, do not simply tell._ Initially, we did not have |
| ... | ... | @@ -333,20 +337,14 @@ both VE and PE. |
| 333 | 337 | |
| 334 | 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 | 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 | ---> | ... | ... |