Adopting Continuous Delivery: A Case Study

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2016-04-04
Department
Major/Subject
Programvaruproduktion och -affärsverksamhet
Mcode
T3003
Degree programme
Tietotekniikan koulutusohjelma
Language
en
Pages
76
Series
Abstract
Continuous delivery (CD) is a practice that builds upon the concept of continuous integration. When developing software with CD, every change that passes through the deployment pipeline results in a fully working product that can be deployed without effort. This practice has the potential to accelerate value delivery, improve the software quality and increase developer productivity. The goal of this thesis is to investigate the adoption of CD and evaluate the results of the adoption in a single case organization. This is done through a single case study, primarily on the basis of qualitative data from interviews but also utilizing quantitative data from tools used in the development environment. The study shows that the multi-year transition included adoption of many of the typical methods and tools reported in existing research. This includes construction of a deployment pipeline, automation of tests and employment of environment independent builds. Increased communication and collaboration between developers and stakeholders was a major enabler of the adoption, but can also be seen as a beneficial outcome. Other reported benefits of the transition was increased productivity, improved product quality, improved developer morale as well as infrastructural and organizational agnosticism. Exploratory analysis of ticket system metadata did not reveal any definite quantitative results of the adoption, but showed that metrics from different systems can be used to evaluate and reason about the progress of CD adoption. In the case studied, CD was achieved despite the obstacles introduced by the heavily coupled systems under development and legacy code base. Positive outcomes of the transition were observed by both the developing organization and customer.

Kontinuerlig leverans (KL) är en praxis som bygger vidare på kontinuerlig integration av programvara. När man utövar KL vid programvaruutveckling så resulterar varje ändring av källkoden som tar sig igenom alla leveranspipelinens steg i en fullt fungerande produkt som kan sättas i drift utan möda. Denna praxis kan potentiellt accelerera leveransen av värde, höja programvarans kvalitet och öka på utvecklarnas produktivitet. Målet med detta arbete är att undersöka ibruktagandet av KL samt att utvärdera resultaten av ibruktagandet i en organisation. Detta görs genom en enfallstudie, med kvalitativ data från intervjuer som primärkälla samt kvantitativ metadata från verktyg som används i utvecklingsmiljön. Studien visar att den fleråriga transformationen inkluderade ibruktagandet av många av de typiska metoder och verktyg som rapporterats i existerande forskning. Detta innebar t.ex. byggandet av en leveranspipeline, automatisering av tester samt övergången till miljöoberoende byggen. Ökad kommunikation och samarbete mellan utvecklare och intressenter var en viktig möjliggörande faktor för övergången, och kan också se som ett gynnsamt resultat. Andra fördelar med KL i detta fall är den ökade produktiviteten, förbättrade produktkvaliteten, höjd arbetsmoral samt organisatorisk och infrastrukturell agnosticism. Explorativ analys av metadata från ärendehanteringssystemet avslöjade inte några tydliga kvantitativa resultat av övergången till KL, men visade att mätare från olika system kan användas för att utvärdera och resonera om ibruktagandet. I fallet som studerades uppnåddes KL trots de hinder som utgjordes av de kraftigt ihop koppade systemen under utveckling och den föråldrade källkoden. De positiva resultaten av övergången observerades såväl av den utvecklande organisationen som av kunden.
Description
Supervisor
Lassenius, Casper
Thesis advisor
Itkonen, Juha
Keywords
continuous delivery, continuous integration, single case study, transformation
Other note
Citation