Commit f537aec0d6e4a7b6b1cae7149a15120fa5990ccc
1 parent
d94b08cf
Exists in
master
and in
3 other branches
[i3eSW] Grammarly
Showing
1 changed file
with
24 additions
and
25 deletions
Show diff stats
ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
@@ -101,7 +101,7 @@ involved in the deployment process. | @@ -101,7 +101,7 @@ involved in the deployment process. | ||
101 | Firstly, our team was not from a typical company, consisting mainly of | 101 | Firstly, our team was not from a typical company, consisting mainly of |
102 | undergraduate students supported senior developers and designers, all coordinated by two professors. Accordingly, time and | 102 | undergraduate students supported senior developers and designers, all coordinated by two professors. Accordingly, time and |
103 | resources allocation, accountability, and team continuity might be construed | 103 | resources allocation, accountability, and team continuity might be construed |
104 | -as "unprofessional". On the government side, the SPB portal evolution was the | 104 | +as "unprofessional." On the government side, the SPB portal evolution was the |
105 | first software development collaboration between universities and the Ministry | 105 | first software development collaboration between universities and the Ministry |
106 | staff involved, raising disbelief. | 106 | staff involved, raising disbelief. |
107 | 107 | ||
@@ -109,7 +109,7 @@ Secondly, our team approached software deployment differently from the Ministry. | @@ -109,7 +109,7 @@ Secondly, our team approached software deployment differently from the Ministry. | ||
109 | We believed frequent delivery is better for the project’s success. In contrast, | 109 | We believed frequent delivery is better for the project’s success. In contrast, |
110 | the Ministry is used to the idea of a single deployment at the end of the | 110 | the Ministry is used to the idea of a single deployment at the end of the |
111 | project, and neither their bureaucratic structure nor their technical expertise | 111 | project, and neither their bureaucratic structure nor their technical expertise |
112 | -were conductive with this style of work. That ended up hampering the benefits of | 112 | +were conducive with this style of work. That ended up hampering the benefits of |
113 | the tool and preventing us from showing off the fruits of the project to those | 113 | the tool and preventing us from showing off the fruits of the project to those |
114 | responsible for evaluating it. | 114 | responsible for evaluating it. |
115 | 115 | ||
@@ -123,7 +123,7 @@ deploy one version of the project onto our infrastructure and showed it to the | @@ -123,7 +123,7 @@ deploy one version of the project onto our infrastructure and showed it to the | ||
123 | government evaluators. This strategy proved them we could efficiently provide | 123 | government evaluators. This strategy proved them we could efficiently provide |
124 | new features, fulfill their expectations regarding the delivery of the | 124 | new features, fulfill their expectations regarding the delivery of the |
125 | requirements, and incited them to demand the latest version to be deployed in | 125 | requirements, and incited them to demand the latest version to be deployed in |
126 | -the Ministry infrastructure. This generated more pressure on the IT department | 126 | +the Ministry infrastructure. This efficiency generated more pressure on the IT department |
127 | responsible for the deployment routines. With each CD cycle, we gradually built | 127 | responsible for the deployment routines. With each CD cycle, we gradually built |
128 | a new relationship among all parties and, by the end of the project, we became | 128 | a new relationship among all parties and, by the end of the project, we became |
129 | active participants in the deploy operations. | 129 | active participants in the deploy operations. |
@@ -137,12 +137,12 @@ team shrinked to 20 students, one designer, and two developers. | @@ -137,12 +137,12 @@ team shrinked to 20 students, one designer, and two developers. | ||
137 | --> | 137 | --> |
138 | ## Our Continuous Delivery Pipeline | 138 | ## Our Continuous Delivery Pipeline |
139 | 139 | ||
140 | -SPB portal was designed as a CDE with additional social features. We build | 140 | +SPB portal is a CDE with additional social features. We built |
141 | system-of-systems, adapting and integrating five existing OSS projects: Colab | 141 | system-of-systems, adapting and integrating five existing OSS projects: Colab |
142 | (www.github.com/colab), Noosfero (www.noosfero.org), Gitlab (www.gitlab.com), | 142 | (www.github.com/colab), Noosfero (www.noosfero.org), Gitlab (www.gitlab.com), |
143 | Mezuro (www.mezuro.org), and Mailman (www.list.org). All integrated system | 143 | Mezuro (www.mezuro.org), and Mailman (www.list.org). All integrated system |
144 | represents a total of more than 106.253 commits and 1.347.421 lines of code. | 144 | represents a total of more than 106.253 commits and 1.347.421 lines of code. |
145 | -That solution orchestrates these multiple components and allowed us to smoothly | 145 | +That solution orchestrated these multiple components and allowed us to smoothly |
146 | provide a unified interface for final users, including single sign-on and | 146 | provide a unified interface for final users, including single sign-on and |
147 | global searches [1]. | 147 | global searches [1]. |
148 | 148 | ||
@@ -154,8 +154,8 @@ practices, as presented in Figure 1. | @@ -154,8 +154,8 @@ practices, as presented in Figure 1. | ||
154 | 154 | ||
155 | ### Automated Tests | 155 | ### Automated Tests |
156 | 156 | ||
157 | -Each integrated system had to be tested with its own test suite. This was not | ||
158 | -enough, however: we also had to test the platform as a whole. Given that the | 157 | +Each integrated system had to be tested with its own test suite. This checking was not |
158 | +enough, however: we even had to test the platform as a whole. Given that the | ||
159 | plugins also have their own test suites and these suites assume a double role | 159 | plugins also have their own test suites and these suites assume a double role |
160 | as both plugin tests and as integration tests. | 160 | as both plugin tests and as integration tests. |
161 | If any test suite failed, by either a test error or coverage | 161 | If any test suite failed, by either a test error or coverage |
@@ -165,10 +165,10 @@ passed, the pipeline proceeded to the step of release preparation. | @@ -165,10 +165,10 @@ passed, the pipeline proceeded to the step of release preparation. | ||
165 | ### Preparing a New Release | 165 | ### Preparing a New Release |
166 | 166 | ||
167 | Each software component was hosted in a separate Git repository. A new release | 167 | Each software component was hosted in a separate Git repository. A new release |
168 | -of a component was tagged with a reference to a specific new feature or bug | 168 | +of a component was tagged referencing a specific new feature or bug |
169 | fix. SPB had its own Git repository | 169 | fix. SPB had its own Git repository |
170 | -(www.softwarepublico.gov.br/gitlab/softwarepublico). A SPB portal release was | ||
171 | -an aggregate of releases of all of its components. When a new component release | 170 | +(www.softwarepublico.gov.br/gitlab/softwarepublico). An SPB portal release was |
171 | +an aggregate of versions of all of its components. When a new component release | ||
172 | passed all of the SPB integration tests, we manually created a corresponding | 172 | passed all of the SPB integration tests, we manually created a corresponding |
173 | new tag in its repository. Therefore, a new tag on any software component | 173 | new tag in its repository. Therefore, a new tag on any software component |
174 | yielded a new SPB portal release. At the end of this process, we started | 174 | yielded a new SPB portal release. At the end of this process, we started |
@@ -183,7 +183,7 @@ brings portability, simplifies deployment, and enables configuration and | @@ -183,7 +183,7 @@ brings portability, simplifies deployment, and enables configuration and | ||
183 | permission control. | 183 | permission control. |
184 | 184 | ||
185 | After creating a new tag for a system, the developers informed our DevOps [4] | 185 | After creating a new tag for a system, the developers informed our DevOps [4] |
186 | -team and the packaging process began. A set of scripts fully automated the | 186 | +team, and the packaging process began. A set of scripts fully automated the |
187 | three packaging steps aforementioned. When all of them ran successfully, the | 187 | three packaging steps aforementioned. When all of them ran successfully, the |
188 | new packages would be ready and available for our deployment scripts. | 188 | new packages would be ready and available for our deployment scripts. |
189 | 189 | ||
@@ -193,7 +193,7 @@ The Validation Environment (VE) is a replica of the Production Environment (PE) | @@ -193,7 +193,7 @@ The Validation Environment (VE) is a replica of the Production Environment (PE) | ||
193 | with anonymised data, and access restricted to Ministry staff and our DevOps | 193 | with anonymised data, and access restricted to Ministry staff and our DevOps |
194 | team. To configure this environment, we used Chef (www.chef.io) and Chake, a | 194 | team. To configure this environment, we used Chef (www.chef.io) and Chake, a |
195 | serverless configuration tool created by our team | 195 | serverless configuration tool created by our team |
196 | -(www.github.com/terceiro/chake). This maintained environment consistency, | 196 | +(www.github.com/terceiro/chake). This tool maintained environment consistency, |
197 | simplifying the deployment process. | 197 | simplifying the deployment process. |
198 | 198 | ||
199 | The Ministry staff used the VE to validate new features and required changes. | 199 | The Ministry staff used the VE to validate new features and required changes. |
@@ -202,7 +202,7 @@ the next step in the pipeline. | @@ -202,7 +202,7 @@ the next step in the pipeline. | ||
202 | 202 | ||
203 | ### Acceptance Tests | 203 | ### Acceptance Tests |
204 | 204 | ||
205 | -After a new SPB portal deployment in the VE, the Ministry were | 205 | +After a new SPB portal deployment in the VE, the Ministry was |
206 | responsible for checking the required features and bug fixes. If they | 206 | responsible for checking the required features and bug fixes. If they |
207 | identified a problem, they would notify the developers via | 207 | identified a problem, they would notify the developers via |
208 | comments on the SPB portal's issue tracker, prompting the team to fix | 208 | comments on the SPB portal's issue tracker, prompting the team to fix |
@@ -227,8 +227,7 @@ project and associates them with the creation of a DevOps team. | @@ -227,8 +227,7 @@ project and associates them with the creation of a DevOps team. | ||
227 |  | 227 |  |
228 | 228 | ||
229 | In the time of 30 months, we deployed a total of 84 versions. Over 64% of these | 229 | In the time of 30 months, we deployed a total of 84 versions. Over 64% of these |
230 | -activities happened in the second half of 2015, when the DevOps team was | ||
231 | -created. Even with the reduction of the team as a whole, in the last months of | 230 | +activities happened in the second half of 2015, with the DevOps team creation. Even with the reduction of the team as a whole, in the last months of |
232 | the project, this pace of deployment was maintained until we finished all our | 231 | the project, this pace of deployment was maintained until we finished all our |
233 | activities. | 232 | activities. |
234 | 233 | ||
@@ -255,14 +254,14 @@ long to meet their demands, they would threaten to reduce financial support and | @@ -255,14 +254,14 @@ long to meet their demands, they would threaten to reduce financial support and | ||
255 | even cancel the project. | 254 | even cancel the project. |
256 | 255 | ||
257 | CD helped us keep the PE up-to-date, even with partial versions of a feature. | 256 | CD helped us keep the PE up-to-date, even with partial versions of a feature. |
258 | -Therefore, we always had something to show on meetings, easying their | 257 | +Therefore, we always had something to show on meetings, easing their |
259 | concerns about the final delivery of the platform. For our team, CD made | 258 | concerns about the final delivery of the platform. For our team, CD made |
260 | developers more confident that the project would last a little longer. | 259 | developers more confident that the project would last a little longer. |
261 | 260 | ||
262 | ### Shared Responsibility | 261 | ### Shared Responsibility |
263 | 262 | ||
264 | According to the conventional Ministry process, the development team could not | 263 | According to the conventional Ministry process, the development team could not |
265 | -track what happened to the code after its delivery, since their staff were | 264 | +track what happened to the code after its delivery, since their staff was |
266 | the only ones responsible for deployment. The implementation of CD made our | 265 | the only ones responsible for deployment. The implementation of CD made our |
267 | development team feel equally responsible for what was getting into production | 266 | development team feel equally responsible for what was getting into production |
268 | and take ownership of the project. | 267 | and take ownership of the project. |
@@ -280,8 +279,8 @@ development team and the Ministry staff: each party had to be prepared to take | @@ -280,8 +279,8 @@ development team and the Ministry staff: each party had to be prepared to take | ||
280 | action as soon as the other concluded a given task. Initially, the Ministry | 279 | action as soon as the other concluded a given task. Initially, the Ministry |
281 | staff did not contemplate this in their schedule which, combined with the | 280 | staff did not contemplate this in their schedule which, combined with the |
282 | bureaucracy in providing access to the PE (up to 3 days), resulted in | 281 | bureaucracy in providing access to the PE (up to 3 days), resulted in |
283 | -significant delays in the validation of new features. The clear use of CD | ||
284 | -pipeline helped us to identify and solve key points of delay, and increase our | 282 | +significant delays in the validation of new features. The use of an explicit CD |
283 | +pipeline helped us to identify critical points of delay, and increase our | ||
285 | productivity. | 284 | productivity. |
286 | 285 | ||
287 | <!--- | 286 | <!--- |
@@ -304,7 +303,7 @@ months, only 6 students closed the project. | @@ -304,7 +303,7 @@ months, only 6 students closed the project. | ||
304 | --> | 303 | --> |
305 | 304 | ||
306 | Taking on the responsibility for implementing CD impacted the whole team. Most | 305 | Taking on the responsibility for implementing CD impacted the whole team. Most |
307 | -of our team members did not have CD know-how and we had few working hours | 306 | +of our team members did not have CD know-how, and we had few working hours |
308 | available to build the pipeline. The construction and maintenance of the CD | 307 | available to build the pipeline. The construction and maintenance of the CD |
309 | process were made possible by the key decisions to: | 308 | process were made possible by the key decisions to: |
310 | 309 | ||
@@ -327,8 +326,8 @@ evolving the process on-the-fly. | @@ -327,8 +326,8 @@ evolving the process on-the-fly. | ||
327 | 326 | ||
328 | <!-- Precisa 'dessuavizar' o porque das mudanças de requisitos - a motivação para ela não era tão natural como as que ocorrem em métodos ágeis --> | 327 | <!-- Precisa 'dessuavizar' o porque das mudanças de requisitos - a motivação para ela não era tão natural como as que ocorrem em métodos ágeis --> |
329 | Adopting an unfamiliar approach requires trust. In the Ministry, traditionally, | 328 | Adopting an unfamiliar approach requires trust. In the Ministry, traditionally, |
330 | -software was the product delivered at the end of a development contract; they | ||
331 | -expected and were prepared to validate and deploy a single deliverable. This | 329 | +a software was the product delivered at the end of a development contract; they |
330 | +expected and were prepared to validate and deploy a single deliverable. This process | ||
332 | was not adequate for the SPB: because the SPB portal is a system-of-systems, | 331 | was not adequate for the SPB: because the SPB portal is a system-of-systems, |
333 | the steady growth of its complexity made large deliveries unsustainable. | 332 | the steady growth of its complexity made large deliveries unsustainable. |
334 | Therefore, the CD approach was necessary, but how | 333 | Therefore, the CD approach was necessary, but how |
@@ -344,8 +343,8 @@ production by the Ministry staff. Second, specific issues of the Ministry | @@ -344,8 +343,8 @@ production by the Ministry staff. Second, specific issues of the Ministry | ||
344 | infrastructure made some validated features not work as expected in the PE. | 343 | infrastructure made some validated features not work as expected in the PE. |
345 | That situation gave us arguments to negotiate access to the PE. | 344 | That situation gave us arguments to negotiate access to the PE. |
346 | 345 | ||
347 | -2. _Make project management transparent and collaborative for government | ||
348 | -staff._ Allowing the Ministry staff to track our development process showed them | 346 | +2. _Make project management transparent and collaborative for government staff._ |
347 | +Allowing the Ministry staff to track our development process showed them | ||
349 | we were fulfilling our commitments. They started to interact more actively in | 348 | we were fulfilling our commitments. They started to interact more actively in |
350 | the generation of versions and became involved in the CD. After understanding it, | 349 | the generation of versions and became involved in the CD. After understanding it, |
351 | the Ministry staff helped us negotiate access to a VE with the Ministry leaders, | 350 | the Ministry staff helped us negotiate access to a VE with the Ministry leaders, |
@@ -357,7 +356,7 @@ involved in the process. They saw the mobilization and responsiveness of our | @@ -357,7 +356,7 @@ involved in the process. They saw the mobilization and responsiveness of our | ||
357 | team to generate each new version package. They also recognized the quality of our | 356 | team to generate each new version package. They also recognized the quality of our |
358 | work and deployment process. In the end, the Ministry staff realized | 357 | work and deployment process. In the end, the Ministry staff realized |
359 | that it would be beneficial for the project if they granted us access to the | 358 | that it would be beneficial for the project if they granted us access to the |
360 | -infrastructure, both VE and PE. | 359 | +infrastructure, both VE, and PE. |
361 | 360 | ||
362 | ## References | 361 | ## References |
363 | 362 |