Commit 295eb86ba31fb02802de1ef648a0185f68d89ea6

Authored by Paulo Meireles
1 parent dc9068ba

[ieeeSW] Review introduction

ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
@@ -16,7 +16,7 @@ understand how important CD adoption is to their projects. @@ -16,7 +16,7 @@ understand how important CD adoption is to their projects.
16 We worked on a three-year-long Brazilian government project to evolve an 16 We worked on a three-year-long Brazilian government project to evolve an
17 existing platform that had technical issues and lacked political support. The 17 existing platform that had technical issues and lacked political support. The
18 evolution project started in a presidential election year and everyone involved 18 evolution project started in a presidential election year and everyone involved
19 -were under pressure to show results. Even with the re-election of the Brazilian 19 +was under pressure to show results. Even with the re-election of the Brazilian
20 President in 2014, leaderships in governmental agencies ended up changing. Each 20 President in 2014, leaderships in governmental agencies ended up changing. Each
21 one of them had different political agendas which affected the project's 21 one of them had different political agendas which affected the project's
22 requirements previously approved. Despite this scenario of instability, we 22 requirements previously approved. Despite this scenario of instability, we
@@ -27,26 +27,26 @@ Our team from the University of Brasília (UnB) and the University of São Paulo @@ -27,26 +27,26 @@ Our team from the University of Brasília (UnB) and the University of São Paulo
27 (USP) developed the new platform for the Brazilian Public Software (SPB, 27 (USP) developed the new platform for the Brazilian Public Software (SPB,
28 Portuguese acronym) Portal (www.softwarepublico.gov.br) from 2014 to 2016. The 28 Portuguese acronym) Portal (www.softwarepublico.gov.br) from 2014 to 2016. The
29 SPB Portal evolved to a Collaborative Development Environment [1] and this 29 SPB Portal evolved to a Collaborative Development Environment [1] and this
30 -evolution brought about important benefits not just to the Brazilian 30 +evolution brought important benefits not just to the Brazilian
31 government, but also to society as a whole. For the government, the 31 government, but also to society as a whole. For the government, the
32 -bureaucracy on using the same software across governmental agencies, duplicate  
33 -works, and costs all were reduced. The society gained a transparency and  
34 -collaboration mechanism, since anyone can check the government expenses on  
35 -software and contribute to the software communities. To achieve these goals, 32 +bureaucracy of using the same software across governmental agencies, duplicate
  33 +works, and costs were all reduced. The society gained a transparent and
  34 +collaborative mechanism, since anyone can check the government expenses on
  35 +software and contribute to software communities. To achieve these goals,
36 rather than writing everything from scratch, we decided to integrate several 36 rather than writing everything from scratch, we decided to integrate several
37 free software tools such as Gitlab (www.gitlab.com), Mailman 37 free software tools such as Gitlab (www.gitlab.com), Mailman
38 (www.gnu.org/software/mailman), Noosfero (www.noosfero.org), and Colab 38 (www.gnu.org/software/mailman), Noosfero (www.noosfero.org), and Colab
39 (www.github.com/colab). 39 (www.github.com/colab).
40 40
41 -During the entire SPB Portal evolution project, we had to handle three distinct  
42 -issues, usual in a software engineering scenario: achieving the goals which have  
43 -guided the platform development, managing the diversity of team project  
44 -members, and communicating effectively with clients (in this case,  
45 -government agents). Handling the interaction of these elements was not easy and 41 +During the entire SPB Portal evolution project, we overcame three distinct
  42 +issues, usual in a software engineering scenario: (i) achieving the goals which have
  43 +guided the platform development, (ii) managing the diversity of team
  44 +members, and (iii) communicating effectively with clients (in this case,
  45 +government agents). Handling the interaction of these elements was challenging and
46 the unstable Brazilian political scenario only made things worse. 46 the unstable Brazilian political scenario only made things worse.
47 47
48 To achieve the SPB project goals, we had to overcome strong political bias tied 48 To achieve the SPB project goals, we had to overcome strong political bias tied
49 -with complicated technical issues and relatively low budget. Because it 49 +with complicated technical issues and relatively low budget. Because the project
50 is open to the public, the government representatives saw the platform as a 50 is open to the public, the government representatives saw the platform as a
51 marketing opportunity and sometimes ignored technical advice in favor of 51 marketing opportunity and sometimes ignored technical advice in favor of
52 political decisions. Furthermore, integrating a number of distinct systems to 52 political decisions. Furthermore, integrating a number of distinct systems to
@@ -54,47 +54,46 @@ work seamlessly was not an easy job. We had to learn how each system worked and @@ -54,47 +54,46 @@ work seamlessly was not an easy job. We had to learn how each system worked and
54 to come up with ideas of how to integrate them as fast as possible, with a team 54 to come up with ideas of how to integrate them as fast as possible, with a team
55 of mostly inexperienced developers. 55 of mostly inexperienced developers.
56 56
57 -We also had to manage the diversity of the SPB team members. This team was 57 +We also had to manage the diversity of our team members. The team was
58 composed of approximately 50 undergraduate students (not all simultaneously) 58 composed of approximately 50 undergraduate students (not all simultaneously)
59 -together with professors, masters students, professional designers and 59 +together with professors, master students, professional designers and
60 senior developers from the Brazilian free software community. Undergraduate 60 senior developers from the Brazilian free software community. Undergraduate
61 students received a scholarship and, for most of them, this R&D project was 61 students received a scholarship and, for most of them, this R&D project was
62 -their first professional experience. Seniors developers and masters students 62 +their first professional experience. Senior developers and master students
63 had two important contributions to the project: transfer knowledge to 63 had two important contributions to the project: transfer knowledge to
64 -undergraduate students and address hard tasks. Finally, professors were  
65 -responsible for interacting with the Brazilian government and controlling the 64 +undergraduate students and more complex tasks. Finally, professors were
  65 +responsible for interacting with the Brazilian government and controlling
66 political pressures applied to the project. 66 political pressures applied to the project.
67 67
68 -The third point to be handled was the communication with two independent groups  
69 -of government representatives: requirements analysts and deployment  
70 -technicians. Requirements analysts were the real representatives of the 68 +Moreover, we needed to communicate with two independent groups
  69 +of government representatives. Requirement analysts were real representatives of the
71 Brazilian government in the project and their role was to test new 70 Brazilian government in the project and their role was to test new
72 -features, to provide feedback to the development team, and to report for the  
73 -government leaders. Deployment technicians were in charge of administering the host 71 +features, to provide feedback to the development team, and to report to
  72 +government leaders. Deployment technicians were in charge of managing the host
74 machines wherein SPB platform was running. They were, theoretically, 73 machines wherein SPB platform was running. They were, theoretically,
75 responsible for deploying the project. However, the new SPB Portal was composed 74 responsible for deploying the project. However, the new SPB Portal was composed
76 -of more than ten different software projects, generating a complex deployment  
77 -process, for instance, working on seven servers. 75 +of more than ten different software projects, working on seven servers, generating a complex deployment
  76 +process.
78 77
79 To handle the interaction between these three elements, we realised we needed 78 To handle the interaction between these three elements, we realised we needed
80 to take control over the deployment process. We used CD as a mean to fulfill 79 to take control over the deployment process. We used CD as a mean to fulfill
81 the government expectations and to provide quick response to their requests, 80 the government expectations and to provide quick response to their requests,
82 which were influenced most of the time by the uncertainties of the project's 81 which were influenced most of the time by the uncertainties of the project's
83 continuity. We believed we would keep the project alive, even in a politically 82 continuity. We believed we would keep the project alive, even in a politically
84 -unstable and technically complex scenario. For this reason, we worked hard to 83 +unstable and technically complex scenario. For this reason, we focused on automating
85 automate the deploy process; for instance, one of our senior developers created 84 automate the deploy process; for instance, one of our senior developers created
86 a Chef-Server (www.chef.io/chef) front-end tool called Chake 85 a Chef-Server (www.chef.io/chef) front-end tool called Chake
87 -(www.gitlab.com/terceiro/chake) to help us to manage the multiple hosts needed 86 +(www.gitlab.com/terceiro/chake) to help us manage the multiple hosts needed
88 for the project. We also formed a specific team dedicated to the deployment 87 for the project. We also formed a specific team dedicated to the deployment
89 process. This team was responsible for maturing our CD pipeline, giving us 88 process. This team was responsible for maturing our CD pipeline, giving us
90 confidence and agility to comply with government requirements. 89 confidence and agility to comply with government requirements.
91 90
92 In this report, we describe our CD pipeline and how it improved our delivery 91 In this report, we describe our CD pipeline and how it improved our delivery
93 -performance. The CD made us adaptable for all requested changes and helped us 92 +performance. Continuous Delivery made us adaptable for all requested changes and helped us
94 mitigate those aforementioned political challenges, besides the technical 93 mitigate those aforementioned political challenges, besides the technical
95 -issues. Among CD’s known benefits [2], we also explain those which were the most  
96 -important in the project scenario for us: improving customer satisfaction and  
97 -making reliable releases. Both kept the project alive for more two years during 94 +issues. Among CD’s known benefits [2] we also explain those which were the most
  95 +important in our scenario: improving customer satisfaction and
  96 +making reliable releases. Both kept the project alive for years during
98 the worst political crisis after the re-democratization in Brazil. 97 the worst political crisis after the re-democratization in Brazil.
99 98
100 ## Our Continuous Delivery Pipeline 99 ## Our Continuous Delivery Pipeline