haku: @keyword ketterä ohjelmistokehitys / yhteensä: 34
viite: 4 / 34
Tekijä:Kuusela, Matias
Työn nimi:Architectural Design Decisions in Agile Software Development Teams
Arkkitehtuuriset suunnittelupäätökset ketterissä ohjelmistokehitysryhmissä
Julkaisutyyppi:Diplomityö
Julkaisuvuosi:2015
Sivut:56 s. + liitt. 3      Kieli:   eng
Koulu/Laitos/Osasto:Perustieteiden korkeakoulu
Oppiaine:Ohjelmistotuotanto ja -liiketoiminta   (T3003)
Valvoja:Kauppinen, Marjo
Ohjaaja:Myllärniemi, Varvana ; Kivilompolo, Mika
Elektroninen julkaisu: http://urn.fi/URN:NBN:fi:aalto-201506303578
Sijainti:P1 Ark Aalto  2888   | Arkisto
Avainsanat:software architecture
architectural design decissions
agile software development
Scrum
ohjelmistoarkkitehtuuri
arkkitehtuuriset suunnittelupäätökset
ketterä ohjelmistokehitys
Tiivistelmä (fin):Arkkitehtuuriset suunnittelupäätökset ovat olleet keskeinen osa ohjelmistoarkkitehtuurin tutkimusta jo vuosikymmenen ajan.
Kuitenkin ymmärryksemme siitä, miten arkkitehtuuriset suunnittelupäätökset tehdään ketterissä kehitysryhmissä, rajoittuu olettamukseen, että tiiviisti toimivat ketterät kehitysryhmät tekevät nämä päätökset yhdessä.
Edes tämä oletus ei päde hajautettujen ryhmien tapauksessa.

Tämän diplomityön tavoitteena on kuvata miten arkkitehtuuriset suunnittelupäätökset tehdään yhdessä ketterässä kehitysryhmässä.
Tutkimus toteutettiin toimintatutkimuksena sillä se sopii hyvin rakenteellisesti löyhien ryhmien tutkimiseen.

Tutkitussa kehitysryhmässä vastuu arkkitehtuurisista suunnittelupäätöksistä on yksittäisillä kehittäjillä.
Kuitenkin kehittäjät voivat tarvittaessa jakaa tätä vastuuta muille kehittäjille.
Osoitamme myös kuinka tuoteomistajalla on suuri rooli päätösten teon tukena ja näytämme kuinka tehdyt päätökset kommunikoidaan muille kehittäjille ja tuoteomistajalle.
Lisäksi kuvailemme arkkitehtuuristen päätösten tekemistä projektin kolmessa eri vaiheessa, jotka ovat suunnitteleva, perustava ja iteratiivinen.

Arkkitehtuuriin vaikuttavat suunnittelupäätökset nousevat ongelmaksi, kun kehittäjät eivät tunnista suunnittelupäätöksiä arkkitehtuurisesti merkittäväksi tai kun kehittäjät eivät saa tarvitsemaansa tukea päätösten tekemiseen.
Työssä osoitetaan myös kuinka tuoteomistajan ja kehittäjien yhteisen näkemyksen puute kehitettävästä tuotteesta johtaa suuriin ongelmiin arkkitehtuuristen päätösten tekemiseksi.
Näiden ongelmien lievittämiseksi esitetään joukko parannusehdotuksia.

Johtopäätöksenä todetaan, että vaikka on edullista antaa yksittäisten kehittäjien tehdä arkkitehtuurisia päätöksiä, tämä vaatii kehittäjiltä kykyä tunnistaa ja tehdä arkkitehtuurisia suunnittelupäätöksiä sekä kehitysryhmältä mahdollisuuksia toimia yhdessä.
Varsinkin hajautettujen kehitysryhmien tulisi ottaa nämä seikat huomioon.
Tiivistelmä (eng):Architectural design decisions have been a focal point of architectural research for years.
Yet our understanding of how such decisions are made in agile development teams is limited to assuming that tightly knit developers make such decisions together.
Even this assumption goes out the window when the development team is not co-located.
There is also little understanding of when architectural decisions are made with different methods giving contradicting recommendations.

The goal of this thesis is to show how architectural design decisions are made in one distributed agile development team.
The research was done using action research methodologies due to their strength in understanding groups that are not very strictly structured.

In the studied team independent developers have the initial responsibility for architectural design decisions but can share this responsibility with other members of the development team if necessary.
We will also show the product owners role in supporting the developers in decision making and how the decisions that have been made are communicated to the product owner and the development team.
In addition we present three project phases for architectural decision making: planning, foundation and iterative.

We will show how problems arise when the developers fail to identify architectural design decisions or are unable to get the help they need for making them.
We will also show how diverting understanding on how the system should work between the product owner and development team can lead to great problems.
Based on these results we introduce a set of communication and development recommendations for alleviating these problems.

We conclude that although empowering individual developers in making architectural design decisions carries many benefits it also puts heavy stock on both the abilities of individual developers in identifying and making architectural design decisions, but also in the team's ability to work together making of these decisions.
Distributed teams should especially take these challenges into account in their development process.
ED:2015-08-16
INSSI tietueen numero: 51994
+ lisää koriin
INSSI