From c555eb1cc0b824926e79b4d85079107a38aa084c Mon Sep 17 00:00:00 2001 From: Paulo Meirelles Date: Thu, 27 Jul 2017 17:47:23 -0300 Subject: [PATCH] [i3eSW] Changing the title, adding the abstract, and improving the introduction and context --- ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md | 83 ++++++++++++++++++++++------------------------------------------------------------- 1 file changed, 22 insertions(+), 61 deletions(-) diff --git a/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md b/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md index b69b748..d7a0051 100644 --- a/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md +++ b/ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md @@ -1,53 +1,32 @@ -[//]: # (TODO - Ideias para o título: Continuous Delivery in the Time of Impeachment / Surviving Continuous Political Scandals using Continuous Delivery / Continuous Delivery in the Time of Political Crisis) -[//]: # (Nosso projeto acabou entes do impeachment. O Wagner só continuou com o SPB porque tinha um parecer do TCU para o MPOG responder, caso contrário o projeto teria acabado na virada para o segundo mandato.) - -# Surviving a Political Crisis Using Continuous Delivery +# The Strategic Importance of Continuous Delivery ## Abstract +Many software development teams think of the operational aspects of Continuous Delivery (CD) and the competitive benefits that come along with it. For us, it was much more: it was a survival technique. This article presents the experience applying CD in a Brazilian Government project for the development of a Collaborative Development Environment, sharing its unconventional challenges and our strategies used to overcome them. This report from the trenches of the Brazilian Federal Government can help practitioners to understand how important the CD adoption is to their projects. ---- -## Introduction - -Many companies think of the operational aspects of Continuous Delivery (CD) and the competitive benefits that come along with it. For us, it was much more: it was a survival technique. - -We have worked on a Brazilian government three-year-long project. The project started in a presidential election year and everyone involved were under Presidential re-election campaign pressure to show results. That was when, the Brazilian Federal Police started an investigation named Operation Car Wash, which revealed a huge corruption system and then, the political crisis came. As a result, leadership in government agencies could suddenly change. That reflected on the project’s requirements: each new leader wanted to fulfill their political agenda on which, unfortunately, our project was not part. In this scenario, delivery delays could have sunk the project into oblivion. - -[//]: # (TODO - Melhorar a construção. Algo como: "infelizmente não estavamos na agenda deles..." aí em seguida "CD fez com que voltassemos para a agenda deles"... algo assim.) -[//]: # (TODO - Adicionar referência do artigo inspiração do Siqueira para CD’s benefits) -[//]: # (Daria um bom impacto mencionar quantas vezes foram trocados secretários e ministros nesse intervalo de tempo: 2 ministros e 3 diretores) +## Introduction and Context -Here, we describe how we used CD to rapidly deliver software accordingly to those new agendas and putting the project on each one of them. Among CD’s benefits, the most important to us was to improve customer satisfaction and to make reliable releases. Both of them kept the project alive for another two years during the crisis. +We have worked on a Brazilian government three-year-long project to evolve an existing platform that had technical issues and a lack of political support. The evolution project started in a presidential election year and everyone involved were under Presidential re-election campaign pressure to show results. Even with the re-election of the Brazilian President in 2014, leadership in government agencies suddenly changed, what was worsened by corruption scandals revealed by the Brazilian Federal police, in particular the Car-Wash investigation (FOOTNOTE). That reflected on the project’s requirements: each new leader wanted to fulfill their political agenda. In this scenario, delivery delays could have sunk the project into oblivion. ---- -## The Context +From 2014 to 2016, our team developed the new platform for the Brazilian Public Software (SPB, Portuguese acronym) Portal (www.softwarepublico.gov.br) funded by a grant of 2,619,965.00 BRL (about 1.000,000.00 USD in January 2014) from the Federal Government. The SPB Portal has evolved to a Collaborative Development Environment (CDE)[1] and this evolution has brought important benefits not just to the Brazilian government , but also to society as a whole. For the government, the bureaucracy on using the same software across government agencies, duplicate works and costs all are reduced. The society gains a transparency and collaboration mechanism, since anyone can check the government expenses on software and contribute to the software communities. To achieve these goals, we have chosen to integrate more than free software tools (such as Gitlab (www.gitlab.com), Mailman (www.gnu.org/software/mailman), Noosfero (www.noosfero.org), and Colab (www.github.com/colab)) rather than write everything from scratch. -[//]: # (TODO - Ver nos outros artigos como adicionar links para sites ou repositórios das ferramentas citadas.) - -From 2014 to 2016, our team developed the new platform for the Brazilian Public Software Portal (PSPB, Portuguese acronym). The PSPB has evolved to a Collaborative Development Environment (CDE) and this evolution has brought important benefits not just to the government , but also to society as a whole. For the government, the bureaucracy on using the same software across government agencies, duplicate works and costs all are reduced. The society gains a transparency and collaboration mechanism, since anyone can check the government expenses on software and contribute to the software communities. To achieve these goals, we have chosen to integrate many open source tools (e.g.: Gitlab, Mailman, Noosfero and Colab) rather than write everything from scratch. - -During the entire project, we had to handle three distinct issues, usual in a software engineering scenario: reaching the goals which have guided the platform development, managing the diversity of team project members and communicating effectively with clients (in this particular case, government agents). Managing the interaction of these elements was not easy and the unstable Brazilian political scenario only made things worse. +During the entire SPB Portal evolution project, we had to handle three distinct issues, usual in a software engineering scenario: reaching the goals which have guided the platform development, managing the diversity of team project members, and communicating effectively with clients (in this particular case, government agents). Managing the interaction of these elements was not easy and the unstable Brazilian political scenario only made things worse. To reaching the SPB project goals, we had to overcome strong political bias tied with complicated technical issues and relatively low budget. Because it is open to the public, the government representatives have seen the platform as a opportunity of marketing and have often ignored the technical advice in favor of political decisions. Furthermore, integrating a number of distinct systems to work seamlessly was not an easy job. We had to learn how each system worked and come up with ideas of how to integrate them as fast as possible, with a team of mostly inexperienced developers. -We also had to manage the diversity of the SPB team members. This team was composed of approximately 50 undergraduate students (not all simultaneously), 3 professors, 2 masters students, 2 professional designers and 6 senior developers from Free and Open Source Software (FOSS) community. Undergraduate students have received a fellowship and, for most of them, this R&D project was their first professional experience. Seniors and masters students had two important contributions to the project: transfer knowledge to undergraduate students and address hard tasks. Finally, professors were responsible for interacting with the Brazilian government and control the political pressures applied to the project. - -Our third point to be handled was the communication with the group of government representatives: requirements analysts and deployment technicians. requirements analysts and deployment technicians. Requirements analysts usually tested new features, provided feedback, and reported for directors. The deployment technicians had the access to the host machines wherein SPB platform was running. They were also responsible for deploying the project, even though they never made one. They tried their best to avoid the task because they would not have our support at the end of the project and would have to take care of the entire infrastructure. - -Nevertheless, besides those three elements, a new factor abruptly emerged after nine months of project: the Brazilian political and economical crisis that started in 2014 and culminated in the president’s impeachment in 2016[r]. +We also had to manage the diversity of the SPB team members. This team was composed of approximately 50 undergraduate students (not all simultaneously) together with professors, masters students and professional designers as well as senior developers from the Brazilian free software community. Undergraduate students have received a fellowship and, for most of them, this R&D project was their first professional experience. Seniors developers and masters students had two important contributions to the project: transfer knowledge to undergraduate students and address hard tasks. Finally, professors were responsible for interacting with the Brazilian government and control the political pressures applied to the project. -As a result, our meetings with government representatives became tense, since leadership constantly changed their project view. Also, the developers were worried with the project instability and many of them started looking for another job. Finally, government agents were under political pressure and became resistant to our work since any mistake could impact their careers. +Our third point to be handled was the communication with the two independent groups of government representatives: requirements analysts and deployment technicians. Requirements analysts were the real representatives of the Brazilian government in the project. They usually tested new features, provided feedback, and reported for directors. The deployment technicians only had the access to the host machines wherein SPB platform was running. They were, theoretically, responsible for deploying the project. However, the new SPB Portal was composited from more than ten different software projects, generating a complex deploy process working on seven servers. -In that context, we realised that we needed to take control over the deployment process. We would use CD as a mean to keep the government satisfied and provide quick response times to their requests. We believed that would keep the project alive in this delicate scenario. However, this task was not simple since we did not have any DevOps strategy or CD pipeline. To solve this problem, during one month we did a movement to automate all the deploy. At the same time, we did a political movement to convince the government to follow our advice and give us partial access to the infrastructure. That motivated us to create a team dedicated to the deployment process with the mission to develop a CD pipeline that would give us confidence to meet the government’s requirements faster. +Therefore, we realised that we needed to take control over the deployment process. We would use CD as a mean to keep the government satisfied and provide quick response times to their requests which were, most of the time, influenced by the uncertainties of project continuity. We believed that would keep the project alive even in an politically unstable and complex technical scenario. For that, during months we have worked to automate all the deploy process. For instance, we have created a tool called Shak (Self Hosting Applications Kit) that offers an application installation with only instruction. It aims to make the deploy process easier for users without technical knowledge, ensuring privacy and security for their Internet applications. Thereby, we created a specific team dedicated to the deployment process to mature our CD pipeline that would give us confidence to meet the government’s requirements faster and faster. -[//]: # (Avaliar este último parágrafo, se vale ou não comentar que tentamos convencer o governo) +We describe our CD pipeline and how it speeded up our software delivery time. The CD made us adaptable for all requested changes and helped us to mitigate those aforementioned political challenges besides the technical issues. Among CD’s known benefits[2], we also explain those that were the most important in the project scenario for us: improving customer satisfaction and making reliable releases. Both kept the project alive for more two years during the worst political crisis after the re-democratization in Brazil. ---- ## Our Continuous Delivery Pipeline [//]: # (TODO - Fazer a imagem. Sem esquentar muito a cabeça, uma vez que a revista deve refazer tal imagem) -conjunto de features -> testes automatizados → criação de tag → empacotamento →deploy em homologação → testes de aceitação → deploy em produção +[//]: # (conjunto de features -> testes automatizados → criação de tag → empacotamento →deploy em homologação → testes de aceitação → deploy em produção) [//]: # (TODO - Rever essa frase - é uma legenda da imagem?) @@ -95,7 +74,7 @@ Production Deployment After the government authorizes the VE, we can finally begin the production deployment. We use the same configuration management tool with the same scripts. After the deploy is completed, both VE and PE are on the same state. The new features and bug fixes are finally available to end users. ---- + ## Benefits We had to handle many tensions between development and political issues. Our CD pipeline gave us strong mechanisms to tackle most of the problems. As a result we came with some benefits from our decision to adopt CD. @@ -112,7 +91,7 @@ The direct benefit from the CD pipeline was the fast response to the changes req After we established the CD, the government agents started to be more confident in our work. First, because they noticed that each new deploy made by us in the VE was stable and reliable. Second, they could see new features fast since we constantly updated the VE based on their feedback. This made our relation strong and in moments that needed quick action they would rather give us access to production. ---- + ## Challenges We successfully built a functional CD pipeline. In the end, we took over the deployment process from the government. That allowed us to survive into an unstable political scenario. However, we recognized that many challenges still need to be addressed by the industry and academia together. @@ -136,30 +115,12 @@ After the developers learned how CD worked, it was difficult to pass the knowled In the project’s first half we struggled with deploy related problems in the government structure. We were in a paradoxical situation. The government demanded speedy deliveries but would not give access to their production infrastructure. As an example, only in a very specific situation the government allowed us to access the PE. After some interactions with the government we convinced them to create the VE as an isolated replica of the PE in their own infrastructure. The government agents then realized that it could be good for the project if they granted us access to part of the structure since we could deliver new features to them faster. We believe it is required more research on development protocols and policies to improve the relation between industry and government, specially regarding CD. ---- - -## Sobre a chamada - -Release Engineering 3.0 – Call for Papers: https://www.computer.org/software-magazine/2016/12/14/release-engineering-3-0-call-for-papers/ -Orientações: -https://www.computer.org/web/peer-review/magazines - -### TODO -* [ ] Manter distância de qualquer análise política ou opinião. Relatar os fatos que podem ser facilmente verificados -* [x] Lembrar que o SPB também tinha uma pegada social, uma vez que produzia bolsas para mais de 50 alunos. Podíamos ter acatado o fim do projeto, mas resistimos pelo alunos e pelo fato de que acreditávamos que o nosso trabalho era útil para a sociedade. Abortado por não fazer sentido -* [ ] Procurar uma referência meio fortinho em inglês que indique a instabilidade política do Brasil -* [ ] Lembrar que da introdução tem que ser uma história bem contada e conectada para mostrar como o CD deliver nos ajudou -* [x] Precisamos mostrar que levou um tempo para se adaptar e que também tínhamos um forte trabalho em passar o conhecimento. feito -* [x] Faz sentido falar sobre a infra de homologação e prod? SIM, falamos -* [ ] Faz sentido falar das dificuldades em testar o deploy? (Meu computador não tinha capacidade suficiente pra rodar o deploy completo, por exemplo) -* [ ] Faz sentido falar do shak mesmo sem um artigo para referenciar? -* [ ] A argumentação sobre termos assumido o deploy está muito centralizada na política. Não tínhamos motivação sobre a qualidade do código? -* [ ] Ao revisar, verificar a consistência do uso dos tempos verbais -* https://www.forbes.com/search/?q=car%20wash%20brazil#10d6d8bd279f -* Talvez adicionar esse trecho na parte de challenges - * Estabelecer cultura devops: Mania de alterar coisas em VE na mão -* [ ] Os benefícios estão fracos. Precisamos melhorar eles. Segue algumas ideias que sobraram. - 1. Adaptamos o escopo do projeto seguindo a demanda do mpog - 1. Adaptamos a forma de interação com o ministério - 1. Conseguimos uma boa sintonia entre o time -* Bom link: https://www.linux.com/blog/learn/chapter/dev-ops/2017/7/devops-fundamentals-part-3-continuous-delivery-and-deployment + +## References + +1. Collaborative Development Environment (TO-DO REF) +1. L. Chen, "Continuous Delivery: Huge Benefits, but Challenges Too," in IEEE Software, vol. 32, no. 2, pp. 50-54, Mar.-Apr. 2015. +1. "Brazilian Public Software Portal: an integrated platform for collaborative development", in OpenSym ’17, August 23–25, 2017, Galway, Ireland. + + + -- libgit2 0.21.2