Enabling continuous integration and continuous delivery for a small software development team

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2021-08-24
Department
Major/Subject
Information Networks
Mcode
SCI3047
Degree programme
Master’s Programme in Information Networks
Language
en
Pages
78+10
Series
Abstract
Companies delivering software solutions are under constant pressure to meet the requirements of the continuously changing market. It is important that companies can deliver and release services frequently without compromising quality. Continuous integration (CI) and continuous delivery (CD) are common software development principles utilized to improve the frequency of reliable releases. CI and CD are designed to accelerate the development and delivery process without compromising quality and have become widely established practices in the software development industry. The goal of this thesis was to investigate means for adopting a CI and CD process by a software development team. The thesis was conducted as an action research and was divided into a cycle of activities, including problem diagnosis, action intervention, and reflective learning. The action intervention and reflective learning activities were conducted in two iterations. The qualitative data were gathered by conducting semi-structured interviews, observations, and a focus group. The outcome is a proposal of a new CI and CD process which was implemented for a small software development team in a large financial institution. A new central source repository hosted on a Bitbucket server was considered the backbone of the implemented process by enabling traceability, version control and code review. Therefore, fulfilling the most prioritized requirements defined by the team. Automated software builds were utilized to deploy changes to the different environments which enabled the developers to manage all code in one central source repository. Furthermore, the automated software builds reduced human errors by ensuring that all environments were synchronized. As a conclusion, the results indicate that utilizing a version control system and a central source repository are essential for enabling the adoption of a CI and CD process. Furthermore, incrementally enabling parts of a CI and CD process can increase team awareness which is found to improve the possibility of successfully adopting the process.

Vaihtelevat markkinatarpeet ja lisääntynyt kilpailu asettaa vaatimuksia yrityksille parantaa ohjelmistopalvelujen toimitustiheyttä laatua heikentämättä. Jatkuva integrointi ja jatkuva toimitus ovat yleisesti hyödynnettyjä ohjelmointikehitysperiaatteita, luotettavien palveluiden julkaisujen tiheyden parantamiseksi. Ohjelmistokehitysperiaatteista on muodostunut laajalti vakiintuneita käytäntöjä ohjelmistokehitysalalla. Tämän opinnäytetyön tavoitteena on tutkia, miten ohjelmistokehitysyksikkö käyttöönottaa jatkuvan integraation ja jatkuvan toimituksen menetelmät. Opinnäytetyö toteutettiin toimintatutkimuksena. Tutkimuksessa kartoitettiin yksikön nykytilanne ja vaatimukset uudelle prosessille minkä perusteella suunniteltiin ja toteutettiin uusi prosessi. Yksikön jäsenet käyttivät uutta prosessia osana ratkaisun todennus vaihetta, toteuttavuuden määrittämiseen. Tutkimus oli iteratiivinen prosessi mikä jaettiin kahteen iteraatioon. Laadullinen tutkimusaineisto kerättiin teemahaastatteluilla, havainnoilla ja kohderyhmää käyttäen. Tuloksena on ehdotus uudesta jatkuvan integroinnin ja jatkuvan toimituksen prosessista, joka toteutettiin pienelle ohjelmointikehitysyksikölle suuressa finanssialan organisaatiossa. Toteutetun prosessin keskeisin tekijä oli lähdekoodin hallitseminen Bitbucket-palvelimella, joka mahdollisti koodikatselmuksen sekä paransi jäljitettävyyttä ja versionhallintaa. Prosessi täyttää näin ollen yksikön tärkeimmät vaatimukset. Ohjelmistomuutokset toimitettiin eri ympäristöihin automatisoitujen tehtävien avulla, mahdollistaen lähdekoodin hallinnan yhdestä paikasta. Inhimilliset virheet vähentyivät automatisoitujen tehtävien ansiosta. Tiivistettynä, versionhallintajärjestelmän käyttö ja lähdekoodin hallinnointi keskitetysti on oleellinen osa jatkuvan integroinnin ja jatkuvien toimitustapojen käyttöönoton mahdollistamiseksi. Lisäksi tutkimus osoittaa, että asteittainen jatkuvan integraation ja jatkuvan toimituksen käyttöönotto voi lisätä yksikön tietoisuutta ja ymmärrystä, mikä on havaittu parantavan mahdollisuutta prosessin onnistuneeseen käyttöönottoon.
Description
Supervisor
Kauppinen, Marjo
Thesis advisor
Kauppinen, Marjo
Keywords
continuous integration, continuous delivery, software development, CI, CD, action research
Other note
Citation