Commit 15b72c1e6c8349561dcc99c3c71040c686af5958

Authored by Paulo Meireles
1 parent a0e1c5d9

[ieeeSW] Improving Introduction

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