haku: @keyword continuous integration / yhteensä: 15
viite: 4 / 15
Tekijä:Haverila, Severi
Työn nimi:Impacts of Continuous Delivery in Software Projects
Jatkuvan toimittamisen vaikutus ohjelmistoprojekteissa
Julkaisutyyppi:Diplomityö
Julkaisuvuosi:2016
Sivut:(7) + 68 s. + liitt. 19      Kieli:   eng
Koulu/Laitos/Osasto:Perustieteiden korkeakoulu
Oppiaine:Software and Service Engineering   (SCI3043)
Valvoja:Kauppinen, Marjo
Ohjaaja:Klemetti, Marko
Elektroninen julkaisu: http://urn.fi/URN:NBN:fi:aalto-201610124935
Sijainti:P1 Ark Aalto  4634   | Arkisto
Avainsanat:continuous delivery
continuous deployment
continuous integration
test automation
jatkuva toimittaminen
testiautomaatio
Tiivistelmä (fin):Jatkuva 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.
Tiivistelmä (eng):Continuous 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.
ED:2016-10-16
INSSI tietueen numero: 54667
+ lisää koriin
INSSI