Commit 354d2f823555479c7b6d6543e2571f0c1b02f035
1 parent
e9c7510e
Exists in
master
and in
3 other branches
Versão pós hangout
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 | ---> |