Commit 2519a942b5abd269f230df0f771dff658e7bf144
1 parent
a9b24e57
Exists in
master
and in
3 other branches
Minor improvements.
Showing
1 changed file
with
23 additions
and
23 deletions
Show diff stats
ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
@@ -62,7 +62,7 @@ Environment (CDE), which brought significant benefits for the government and | @@ -62,7 +62,7 @@ Environment (CDE), which brought significant benefits for the government and | ||
62 | the society. The government could minimize bureaucracy and software development | 62 | the society. The government could minimize bureaucracy and software development |
63 | costs, by reusing the same set of applications across different government | 63 | costs, by reusing the same set of applications across different government |
64 | Agencies. Society could more transparently follow government expenses and | 64 | Agencies. Society could more transparently follow government expenses and |
65 | -contribute to project communities. | 65 | +contribute to software project communities. |
66 | 66 | ||
67 | In this article, we discuss the use of Continuous Delivery (CD) during our | 67 | In this article, we discuss the use of Continuous Delivery (CD) during our |
68 | experience as the academic partner in this project. We show how we implemented | 68 | experience as the academic partner in this project. We show how we implemented |
@@ -77,9 +77,9 @@ trust relationships is yet another of its benefits [2,3]. | @@ -77,9 +77,9 @@ trust relationships is yet another of its benefits [2,3]. | ||
77 | 77 | ||
78 | SPB is a governmental program created to foster sharing and collaboration on | 78 | SPB is a governmental program created to foster sharing and collaboration on |
79 | Open Source Software (OSS) development for the Brazilian public administration. | 79 | Open Source Software (OSS) development for the Brazilian public administration. |
80 | -The MPOG managed both software requirements and server infrastructure. However, | ||
81 | -its hierarchical and traditional processes made them unfamiliar with new | ||
82 | -software development techniques, such as CD. All our requests had to pass | 80 | +The government managed both software requirements and server infrastructure. |
81 | +However, its hierarchical and traditional processes made them unfamiliar with | ||
82 | +new software development techniques, such as CD. All our requests had to pass | ||
83 | through layers of bureaucracy before being answered; accessing their | 83 | through layers of bureaucracy before being answered; accessing their |
84 | infrastructure to deploy software was not different. The difficulties were | 84 | infrastructure to deploy software was not different. The difficulties were |
85 | aggravated because the new SPB portal is an unprecedented platform in the | 85 | aggravated because the new SPB portal is an unprecedented platform in the |
@@ -161,13 +161,12 @@ stopped. Only when all tests passed, the pipeline proceeded to the next step. | @@ -161,13 +161,12 @@ stopped. Only when all tests passed, the pipeline proceeded to the next step. | ||
161 | 161 | ||
162 | ### Preparing a New Release | 162 | ### Preparing a New Release |
163 | 163 | ||
164 | -A separate Git repository hosted each software component. New component | ||
165 | -releases were tagged referencing a specific new feature or bug fix. SPB had its | ||
166 | -own Git repository (www.softwarepublico.gov.br/gitlab/softwarepublico). An SPB | ||
167 | -portal release was an aggregate of all its components. When a new component | ||
168 | -release passed all of the SPB integration tests, we manually created a | ||
169 | -corresponding new tag in its repository. At the end of this process, we started | ||
170 | -packaging. | 164 | +A separate Git repository hosted each system. New software component releases |
165 | +were tagged referencing a specific new feature or bug fix. SPB had its own Git | ||
166 | +repository (www.softwarepublico.gov.br/gitlab/softwarepublico). An SPB portal | ||
167 | +release was an aggregate of all its systems. When a new component release | ||
168 | +passed all of the SPB integration tests, we manually created a corresponding | ||
169 | +new tag in its repository. At the end of this process, we started packaging. | ||
171 | 170 | ||
172 | ### Packaging | 171 | ### Packaging |
173 | 172 | ||
@@ -205,6 +204,8 @@ features and bug fixes available to end users. | @@ -205,6 +204,8 @@ features and bug fixes available to end users. | ||
205 | 204 | ||
206 | ## Benefits | 205 | ## Benefits |
207 | 206 | ||
207 | + | ||
208 | + | ||
208 | CD brings many advantages such as accelerated time to market, building the | 209 | CD brings many advantages such as accelerated time to market, building the |
209 | right product, productivity and efficiency improvements, stable releases, and | 210 | right product, productivity and efficiency improvements, stable releases, and |
210 | better customer satisfaction [2,3]. The charts presented in Figure 2 show these | 211 | better customer satisfaction [2,3]. The charts presented in Figure 2 show these |
@@ -214,8 +215,6 @@ the last 12 months, after the creation of the DevOps team. Besides these | @@ -214,8 +215,6 @@ the last 12 months, after the creation of the DevOps team. Besides these | ||
214 | results, working with the government we noticed the following additional | 215 | results, working with the government we noticed the following additional |
215 | benefits. | 216 | benefits. |
216 | 217 | ||
217 | - | ||
218 | - | ||
219 | ### Strengthening Trust in the Relationship with the Government | 218 | ### Strengthening Trust in the Relationship with the Government |
220 | 219 | ||
221 | CD helped strengthen trust between developers and the MPOG staff. Before using | 220 | CD helped strengthen trust between developers and the MPOG staff. Before using |
@@ -236,7 +235,7 @@ their demands, they could reduce financial support and even cancel the project. | @@ -236,7 +235,7 @@ their demands, they could reduce financial support and even cancel the project. | ||
236 | 235 | ||
237 | CD helped us keep the PE up-to-date, even with partial versions of a feature. | 236 | CD helped us keep the PE up-to-date, even with partial versions of a feature. |
238 | Therefore, we always had new results to present on meetings, easing their | 237 | Therefore, we always had new results to present on meetings, easing their |
239 | -concerns About expected final delivery. For our team, CD made developers always | 238 | +concerns about expected final delivery. For our team, CD made developers always |
240 | confident that the project would last a little longer. | 239 | confident that the project would last a little longer. |
241 | 240 | ||
242 | ### Shared Responsibility | 241 | ### Shared Responsibility |
@@ -277,7 +276,7 @@ of our team members did not have CD know-how, and we had few working hours | @@ -277,7 +276,7 @@ of our team members did not have CD know-how, and we had few working hours | ||
277 | available to build the initial version of the pipeline. The construction and | 276 | available to build the initial version of the pipeline. The construction and |
278 | maintenance of the CD process were made possible by the key decisions to: | 277 | maintenance of the CD process were made possible by the key decisions to: |
279 | 278 | ||
280 | -1. _Select the most experienced senior developers and some advanced students to | 279 | +1. _Select the most experienced senior developers and some advanced interns to |
281 | work on a specific DevOps team._These senior developers used their experience | 280 | work on a specific DevOps team._These senior developers used their experience |
282 | in OSS projects to craft an initial proposal for the deployment process. The | 281 | in OSS projects to craft an initial proposal for the deployment process. The |
283 | solution enabled us to automate the deployment, even though the process was, | 282 | solution enabled us to automate the deployment, even though the process was, |
@@ -290,11 +289,11 @@ process on-the-fly. | @@ -290,11 +289,11 @@ process on-the-fly. | ||
290 | 289 | ||
291 | ### Overcoming Mistrust | 290 | ### Overcoming Mistrust |
292 | 291 | ||
293 | -Adopting an unfamiliar approach requires trust. MPOG staff, traditionally, | ||
294 | -expected and were prepared to validate and deploy a single deliverable. | ||
295 | -However, the steady growth of SPB complexity made large deliveries | ||
296 | -unsustainable. The CD approach was necessary [4]. Therefore, we developed the | ||
297 | -following line of action to enable this new dynamics: | 292 | +Adopting an unfamiliar approach requires trust. The government staff, |
293 | +traditionally, expected and were prepared to validate and deploy a single | ||
294 | +deliverable. However, the steady growth of SPB complexity made large | ||
295 | +deliveries unsustainable. The CD approach was necessary [4]. Therefore, we | ||
296 | +developed the following line of action to enable this new dynamics: | ||
298 | 297 | ||
299 | 1. _Demonstrate actual results, instead of simply reporting them._ Initially, | 298 | 1. _Demonstrate actual results, instead of simply reporting them._ Initially, |
300 | we did not have access to the government infrastructure, so we created our own | 299 | we did not have access to the government infrastructure, so we created our own |
@@ -309,19 +308,20 @@ arguments to negotiate access to the PE. | @@ -309,19 +308,20 @@ arguments to negotiate access to the PE. | ||
309 | staff._ Allowing the MPOG staff to track our development process showed them we | 308 | staff._ Allowing the MPOG staff to track our development process showed them we |
310 | were fulfilling our commitments. They started to interact more actively in the | 309 | were fulfilling our commitments. They started to interact more actively in the |
311 | generation of versions and became involved in the CD. After understanding it, | 310 | generation of versions and became involved in the CD. After understanding it, |
312 | -the MPOG staff helped us negotiate access to a VE with the MPOG leaders, | 311 | +the government staff helped us negotiate access to a VE with the MPOG leaders, |
313 | creating an isolated replica of the PE. | 312 | creating an isolated replica of the PE. |
314 | 313 | ||
315 | 3. _Gain the confidence of government staff._ With the PE replica, we were able | 314 | 3. _Gain the confidence of government staff._ With the PE replica, we were able |
316 | to run the entire pipeline and win the trust of the MPOG staff involved in the | 315 | to run the entire pipeline and win the trust of the MPOG staff involved in the |
317 | process. They saw the mobilization and responsiveness of our team to generate | 316 | process. They saw the mobilization and responsiveness of our team to generate |
318 | each new version package. They also recognized the quality of our work and | 317 | each new version package. They also recognized the quality of our work and |
319 | -deployment process. In the end, the MPOG staff realized that it would be | 318 | +deployment process. In the end, the government staff realized that it would be |
320 | beneficial for the project if they granted us access to the infrastructure, | 319 | beneficial for the project if they granted us access to the infrastructure, |
321 | both VE and PE. | 320 | both VE and PE. |
322 | 321 | ||
323 | In summary, we encourage the use of a well-thought CD pipeline as a means to | 322 | In summary, we encourage the use of a well-thought CD pipeline as a means to |
324 | -gain trust in software development projects with government organizations. | 323 | +gain trust in software development projects with government and large |
324 | +organizations as well. | ||
325 | 325 | ||
326 | ## References | 326 | ## References |
327 | 327 |