Commit 9b790fdf935e09d8689ab9a97ab9d3d968e5f071
Exists in
master
and in
3 other branches
Merge branch 'master' of softwarepublico.gov.br:softwarepublico/articles
Showing
1 changed file
with
51 additions
and
29 deletions
Show diff stats
ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
| ... | ... | @@ -4,6 +4,24 @@ papersize: a4 |
| 4 | 4 | geometry: "left=1in,right=1.5in" |
| 5 | 5 | --- |
| 6 | 6 | |
| 7 | +## Authors | |
| 8 | + | |
| 9 | +__Diego Camarinha__ is a masters student at IME - The Institute of Mathematics and | |
| 10 | +Statistics of the Sao Paulo University. His research interests include software | |
| 11 | +engineering, computer networks and source code metrics. He worked for two years | |
| 12 | +with the Brazilian federal government as a senior developer. Contact him at | |
| 13 | +diegoamc@ime.usp.br. | |
| 14 | + | |
| 15 | +__Rodrigo Siqueira__ is a masters student at IME - The Institute of Mathematics and | |
| 16 | +Statistics of the Sao Paulo University. His research interests include software | |
| 17 | +engineering, operating system and computer architecture. He worked for two years | |
| 18 | +with the Brazilian federal government as a coach and developer. Contact him at | |
| 19 | +siqueira@ime.usp.br. | |
| 20 | + | |
| 21 | +__Melissa Wen__ is a software developer. She worked on SPB project as a senior developer and also served as professor of Computer Science at UFBA - The Federal University of Bahia. Her areas of interest include software engineering and open source software development. Contact her at melissa.srw@gmail.com . | |
| 22 | + | |
| 23 | +__Paulo Meirelles__ received his Ph.D. in Computer Science from the Institute of Mathematics and Statistics at the University of São Paulo. He is a full-time Professor at the University of Brasilia, and coordinated the new SPB Portal project. His research interest areas are: Free Software, Agile methods, Static analysis, and Source code metrics. Contact him at paulormm@ime.usp.br. | |
| 24 | + | |
| 7 | 25 | ## Abstract |
| 8 | 26 | |
| 9 | 27 | For many software development teams, the first things that come to mind |
| ... | ... | @@ -28,11 +46,12 @@ government, but also to society as a whole. The government could reduce both |
| 28 | 46 | the bureaucracy of using the same software in government agencies and the cost |
| 29 | 47 | of developing similar software projects. The society gained a mechanism of |
| 30 | 48 | transparency and collaboration, since anyone can check the government |
| 31 | -expenses on software and contribute to project communities. To achieve these | |
| 32 | -goals, rather than writing everything from scratch, we decided to integrate | |
| 33 | -several free software tools such as Noosfero (www.noosfero.org), Gitlab | |
| 34 | -(www.gitlab.com), Mailman (www.gnu.org/software/mailman), Mezuro | |
| 35 | -(www.mezuro.org), and Colab (www.github.com/colab). | |
| 49 | +expenses on software (from information available on the SPB Portal) and | |
| 50 | +contribute to project communities. To achieve these goals, rather than writing | |
| 51 | +everything from scratch, we decided to integrate several free software tools | |
| 52 | +such as Noosfero (www.noosfero.org), Gitlab (www.gitlab.com), Mailman | |
| 53 | +(www.gnu.org/software/mailman), Mezuro (www.mezuro.org), and Colab | |
| 54 | +(www.github.com/colab). | |
| 36 | 55 | |
| 37 | 56 | The project started in a presidential election year and everyone involved was |
| 38 | 57 | under pressure to show results. Even with the re-election of the Brazilian |
| ... | ... | @@ -62,10 +81,10 @@ with professors, master students, professional designers and senior developers |
| 62 | 81 | from the Brazilian free software community. Undergraduate students received a |
| 63 | 82 | scholarship and, for most of them, this R&D project was their first |
| 64 | 83 | professional experience. Senior developers and master students had two |
| 65 | -important contributions to the project: transfer knowledge to undergraduate | |
| 66 | -students and more complex tasks. Finally, professors were responsible for | |
| 67 | -interacting with the Brazilian government and controlling political pressures | |
| 68 | -applied to the project. | |
| 84 | +important contributions to the project: to transfer knowledge to undergraduate | |
| 85 | +students and to deal with more complex tasks. Finally, professors were | |
| 86 | +responsible for interacting with the Brazilian government and controlling | |
| 87 | +political pressures applied to the project. | |
| 69 | 88 | |
| 70 | 89 | Moreover, we needed to communicate with two independent groups of government |
| 71 | 90 | representatives. Requirement analysts were real representatives of the |
| ... | ... | @@ -83,12 +102,12 @@ the government expectations and to provide quick response to their requests, |
| 83 | 102 | which were influenced most of the time by the uncertainties of the project's |
| 84 | 103 | continuity. We believed we would keep the project alive, even in a politically |
| 85 | 104 | unstable and technically complex scenario. For this reason, we focused on |
| 86 | -automating the deploy process; for instance, one of our senior | |
| 87 | -developers created a Chef-Server (www.chef.io/chef) front-end tool called Chake | |
| 88 | -(www.gitlab.com/terceiro/chake) to help us manage the multiple hosts needed for | |
| 89 | -the project. We also formed a specific team dedicated to the deployment | |
| 90 | -process. This team was responsible for maturing our CD pipeline, giving us | |
| 91 | -confidence and agility to comply with government requirements. | |
| 105 | +automating the deploy process; for instance, one of our senior developers | |
| 106 | +created a tool called Chake (www.gitlab.com/terceiro/chake) to help us manage | |
| 107 | +multiple hosts without the need for a Chef-Server (www.chef.io/chef). We also | |
| 108 | +formed a specific team dedicated to the deployment process. This team was | |
| 109 | +responsible for maturing our CD pipeline, giving us confidence and agility to | |
| 110 | +comply with government requirements. | |
| 92 | 111 | |
| 93 | 112 | In this report, we describe our CD pipeline and how it improved our delivery |
| 94 | 113 | performance. Continuous Delivery made us adaptable for all requested changes |
| ... | ... | @@ -113,18 +132,17 @@ more new code. |
| 113 | 132 | |
| 114 | 133 | The SPB portal consists of more than 10 integrated software projects and each |
| 115 | 134 | of them, as well as the entire platform, had to be tested. These software |
| 116 | -components had their own test suite, maintained and expanded by the development | |
| 117 | -team. Communication between all components is orchestrated by Colab, a systems | |
| 118 | -integration platform for web applications based on a plugins architecture. | |
| 119 | -Therefore, specific plugins have been developed for each portal software | |
| 120 | -component, such as Gitlab and Mailman. Each plugin had its own test suite | |
| 121 | -and this set also worked as integration test. | |
| 122 | - | |
| 123 | -Both unit and integration tests provided us the performace and security needed | |
| 124 | -to guarantee the stability for components and the platform. If any test suite failed, | |
| 125 | -by either a test error or coverage reduction below a certain threshold, the | |
| 126 | -pipeline was stopped. Only when all tests pass, the pipeline proceeded to the step of | |
| 127 | -preparing the release. | |
| 135 | +components have their own test suite. Communication between all components is | |
| 136 | +orchestrated by Colab, a systems integration platform for web applications based | |
| 137 | +on a plugins architecture. Therefore, specific plugins were developed for | |
| 138 | +each portal software component, such as Gitlab and Mailman. Each plugin has its | |
| 139 | +own test suite and this set also worked as integration tests. | |
| 140 | + | |
| 141 | +Both unit and integration tests provided us the performance and security needed | |
| 142 | +to guarantee the stability for components and the platform. If any test suite | |
| 143 | +failed, by either a test error or coverage reduction below a certain threshold, | |
| 144 | +the pipeline stopped. Only when all tests passed, the pipeline proceeded to the | |
| 145 | +step of preparing the release. | |
| 128 | 146 | |
| 129 | 147 | ### Preparing a New Release |
| 130 | 148 | |
| ... | ... | @@ -177,7 +195,7 @@ as part of the next step in the pipeline. |
| 177 | 195 | |
| 178 | 196 | After we deployed a new SPB Portal version in the VE, the government |
| 179 | 197 | agents were responsible for checking features and bug fixes required by them. If |
| 180 | -the requirement analysts identified a problem, they would notified the developers via | |
| 198 | +the requirement analysts identified a problem, they would notify the developers via | |
| 181 | 199 | comments on the SPB Portal's issue tracker. The problems were fixed and the |
| 182 | 200 | pipeline restarted from scratch. If everything was validated, we moved forward. |
| 183 | 201 | |
| ... | ... | @@ -206,7 +224,7 @@ leader resulted in new requirements, most of them motivated by political |
| 206 | 224 | needs. These constant changes in requirements and priorities caused discomfort |
| 207 | 225 | between the government and the development team. For |
| 208 | 226 | example, the government leader required a complete layout change because he suddenly decided to make a marketing campaign about the new |
| 209 | -SPB portal. Thus the government would use undelivered requirements as a means to justify the | |
| 227 | +SPB portal. In future meetings, the government would use undelivered requirements as a means to justify the | |
| 210 | 228 | lack of financial support, which was already approved in the first place. We believed that if we took too |
| 211 | 229 | long to attend their demands, the project would end. CD helped us keep the |
| 212 | 230 | production environment up-to-date, even with partial versions of a feature. That |
| ... | ... | @@ -302,6 +320,10 @@ to part of the infrastructure. More research is required on development protocol |
| 302 | 320 | policies to improve the relation between industry and government, specially |
| 303 | 321 | regarding CD. |
| 304 | 322 | |
| 323 | +## Acknowledgements | |
| 324 | + | |
| 325 | +We thank our colleagues, Lucas Kanashiro and Rafael Manzo, and this article's reviewers. | |
| 326 | + | |
| 305 | 327 | ## References |
| 306 | 328 | |
| 307 | 329 | 1. G. Booch, A. W. Brown, "Collaborative Development Environments", in Advances in Computers, vol. 59, 2003, pp. 1–27. | ... | ... |