diff --git a/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md b/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md index 2153d1f..17ef33f 100644 --- a/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md +++ b/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md @@ -23,7 +23,7 @@ __Fabio Kon__ is Full Professor of the Department of Computer Science of the Uni ## Abstract -For many software development teams, the first aspects that come to mind regarding Continuous Delivery (CD) are the operational challenges and the competitive benefits. In our experience, CD was much more: it was a survival technique. This article presents how and why we applied CD in a Brazilian Government project for the development of a Collaborative Development Environment (CDE), sharing the unconventional challenges we faced and the strategies used to overcome them. +For many software development teams, the first aspects that come to mind regarding Continuous Delivery (CD) are the operational challenges and the competitive benefits. In our experience, the CD was much more: it was a survival technique. This article presents how and why we applied CD in a Brazilian Government project for the development of a Collaborative Development Environment (CDE), sharing the unique challenges we faced and the strategies used to overcome them. ## Introduction -We worked on a three-year-long Brazilian government project to evolve an existing platform that had technical issues and lacked political support. In 2014, the Ministry of Planning, Budget, and Management (MP) initiated a project to modernize the Brazilian Public Software (SPB) portal in partnership with two public universities: University of Brasilia (UnB) and University of São Paulo (USP). +We worked on a three-year-long Brazilian government project to evolve an existing platform that had technical issues and lacked political support. This project, started in 2014, was a partnership between the Ministry of Planning, Budget, and Management (MP) and two public universities: University of Brasília (UnB) and University of São Paulo (USP), to modernize Brazilian Public Software (SPB) portal. -The SPB Portal (www.softwarepublico.gov.br) evolved to a Collaborative Development Environment [1] and this evolution brought important benefits not just to the Brazilian government, but also to society as a whole. It aims to minimize bureaucracy and costs by encouraging the use of the same set of applications across different government agencies. The society also gained a mechanism of transparency and collaboration, since anyone can check the government expenses on software and contribute to project communities. +With this partnership, the SPB Portal (www.softwarepublico.gov.br) evolved to a Collaborative Development Environment[1], and this evolution brought significant benefits not just to the Brazilian government, but also to society as a whole. The government could minimize bureaucracy and costs of software development, encouraging the use of the same set of applications across different government agencies. The society also gained a mechanism of transparency and collaboration, since anyone can check the government expenses on software and contribute to project communities. -In this article, we discuss the use of Continuous Delivery (CD) during our experience as the academic partner in this project. We focus on how we managed to implement CD in a large institution with traditional values and how CD helped to build trust between the government and the development team. CD enabled us to clearly show our progress and earned us the government’s confidence that we could adequately fulfill their requests, becoming an essential aspect of our interaction with them. According to this experience, the use of CD as a tool to build such trust relationships is yet another of its benefits [2]. +In this article, we discuss the use of Continuous Delivery (CD) during our experience as the academic partner in this project. We focus on how we managed to implement CD in a large institution with traditional values and how CD helped to build trust between the government and the university development team. CD enabled us to show our progress and earned the government’s confidence that we could adequately fulfill their requests, becoming an essential aspect of our interaction with them. According to this experience, the use of CD as a tool to build such trust relationships is yet another of its benefits[2]. ## Context -The SPB is a governmental program of the MP created to foster sharing and collaboration on Open Source Software (OSS) projects for the Brazilian public administration. The MP managed both software requirements and server infrastructure of their projects. However, its hierarchical and traditional processes made them unfamiliar with new software development techniques, such as CD. Any of our requests had to pass through layers of bureaucracy before being answered. Requesting access to their infrastructure to make the deploy was not different. +The SPB is a governmental program of the MP created to foster sharing and collaboration on Open Source Software (OSS) development for the Brazilian public administration. For their projects, the MP managed both software requirements and server infrastructure. However, its hierarchical and traditional processes made them unfamiliar with new software development techniques, such as CD. Any of our requests had to pass through layers of bureaucracy before being answered. Requesting access to their infrastructure to make the deploy was not different. During its lifetime, the project suffered significant interference from the board of directors because the portal represents an interface between government and society. In light of political interests, directors continually imposed changes to the platform while ignoring our technical advice. In 2015, the board of directors was changed and, with it, the vision of the project. New directors had different political agendas which affected the project's requirements previously approved. - -In this context, we overcame three distinct challenges: (1) find a system solution wherein government and development team agree, (2) widespread belief among the government agents that any project in partnership with a University is doomed to fail, and (3) the bureaucracies involved in the deployment process by the MP. +In this context, we overcame three distinct challenges: (1) find a system solution wherein government and development team agree, (2) deconstruct the widespread belief among the government agents that any project in partnership with a University is doomed to fail, and (3) deal with bureaucracies involved in the deployment process by the MP. -Firstly, to find a system solution wherein government and development team agree, we designed the SPB Portal as a CDE with additional social features. Due to the complexity of creating such a system from scratch, we decided to adapt and integrate existing open source tools to build a system-of-systems [REF]. We created a solution that orchestrates systems and allowed us to smoothly provide a unified interface for final users, including single sign-on and global searches [4]. On top of that the new SPB Portal was an unprecedented platform to Brazilian government, with a complex deployment process. +Firstly, to find a system solution wherein government and development team agree, we designed the SPB Portal as a CDE with additional social features. Due to the complexity of creating such a system from scratch, we decided to adapt and integrate existing open source tools to build a system-of-systems [3]. We created a solution that orchestrates software and allowed us to smoothly provide a unified interface for final users, including single sign-on and global searches [4]. On top of that, the new SPB Portal was an unprecedented platform to the Brazilian government, with a complicated deployment process. -Secondly, we had to face the widespread belief among government agents that any project in partnership with a University is doomed to fail. Our team was not from a typical company, consisting mainly of undergraduate students coordinated by 2 professors. At the first year, our team was composed by 24 undergraduate students, 1 designer and 2 senior developers. In 2015, our team grew to 36 students, 2 designers, 8 senior developers. At the end of in project, due to budget constraint, we had 20 students, 1 designer and 2 senior developers. Moreover, the SPB Portal evolution was the first software development collaboration between university and government experienced by the MP analysts involved in this project. +Secondly, we had to face the widespread belief among government agents that any project in partnership with a University is doomed to fail. Our team was not from a typical company, consisting mainly of undergraduate students coordinated by two professors. At the first year, we had a group composed of 24 undergraduate students, one designer, and two senior developers. In 2015, our team grew to 36 students, two designers, eight senior developers. At the end of in project, due to budget constraint, we had 20 students, one designer, and two developers. Also, on the government side, the SPB Portal evolution was the first software development collaboration between university and government experienced by the MP analysts involved in the project. -Lastly, our team thought of software deployment differently than the MP. On our side, we believe that frequent deliveries are better for the project’s success. However, the MP works with the idea of a single deployment at the end of the project. In other words, the MP was neither technically prepared nor the bureaucratic structured foresaw this kind of work style. In additionally, there was very little effort to deploy new versions of the system in a timely manner. That ended up hampering the benefits of the tool and preventing us from showing off the fruits of the project to those responsible for evaluating it. +Lastly, our team thought software deployment differently than the MP. On our side, we believe that frequent deliveries are better for the project’s success. However, the MP works with the idea of a single deployment at the end of the project. In other words, neither the bureaucratic structure of the MP nor its technical abilities were conducive to this style of work. Furthermore, there was little effort to deploy new versions of the system promptly. That ended up hampering the benefits of the tool and preventing us from showing off the fruits of the project to those responsible for evaluating it. -These challenges made our relationship with the MP tense, in particular at the first year of the project, and alerted us for the fact that the project could be finished at any time. The deployment limitation was the main technical issue we could tackle in the short term. As a result, we worked to deploy one version of the project onto our own infrastructure and showed it to the government evaluators. This strategy proved them that we could efficiently deliver new features, fulfill their expectations regarding the delivery of the requirements, and mobilized them to demand these features working in the MP infrastructure. This, in turn, generated more pressure on the IT department responsible for the deployment routines. This was compounded with each CD cycle, allowing us to gradually built a new relationship among all parties and, by the end of the project, to become active participants in the deploy operations. +These challenges made our relationship with the MP tense, in particular at the first year, and alerted us to the fact that they could finish the project at any time. The deployment limitation was the substantial technical issue we could tackle in the short term. As a result, we worked to deploy one version of the project onto our infrastructure and showed it to the government evaluators. This strategy proved them we could efficiently deliver new features, fulfill their expectations regarding the delivery of the requirements, and incited them to demand the last version working in the MP infrastructure. These results, in turn, generated more pressure on the IT department responsible for the deployment routines. With each CD cycle, we gradually built a new relationship among all parties and, by the end of the project, we became active participants in the deploy operations. ## Our Continuous Delivery Pipeline -- libgit2 0.21.2