Impacts of Continuous Delivery in Software Projects

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorKlemetti, Marko
dc.contributor.authorHaverila, Severi
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.supervisorKauppinen, Marjo
dc.date.accessioned2016-10-12T11:40:41Z
dc.date.available2016-10-12T11:40:41Z
dc.date.issued2016-09-26
dc.description.abstractContinuous delivery views software development holistically. It breaks down barriers that have traditionally been between development, testing and operations and combines them to a single working unit. The idea of continuous delivery is to develop software in such a way that the software is always in a releasable state and can be deployed into production at any time. This thesis studies continuous delivery from the perspective of the following research problem: How does continuous delivery affect software projects? The topic is researched based on both a literature review and an empirical study performed. The latter consists of three interviews, a presentation and a follow-up survey based on the presentation. The results of this thesis indicate that automation of manual tasks -- such as building, testing and deploying the software -- is a key building block of continuous delivery. In addition, the following principles facilitate a successful adoption of continuous delivery: build quality in, shared responsibility and creation of a reliable and repeatable software release process. These principles include different practices -- such as test-driven development, frequent integration of code and frequent deployments -- that will steer the software projects to the right direction. Continuous delivery makes software deployments more reliable and flexible. It also increases the transparency of the development process and can have a positive effect on customer satisfaction. On the other hand, continuous delivery requires a higher initial investment and can require a fundamental change in how the software is being developed. Developers utilizing continuous delivery have to be skilled not just in development practices, but they also have to have knowledge over test automation and the operational side related to software deployments. All in all, continuous delivery impacts the whole process of developing software starting from how software is to be developed and deployed until how the process should be supported on an organizational level. This makes continuous delivery a challenging process to adopt, but often this effort is worth due to all the benefits it introduces.en
dc.description.abstractJatkuva toimittaminen käsittelee ohjelmistokehitystä kokonaisvaltaisesti ja yhdistää ohjelmistokehityksen, ohjelmistotestauksen, sekä tuotantotoiminnot yhdeksi toimivaksi kokonaisuudeksi. Jatkuvan toimittamisen tärkein tavoite on mahdollistaa ohjelmiston julkaisu koko sen kehityksen elinkaaren ajan. Tämä diplomityö tutkii jatkuvan toimittamisen ohjelmistoprojekteihin tuomia vaikutuksia. Tähän tutkimusongelmaan vastataan kirjallisuuskatsauksen sekä empiirisen tutkimuksen kautta. Empiirinen tutkimus sisältää kolme haastattelua, esityksen sekä esitykseen pohjautuvan kyselyn. Diplomityössä suoritetun tutkimuksen tulokset osoittavat, että manuaalisten työvaiheiden -- kuten ohjelmiston kääntämisen, testaamisen ja julkaisun -- automatisointi on keskeinen osa jatkuvaa toimittamista. Lisäksi jatkuvan toimittamisen käyttöönotto vaatii erilaisten periaatteiden noudattamista, joista tämä diplomityö nostaa esiin seuraavat: laadun sisäänrakentaminen, jaettu vastuu, sekä luotettavan, että toistettavan julkaisuprosessin luominen. Nämä periaatteet sisältävät käytäntöjä kuten testivetoinen ohjelmistokehitys, jatkuva integraatio sekä toistuva ohjelmiston julkaiseminen, jotka ohjaavat ohjelmistoprojekteja oikeaan suuntaan. Jatkuva toimittaminen tekee ohjelmiston julkaisemisesta luotettavampaa ja joustavampaa. Tämän lisäksi se parantaa ohjelmistokehitysprosessin läpinäkyvyyttä ja voi vaikuttaa positiivisesti asiakastyytyväisyyteen. Jatkuvan toimittamisen käyttöönotto kasvattaa projektien aloituskustannuksia ja se saattaa vaatia perinpohjaista muutosta käytössä oleviin ohjelmistokehityskäytäntöihin. Sen hyödyntäminen edellyttää myös kehittäjiltä laaja-alaista osaamista, sillä heidän täytyy ohjelmistokehityksen lisäksi pystyä työskentelemään testiautomaation sekä tuotantotoimintojen parissa. Jatkuva toimittaminen vaikuttaa niin yksittäisten kehittäjien toimintatapoihin kuin myös siihen, kuinka organisaatioiden tulee tukea projekteja. Tämä tekee jatkuvan toimittamisen käyttöönotosta haastavaa, mutta usein tähän käytetty aika on sen tuomien hyötyjen takia vaivan arvoista.fi
dc.format.extent68+19
dc.format.mimetypeapplication/pdfen
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/22835
dc.identifier.urnURN:NBN:fi:aalto-201610124935
dc.language.isoenen
dc.programmeMaster’s Programme in Computer, Communication and Information Sciencesfi
dc.programme.majorSoftware and Service Engineeringfi
dc.programme.mcodeSCI3043fi
dc.rights.accesslevelopenAccess
dc.subject.keywordcontinuous deliveryen
dc.subject.keywordcontinuous deploymenten
dc.subject.keywordcontinuous integrationen
dc.subject.keywordtest automationen
dc.titleImpacts of Continuous Delivery in Software Projectsen
dc.titleJatkuvan toimittamisen vaikutus ohjelmistoprojekteissafi
dc.typeG2 Pro gradu, diplomityöfi
dc.type.okmG2 Pro gradu, diplomityö
dc.type.ontasotMaster's thesisen
dc.type.ontasotDiplomityöfi
dc.type.publicationmasterThesis
local.aalto.idinssi54667
local.aalto.openaccessyes
Files
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
master_Haverila_Severi_2016.pdf
Size:
1.39 MB
Format:
Adobe Portable Document Format