Ketterien ohjelmistokehitysmallien analyysi käyttäen SEMS 4CC viitekehystä

Koko: px
Aloita esitys sivulta:

Download "Ketterien ohjelmistokehitysmallien analyysi käyttäen SEMS 4CC viitekehystä"

Transkriptio

1 T Ohjelmistotuotannon seminaari, TKK, kevät Ketterien ohjelmistokehitysmallien analyysi käyttäen SEMS 4CC viitekehystä Extreme Programming, Microsoft Synch-and-Stabilize, SCRUM, Dynamic Systems Development Method Seppo Sahi 48027S

2 2 T Ohjelmistotuotannon seminaari, TKK, kevät Tiivistelmä Kirjoittaja: Tutkielman nimi: Seppo Sahi Ketterien ohjelmistokehitysmallien analyysi käyttäen SEMS 4CC viitekehystä Päiväys: Sivuja: 26 Tutkimuksen aiheena on tutkia voidaanko ketteriä ohjelmistokehitysmetodologioita kuvata käyttäen 4CC Tutkimuksen kohteeksi valittiin metodologiat Microsoft Synch-and-Stabilize, Extreme Programming, Scrum ja Dynamic Systems Development Method. 4CC viitekehys yhdistää ohjelmistoyrityksen liikkeenjohdon ja tuotekehityksen näkökulmat toisiinsa. Sitä voidaan käyttää sekä yrityksen nykyisen ohjelmistokehitystoiminnan arviointiin, että sen kehittämiseen. Tutkimuksessa havaittiin, että Microsoftin Synch-and-Stabilize on tutkielman metodologioista selvästi kaikkein kokonaisvaltaisin. Se on metodologioista ainoa joka määrittelee keinot tuotteen julkaisujen pitkäaikaissuunnitteluun. Tämä saattaa kuitenkin kaventaa kyseisen metodologian sovellusaluetta, koska kaikkia sen käytäntöjä ei varmaankaan voi sellaisenaan soveltaa monessakaan yrityksessä. Tutkielman analyysista saatiin myös tukea kokemuksille joiden mukaan Extreme Programming ja Scrum tukevat toisiansa. Yleisesti ottaen ketterien ohjelmistokehitysmetodologioiden kuvaaminen 4CC viitekehyksellä onnistui kiitettävästi sillä suurin osa tutkimukseen valittujen metodologioiden tärkeimmistä ominaisuuksista pystyttiin sijoittamaan viitekehyksen mukaiseen jakoon. Avainsanat: Four Cycles of Control, 4CC, Synch-and-Stabilize, Extreme Programming, Scrum, Dynamic Systems Development Method

3 T Ohjelmistotuotannon seminaari, TKK, kevät Sisällysluettelo Tiivistelmä... 2 Sisällysluettelo Johdanto Tutkielman tausta Tutkimusongelma ja tutkimuksen tavoitteet Tutkielman rajaukset Tutkimusmenetelmät Tutkielman rakenne Aikaisemman tiedon kuvaus Mikä tekee metodologiasta ketterän? CC viitekehys Extreme Programming Microsoft Synch-and-Stabilize Scrum Dynamic Systems Development Method Analyysi Strateginen tuotejulkaisujen ohjaussykli Extreme Programming Synch-and-Stabilize Scrum Dynamic Systems Development Method Julkaisuprojektin ohjaussykli Extreme Programming Synch-and-Stabilize Scrum Dynamic Systems Development Method Iteraation ohjaussykli Extreme Programming Synch-and-Stabilize Scrum Dynamic Systems Development Method Mini-milestone Extreme Programming Synch-and-Stabilize Scrum Dynamic Systems Development Method Johtopäätökset Tutkielman arviointia... 24

4 4 T Ohjelmistotuotannon seminaari, TKK, kevät Yhteenveto...25 Lähdeluettelo...26

5 T Ohjelmistotuotannon seminaari, TKK, kevät Johdanto 1.1 Tutkielman tausta Tutkielma tehdään Teknillisessä korkeakoulussa järjestettävän Ohjelmistotuotannon seminaarikurssin seminaarityönä. Seminaarikurssin aiheena keväällä 2002 on ketterä ohjelmistokehitys. SEMS on Ohjelmistotuotannon- ja liiketoiminnan instituutin vuonna 2001 alkanut projekti, jonka tavoitteena on parantaa pienten ja keskikokoisten ohjelmistotuoteyritysten ohjattavuutta ja ohjelmistotuotantoprosesseja sekä tätä kautta parantaa niiden kannattavuutta ja auttaa niitä kasvamaan. Tavoitteena on myös auttaa yrityksiä itseään sekä niiden potentiaalisia rahoittajia arvioimaan yrityksen käyttämien ohjelmistotuotantometodien kypsyyttä ja laatua. Tutkielman kirjoittaja ei ole itse mukana tässä projektissa. Four Cycles of Control (4CC) on SEMS projektin kehittämä viitekehys joka on suunniteltu pienten ja keskisuurten yritysten ohjelmistotuoteliiketoiminnan ja ohjelmistokehitystoiminnan analysointiin ja kehittämiseen. Viitekehys pyrkii yhdistämään yrityksen liiketoiminta- ja ohjelmistokehitysnäkökulmia toisiinsa yksinkertaisella, käytännöläheisellä ja nimenomaan pieniä ja keskisuuria yrityksiä hyödyttävällä tavalla. 4CC kehittäjien motivoivana voimana on ollut olemassa olevien referenssimallien, lähinnä CMM:n ja SPICE:n sopimattomuus pienten yritysten tarpeisiin johtuen kyseisten mallien massiivisuudesta. 1.2 Tutkimusongelma ja tutkimuksen tavoitteet Tutkimusongelmana on selvittää voidaanko ketteriä ohjelmistokehitysmetodologioita kuvata käyttäen 4CC viitekehystä? Kysymys on mielenkiintoinen, koska sen kautta voidaan saada ymmärrystä tutkimuksen koohteena olevien metodologioiden ominaisuuksista. Tämä puolestaan mahdollistaa metodologioiden vertailemisen. Toisaalta 4CC viitekehys on hyvin nuori joten tutkimuksen avulla voidaan myös testata sen soveltuvuutta nimenomaan tähän sovellusalueeseen. Tavoitteena on osaltaan antaa vastauksia seuraaviin kysymyksiin: Mihin viitekehyksen osaan metodologia ottaa kantaa ja millä tavalla? Mitä tämän jaottelun perusteella voidaan päätellä valituista metodologioista? Miten valitut metodologiat eroavat toisistaan viitekehyksen läpi analysoituna? Tutkielman tavoitteena on yhtäältä laajentaa tutkielman tekijän näkemystä ketteristä ohjelmistokehitysmetodologioista sekä toisaalta parantaa hänen taitojaan tieteellisen tutkimuksen tekemisessä.

6 6 T Ohjelmistotuotannon seminaari, TKK, kevät Tutkielman rajaukset Tutkielma rajataan käsittelemään seuraavia metodologioita: Extreme Programming (XP), Microsoft Synch-and-Stabilize, Scrum sekä Dynamic Systems Development Method (DSDM) Tällä rajauksella halutaan saada tutkimuksen tekemiseen käytetty työmäärä vastaamaan seminaarikurssin työmäärävaatimuksia. 1.4 Tutkimusmenetelmät Tutkimus suoritetaan kokonaisuudessaan kirjallisuustutkimuksena. 1.5 Tutkielman rakenne Kappale 2. Aikaisemman tiedon kuvaus selventää valittujen metodologioiden pääominaisuudet sekä kertoo 4CC viitekehyksestä sen mitä lukija tarvitsee ymmärtääkseen tutkielman loppuosan. Kappale 3. Analyysi jakaa valittujen metodologioiden ominaisuudet 4CC viitekehyksen mukaisiin kokonaisuuksiin. Kappale 4. Johtopäätökset sisältää tutkielman kirjoittajan näkemyksiä ja johtopäätöksiä edellisessä kappaleessa suoritetusta jaosta. Kappale 5. Tutkielman arviointia sisältää tutkielman kirjoittajan subjektiivisen mielipiteen tutkimuksen onnistumisesta. Kappale 6. Yhteenveto sisältää yhteenvedon tutkielman pääkohdista.

7 T Ohjelmistotuotannon seminaari, TKK, kevät Aikaisemman tiedon kuvaus 2.1 Mikä tekee metodologiasta ketterän? Ketterien metodologioiden päällimmäisenä tavoitteena on tuottaa asiakkaalle toimivia ohjelmistojulkaisuja. Kyseisissä metodologioissa toimivaa ohjelmistoa pidetään sekä onnistumisen, että edistymisen mittarina (Cockburn, 2001). (Cockburn, 2001) määrittelee ketterän metodologian olevan mahdollisimman kevyt, mutta silti tarkoitukseensa riittävä. Samalla sen tulisi olla hyvin pitkälle itseohjautuva sekä ympäristöön ja vaatimuksiin mukautuva. Ketterät ohjelmistokehitysmallit olettavat, että ohjelmistolle asetetut vaatimukset muuttuvat ja kehittyvät jatkuvasti koko kehitystyön ajan. Kehitystyö on yleensä iteratiivista, jotta tuotettuja inkrementtejä voidaan käyttää palautteena ja vaatimuksien tarkentajina. Ketterät metodologiat pitävät kehitystiimin kommunikaation saumattomuutta tärkeänä menestystekijänä ja luottavat hyvin pitkälle tiimien kykyyn ratkaista ongelmia. Dokumentointi nähdään kommunikointimenetelmänä muiden joukossa ja se koetaan yleensä tarpeelliseksi vain jos kommunikaatiolle halutaan pysyvyyttä (Cockburn, 2001) CC viitekehys Seuraavassa esitellään 4CC viitekehyksen pääkohdat (Rautiainen et al., 2002) kerrottu. niinkuin ne on lähteessä Four Cycles of Control (4CC) on viitekehys ohjelmistotuotekehityksen johtamiseen ja suunniteluun pienissä ja keskisuurissa yrityksissä. Kehittäjiensä mukaan viitekehys yhdistää yrityksen liikkeenjohdon ja ohjelmistokehityksen näkökulmat toisiinsa kokonaisvaltaisella, yksinkertaisella ja käytännönläheisellä tavalla. Viitekehystä voidaan käyttää sekä yrityksen nykyisen ohjelmistotuotekehitystoiminnan arviointiin, että sen kehittämiseen. Motivaationa viitekehyksen kehittäjillä on ollut olemassa olevien referenssimallien, kuten CMM:n ja SPICE:n sopimattomuus pienten yritysten tarkoituksiin. Kyseiset mallit ovat turhan mahtipontisia pienille yrityksille eivätkä itseasiassa anna riittävää ratkaisua pienten yritysten liiketoiminnan suunnitteluun. Lisäksi nämä mallit on suunniteltu lähinnä projektiliiketoiminnan tarpeisiin. Kuva 1 visualisoi viitekehyksen pääosat. Kunkin kontrollisyklin tarkoitus on suunnitella tavoitteet kuvassa oikealla olevalle syklille jonka jälkeen oikealla oleva sykli toteuttaa nämä suunniteltujen raamien puitteissa. Kaaviokuvassa palaute edistymisestä kulkee oikealta vasemmalle ja esimerkiksi markkinaympäristön vaatimukset vasemmalta oikealle. Syklien koot ilmentävät syklin läpiviemiseen kuluvaa aikaa.

8 8 T Ohjelmistotuotannon seminaari, TKK, kevät Kuva 1. 4CC viitekehys (Vähäniitty, 2002) Strateginen tuotejulkaisujen ohjaussykli (engl. Strategic release management) muodostaa rajapinnan liikkeenjohdon ja ohjelmistokehitystoiminnan välille, sillä sen aikana tuotteen eri sidosryhmät päättävät tuotejulkaisujen ajoituksesta ja sisällöstä, resurssien jakamisesta sekä teknologisista pääsuuntaviivoista. Syklin aikana tehtäviin päätöksiin vaikuttaa ennenkaikkea yrityksen suunniteltu strategia sekä resurssien saatavuus. Sykliin liittyy olennaisena osana vaatimusten pitkäaikaishallinta. Kuvasta 1. nähdään eri sidosryhmät vaatimusten lähteinä. Julkaisuprojektin ohjaussyklissä (engl. Release project management) hallitaan yksittäistä julkaisuprojektia. Syklin tehtävänä on määrittää esim. iteraatiosyklien määrä, sisältö, ajallinen pituus ja budjetti strategisessa tuotejulkaisujen ohjaussyklissä asetettujen vaatimusten toteutumiseksi. Julkaisuprojektin ohjaussykli antaa strategiselle tuotejulkaisujen ohjaussyklille palautetta edistymisestä ja onnistumisesta. Iteraation ohjaussyklin (engl. Iteration management) tarkoituksena on tuottaa vakaa ja toimiva tuotejulkaisun inkrementti jota voidaan käyttää palautteen saamiseksi ja vaatimusten tarkentamiseksi. Jokaisen iteraation aikana jokin joukko määriteltyjä vaatimuksia muutetaan toimivaksi toiminnallisuudeksi tuotteeseen. Jotta iteraation hallitseminen olisi helpompaa Iteration management syklissä suunnitellaan myös iteraation jakaminen pienempiin askeliin joita kutsutaan viitekehyksessä termillä mini-

9 T Ohjelmistotuotannon seminaari, TKK, kevät milestone. Iteraation ohjaussykli tuottaa myös yksityiskohtaisen tehtäväluettelon iteraation läpiviemiseksi. Mini-milestonejen (engl. Mini-milestones) tarkoitus on helpottaa kokonaisuuden hallintaa sekä auttaa mittaamaan edistymistä iteraation aikana. Tarkoitus on siis synkronoida yksittäisten kehittäjien tuotokset suuremmaksi kokonaisuudeksi. Minimilestoneja voivat olla esimerkiksi päivittäiset buldit. Kuvan 1. alaosan nuolilla on kuvattu ohjelmistotuotannon eri aktiviteettikategoriat joihin syklien aikana tapahtuva toiminta voidaan jakaa. Suunnittelulla ja seurannalla (engl. Planning and monitoring) tarkoitetaan prosessin aikataulutuksen ja toteutuksen suunnittelua sekä seuraamista. Käytännössä tämä tarkoittaa esimerkiksi vastuujakojen suunnittelua, aikataulujen suunnittelua ja seurantaa sekä tuotejulkaisujen ja projektien onnistumisen arviointia. Ohjelmistosuunnittelulla ja toteutuksella (engl. Design and implementation) tarkoitetaan kaikkea ohjelmistotuotteen arkkitehtuurin suunnitteluun ja toteutukseen liittyvää toimintaa. Tuotehallinto (engl. Product management) käsittää ohjelmiston komponenttien, konfiguraatioiden ja versioiden hallinnan. Vaatimusten hallinnan (engl. Requirements engineering) päällimmäinen tavoite on varmistaa, että lopputuote vastaa asiakkaiden vaatimuksia. Tämä sisältää vaatimusten kartoittamisen, analysoinnin, priorisoinnin sekä vaatimusmuutosten hallinnan. Testauksella ja laadunvarmistuksella (engl. Verification and validation) tarkoitetaan tuotteen laatutavoitteiden määrittämistä ja seurantaa sekä toisaalta näihin laatutavoitteisiin pääsemiseksi suoritettua toimintaa. 4CC mallia tarkasteltaessa tulee muistaa, että mikäli jokin yksittäinen metodologia ei ota kantaa kaikkiin viitekehyksen ohjaussykleihin ei automaattisesti tarkoita, että kyseinen metodologia olisi huono vaan pikemminkin kyse on painotuksesta ja fokusoitumisesta johonkin tiettyyn ohjelmistokehityksen osa-alueeseen. 2.3 Extreme Programming Extreme Programming (XP) lähtee yksinkertaisesta olettamuksesta, että ohjelmiston vaatimukset ovat muuttuvia ja muutosten määrä sekä ominaisuudet ovat ennalta arvaamattomia. XP:n filosofian mukaan on turhaa suunnitella arkkitehtuuria tulevaisuutta varten, koska tulevaisuudessa suunnittelulähtökohdat saattavat kuitenkin olla täysin erilaiset. XP pyrkii hallitsemaan tätä kaaosta kahdentoista käytännön avulla (Beck, 2000). Näitä ovat suunnittelupeli (engl. planning game), pienet julkaisut (engl. small releases), metafora (engl. metaphor), yksinkertainen design (engl. simple design), testaus (engl. testing), refaktorointi (engl. refactoring), pariohjelmointi (engl. pair programming), kollektiivinen koodin omistaminen (engl. collective ownership), jatkuva integrointi

10 10 T Ohjelmistotuotannon seminaari, TKK, kevät (engl. continious integration), 40-tuntinen viikko (engl. 40-hour week), on-site asiakas (engl. on-site customer), ohjelmointistandardit (engl. coding standards). Ohessa auki kirjoitettuna tämän tutkielman kannalta olennaisimmat käytännöt. Muut käytännöt ovat käytäntöjä joita ei voida sioittaa 4CC mallin mihinkään osaan. XP on iteratiivinen metodologia. XP:ssa iteraation pituus vaihtelee viikosta kolmeen viikkon. XP:n terminologian mukaisilla pienillä julkaisuilla tarkoitetaan nimenomaan sitä, että ohjelmistoinkrementtejä tulisi julkaista mahdollisimman usein. XP:n suunnittelupelissä asiakas päättää seuraavan toteutettavan inkrementin laajuuden ja aikataulun. Käytännössä tämä tapahtuu siten, että asiakas valitsee ostoskoriinsa haluamiansa käyttäjätarinoita. Kehittäjät ovat ennen suunnittelupeliä hinnoitelleet käyttäjätarinat sen mukaan kuinka paljon he arvioivat niiden toteuttamiseen kuluvan aikaa. Ennen ohjelmiston toteutuksen aloittamista määritellään metafora. Sillä tarkoitetaan ohjelmistosuunnittelun lähtökohtana käytettävää tarinaa. Koska suurin osa ohjelmistosuunnittelutyöstä tehdään ikäänkuin hajautetusti ohjelmointityön yhteydessä, niin on perusteltua käyttää metaforaa arkkitehtuurisuunnittelun korvaajana. Metafora tarkentuu sitä mukaa mitä enemmän ohjelman koodista on valmiina. Itse kehitystyö tehdään XP:ssä aina pariohjelmointina. Pariohjelmoinnissa kaksi ohjelmoijaa työskentelee käyttäen työkaluna yhtä tietokonetta. Eräs ohjelmointiparin paivittäisistä rutiineista on uuden koodin integroiminen suurempaan kokonaisuuteen vähintään kerran päivässä. XP:n termien mukaan puhutaan jatkuvasta integroinnista. Integroinnin yhteydessä kaikki yksikkötestit on ajettava onnistuneesti tai muutokset on hylättävä. Jatkuvan integroinnin ansiosta saatavilla on koko ajan toimiva versio ohjelmasta. XP:n prinsiippien mukaan ohjelmiston design tulisi säilyttää mahdollisimman yksinkertaisena. Toisinsanoen yksinkertainen design tarkoittaa XP:ssä sitä, että ohjelmistosuunnittelussa ei tulisi ajatella tulevaisuutta liikaa vaan ohjelmoida niin yksinkertaisesti kuin vain on mahdollista toteuttaa vaaditut ominaisuudet. Refaktoroinnilla eli vanhan ohjelmakoodin ajoittaisella uudelleen organisoinnilla varmistetaan, että yksinkertaisen designin periaatetta noudattamalla tuotettu koodi on arkkitehtuurisesti laadukasta ja vakaasti toimivaa. Testaus on eräs XP:n ydintekniikoista. Jokainen tuotantoon menevä ominaisuus on testattava yksikkötesteillä. Ohjelmoijat kirjoittavat itse yksikkötestit omille ohjelmakokonaisuuksilleen ennen itse ohjelmakoodin kirjoittamista. Tällöin testien kirjoittaminen toimii myös suunnittelun apuvälineenä. Yksikkötesteistä tehdään automaattisia ja niiden tulee toimia aina siitä lähtien kun ne on kirjoitettu. Funktionaaliset testit ohjelmistoinkrementille kirjoittaa asiakas. On-site asiakas toimii fyysisesti kehitystiimin läheisyydessä ja vastaa kehitystyön aikana nouseviin kysymyksiin. On-site asiakkaan avulla pienennetään kommunikaatiokustannuksia kehitystiimin ja asiakkaan välillä.

11 T Ohjelmistotuotannon seminaari, TKK, kevät Osa näistä käytännöistä on ollut olemassa jo pitkään ennen XP:n kehittämistä. XP:ssa on uutta se, että käytännöt yhdistetään toisiansa tukevaksi kokonaisuudeksi. Esimerkiksi yksikkötestaus ja pariohjelmointi tukevat toisiaan sillä pareittain yksikkötestien suunnittelu ja kirjoittaminen on nopeampaa (Beck, 2000). 2.4 Microsoft Synch-and-Stabilize Microsoftin Synch-and-Stabilizea voidaan pitää ketteränä metodologiana siinä mielessä, että se pyrkii sopeutumaan nopeasti markkinoiden muuttuviin vaatimuksiin. Synch-andstabilize ei myöskään ole dokumenttivetoinen niinkuin perinteinen vesiputoismalli. Lähteen (Cusumano & Smith, 1997) mukaan kehitysmalli etenee seuraavasti. Synchand-Stabilize lähtee liikkeelle suunnitteluvaiheella, jonka aluksi määritellään tuotevisio. Sen tarkoituksena on kertoa kehitettävän tuotteen tavoitteet ja se perustuu priorisoituihin käyttäjävaatimuksiin. Tuotevisio korvaa osittain vesiputousmallin funktionaalisen määrittelyn. Synch-and-Stabilize sisältää myös funktionaalisen määrittelyn, mutta se elää ohjelmiston koko kehityskaaren ajan ja sen oletetaan olevan lopullinen vasta kun tuote on valmis. Tämän jälkeen tehdään suunnitelma työn jakamisesta kehityssykleihin, joita Synch-and-Stabilizessa kutsutaan alisykleiksi (engl. subcycle). Kunkin syklin aikataulu on lyöty lukkoon ja toteutettavat ominaisuudet on priorisoitu, jotta alhaisimman prioriteetin ominaisuuksia voidaan jättää pois mikäli kaikkea ei ehditä toteuttaa. Toiminnallisuuskokonaisuuksille määritetään vastuulliset tiimit, joiden koko on yleensä kymmenen hengen molemmin puolin. Tiimi sisältää yleensä yhtä paljon testaajia kuin kehittäjiä. Kunkin alisyklin aikana kehittäjät suunnittelevat, toteuttavat ja debugaavat suunnitellut toiminnallisuudet. Testaajat toimivat pareittain kehittäjien kanssa ja testaavat heidän työtään jatkuvasti. Kehittäjät synkronoivat joka päivä tuottamansa koodin päivittäisten buildien muodossa. Syklin loppuvaiheessa julkaisu stabiloidaan eli uusien toiminnallisuuksien toteuttaminen lopetetaan ja keskitytään ainoastaan testaamiseen ja debugaamiseen. Jokaisen syklin lopputuloksena julkaistaan tuotejulkaisu. Viimeisessä syklissä tämä julkaisu on lopullinen markkinoille tuleva tuote ja muissa se on alpha- tai betajulkaisu. Viimeinen kehityssykli on samanlainen kuin sitä edeltävätkin, mutta se sisältää ylimääräisen stabilointivaiheen jota ennen käyttöliittymä jäädytetään, jotta tuotteen dokumentaatio voidaan saattaa valmiiksi.

12 12 T Ohjelmistotuotannon seminaari, TKK, kevät Kuva 2. Microsoft Synch-and-Stabiize kehitysmalli (Cusumano & Yoffie, 1999) 2.5 Scrum Seuraavan kuvauksen tiedot ovat kokonaisuudessaan lähteestä (Beedle et al., 2001). Scrum on metodologia 6-8 hengen tiimeille. Scrumissa tuotepäällikkö (engl. Product owner) ylläpitää tuotteen käsiteltävien asioiden listaa (engl. Product backlog). Tähän on listattu prioriteettijärjestyksessä tuotteen käyttäjävaatimukset. Kaikki muutokset tähän listaan kulkevat tuotepäälikön kautta. Itse kehitystyö tehdään tasan 30 päivän mittaisissa iteraatioissa joita kutsutaan sprinteiksi. Ennen sprinttiä pidetään suunnittelupalaveri (engl. Sprint planning meeting) jossa on läsnä asiakkaat, käyttäjät, johto, tuotepäällikkö ja Scrum tiimi. Palaverissa päätetään seuraavan sprintin laajuus eli täytettävät käyttäjävaatimukset sekä sprintin tavoite (engl. Sprint goal). Tämän jälkeen iteraation laajuutta ei voida enää muuttaa ja scrum tiimille on taattava työrauha tavoitteeseen pääsemiseksi. Suunnittelupalaverin jälkeen scrum tiimi pitää oman palaverin jossa hahmotellaan arkkitehtuurisia suuntaviivoja sekä luodaan tarkempi tehtäväluettelo sprintin tekemättömistä tehtävistä. Sprintin aikana Scrum tiimi pitää kerran päivässä palaverin jota kutsutaan nimellä päivittäinen scrum (engl. Daily Scrum). Päivittäisen scrumin tarkoituksena on auttaa

13 T Ohjelmistotuotannon seminaari, TKK, kevät tiimiä ja projektin johtoa seuraamaan edistymistä, tukea tiimin kommunikaatiota sekä autaa johtoa tunnistamaan ja poistamaan kehitystyötä haittaavia esteitä. Sprintin päätyttyä pidetään sprintin tarkastelupalaveri (engl. Sprint review meeting). Palaverissa katselmoidaan sprintin aikana tuotettu ohjelmistoinkrementti. Palaverin jälkeen tuotteen käsiteltävien asioiden lista päivitetään vastaamaan nykytilannetta. Scrum mestari (engl. Scrum master) on henkilö joka on vastuussa scrumin mukaisten käytäntöjen toteutumisesta. Mestari mm. johtaa päivittäiset scrum palaverit. Hänen tehtävänään on myös valvoa, että scrum tiimi saa työskennellä rauhassa. Ei nimittäin ole lainkaan harvinaista, että kehitystiimin jäseniltä tullaan kyselemään, että voisiko vielä tämän ominaisuuden toteuttaa kuluvan sprintin aikana. Sscrum ottaa huomioon ohjelmistokehityksen kaaottisuuden ja olettaa jokaisen ohjelmistoprojektin olevan erilainen. Scrum on niin kutsuttu empiirinen prosessimalli jossa Scrum tiimi kehittyessään ja tiivistyessään löytää yhdessä tien jolla sprintin tavoitteet täyttyvät. Scrum tiimissä ei varsinaisesti ole rooleja vaan jokainen jäsen tekee sitä mitä parhaiten osaa. 2.6 Dynamic Systems Development Method DSDM on kehittäjiensä (Stapleton, 1997) mukaan kokoelma parhaaksi katsottuja käytäntöjä laadukkaan ohjelmiston nopeaan kehittämiseen. DSDM pohjautuu yhdeksään pääperiaatteeseen: 1. käyttäjien tulee osallistua aktiivisesti kehitysprosessiin, 2. DSDM tiimeillä pitää olla tarpeeksi valtaa tehdä päätöksiä, 3. kehitysprosessin tulee fokusoitua tuottamaan uusia tuoteinkrementtejä mahdollisimman usein, 4. tuoteinkrementtejä arvioidaan pääosin käyttäjätarpeiden täyttymisen perusteella, 5. kehitystyössä käytetään iteratiivista ja inkrementaalista mallia, 6. kaikki kehitystyön aikana tehdyt muutokset on pystyttävä perumaan, 7. vaatimukset on pystyttävä lyömään lukkoon karkealla tasolla projektin alussa, 8. testaus tulee integroida jatkumaan koko tuotteen kehityskaaren ajan ja 9. onnistunut yhteistyö sidosryhmien välillä on elintärkeää. Näistä ensimmäiset neljä on kivijalka jonka varaan DSDM on rakennettu ja loput viisi on periaatteita joita tulee noudattaa DSDM prosessissa. Kuva 3. visualisoi DSDM prosessin kulun. Jokainen DSDM prosessi alkaa esitutkimuksella (engl. feasibility study) jonka aikana päätetään kannattaako projektia ryhtyä toteuttamaan. Esitutkimusvaiheessa harkitaan myös kannattaako DSDM mallia käyttää kyseisessä projektissa. Vaihe kestää tyypillisesti muutaman viikon. Businesstutkimusvaiheessa (engl. Business study) kartoitetaan ja priorisoidaan toiminnalliset ja ei toiminnalliset vaatimukset karkealla tasolla. Yleensä tämä tehdään sidosryhmien ryhmätyönä. Myös arkkitehtuurinen suunnitelma (engl. System architecture definition) sekä prototypisointisuunnitelma (engl. Prototyping plan) tehdään tässä vaiheessa. Prototypisointisuunnitelma sisältää alustavan suunnitelman kaikista kehitystyön aikana tehtävistä prototyypeistä. Kaikki dokumentit ovat luonnoksia joiden tarkentaminen kehitystyön edetessä on sallittua ja suositeltavaa. Businesstutkimusvaiheen tulisi kestää alle kuukauden.

14 14 T Ohjelmistotuotannon seminaari, TKK, kevät Kuva 3. DSDM prosessi (Stapleton, 1997) Esitutkimus ja businesstutkimusvaihe suoritetaan peräkkäin. Seuraavat kolme vaihetta ovat luonteeltaan iteratiivisiä joten niitä kutakin voidaan suorittaa useampia kertoja. Vaiheita voidaan myös suorittaa osittain päällekkäin ja aikaisemmin suoritettuun vaiheeseen voidaan palata. Kuvassa 3. takaisin palaamista on merkitty harmaalla nuolella ja eteenpäin menemistä mustalla. Varsinainen kehitystyö tehdään näistä kolmesta kahden ensimmäisen aikana. Kolmas vaihe on tarkoitettu lopputuotteen toimittamiseen asiakkaalle. Ensimmäinen näistä on toiminnallinen malli iteraatio (engl. Functional model iteration). Vaiheen tarkoituksena on tuottaa prototyyppi suunnitelluista toiminnallisista vaatimuksista sekä erityisesti käytettävyyteen liittyvistä ei-toiminnallisista vaatimuksista. Prototyypin avulla tarkennetaan businesstutkimusvaiheessa kerättyjä vaatimuksia. Design ja rakennus iteraation (engl. Design & build iteration) tarkoituksena on tuottaa vakaa ja testattu ohjelmistotuote joka voidaan antaa loppukäyttäjien käsiin. Mikäli vaiheen aikana tulee vielä tarvetta testata käyttäjillä jotain toiminnallista vaatimusta, voidaan palata edelliseen iteraatioon niinkuin harmaa nuoli Kuvassa 3. osoittaa.

15 T Ohjelmistotuotannon seminaari, TKK, kevät Käyttöönottoiteraation (engl. Implementation) aikana ohjelmistolle tehdään hyväksymistestaus ja ohjelmisto luovutetaan asiakkaalle. Lisäksi käyttäjille järjestetään koulutus ennen käyttöönottoa. Projektin päätyttyä tuotetaan projektin tarkasteludokumentti (engl. Project review document) missä arvioidaan projektin onnistumista eli vertaillaan kehityskaaren aikana määriteltyjä vaatimuksia ja tarpeita siihen mitä on saavutettu. Tätä kuvastavat Kuvassa 3. käyttöönottoiteraatiosta lähtevät harmaat nuolet.

16 16 T Ohjelmistotuotannon seminaari, TKK, kevät Analyysi Analyysissä jokaiselle metodologialle on tehty 4CC viitekehyksen mukainen jaottelu. Yhteenveto jaottelusta on esitetty Taulukossa 1. Tämän kappaleen sisältämät yläviitteet viittaavat Taulukon 1. sisältämiin juoksevasti numeroituihin metodologioiden ominaisuuksiin. Jaottelu on tehty käyttäen seuraavien lähteiden tietoja: XP (Beck, 2000), Synch-and- Stabilize (Cusumano & Smith, 1997), Scrum (Beedle et al., 2001) ja DSDM (Stapleton, 1997). 3.1 Strateginen tuotejulkaisujen ohjaussykli Extreme Programming Extreme Programming ei ota kantaa tähän ohjaussykliin Synch-and-Stabilize Synch-and-Stabilizessa tuotteelle laaditaan kolmivuotinen tuotesuunnitelma 2 (engl. three-year product plan) jonka tarkoitus on suunnitella ja jaksoittaa tuotteen julkaisuja pitkällä aikavälillä. Suunnitelman tekee tuotepäällikkö yhdessä markkinoinnin kanssa. Kunkin tuotepäällikön suunnitelmat katselmoidaan ja hyväksytään tuoteohjelman katselmuksissa 1 (engl. Program review), joissa on paikalla myös yrityksen ylin johto Bill Gatesia myöten. Synch-and-stabilizessä käytetty tuotevisio 3 määrittää tuotteen pääfokuksen, miten tuotetta markkinoidaan, seuraavan julkaisun tarkoituksen sekä tarkeimmät osa-alueet joihin seuraava julkaisu pureutuu. Visio toimii myöhemmin toiminnallisen määrittelyn pohjana Scrum Scrumissa tuotepäällikkö hallitsee käyttäjävaatimuksia ylläpitämällä tuotteen käsiteltävien asioiden listaa 1. Sääntönä on, että tuotepäällikön tulee hyväksyä listalle kaikki ehdotukset, mutta tuotepäällikön mielipiteellä suuri vaikutus siihen mitkä käyttäjävaatimukset täytetään, sillä yksin hänellä on valta muuttaa listan priorisointia Dynamic Systems Development Method DSDM ei ota kantaa tähän ohjaussykliin.

17 T Ohjelmistotuotannon seminaari, TKK, kevät Julkaisuprojektin ohjaussykli Extreme Programming Suunnittelupeli 1 on XP:n tapa suunnitella seuraavan iteraation laajuus ja aikataulu. Koska suunnittelupeli ei ota kantaa muuhun kuin nimenomaan seuraavaan käsillä olevaan iteraatioon, sitä ei voida sijoittaa stragiseen tuotejulkaisujen ohjaussykliin. XP:ssä ei tehdä varsinaista arkkitehtuurisuunnitelmaa vaan arkkitehtuuri määritellään karkealla tasolla XP:ssä metaforan 2 avulla. Metafora on yksinkertainen kaikenkattava tarina siitä miten järjestelmän tulisi toimia Osa XP:n vaatimusten hallintaa sekä verifikointi ja validointia on on-site asiakas 3.Onsite asiakas auttaa kehittäjiä päivittäisissä käyttäjävaatimuksiin liittyvissä kysymyksissä. Sillä välin kun kehittäjät työskentelevät seuraavan tuoteinkrementin parissa, on-site asiakas valmistelee hyväksymistestejä samalle inkrementille Synch-and-Stabilize Synch-and-Stabilizessa osa suunnitteluvaihetta on funktionaalisen määrittelyn tuottaminen 4. Tämän tekee julkaisuprojektin päällikkö yhteistyössä kehittäjien kanssa. Määrittely kirjoitetaan käyttäjän näkökulmasta ja se sisältää kaikki käyttöliittymän menut, dialogit, näkymät sekä virheilmoitukset. Suunnitteluvaiheessa määritellään myös kehitystiimit 13 (engl. Feature team) sekä kehitysaikataulu 5 (engl. Development schedule) mikä sisältää suunnitelman iteraatioiden aikataulutuksesta. Synch-and-Stabilizessa näkyvin palaute strategiselle tuotejulkaisujen ohjaussyklille tulee valmiin ohjelmistotuotteen 7 muodossa. Valmista tuotetta käytetään seuraavien julkaisujen suunnittelussa Scrum Scrumin sprintin suunnittelupalaverissa 2 asiakkaat, käyttäjät, johto, tuotepäällikkö ja Scrum tiimi yhdessä määrittävät seuraavalle sprintille laajuuden ja tavoitteen 3. Sijoitan palaverin tähän ohjaussykliin, koska siinä päätetään ainoastaan seuraavan sprintin tavoitteista ja laajuudesta. Mikäli palaverin tarkoitus olisi suunnitella sprinttien suhdetta toisiinsa pidemmällä aikavälillä sijoittuisi se ensimmäiseen ohjaussykliin. Sprintin katselmuksessa 7 asiakkaat, käyttäjät, johto, tuotepäällikkö ja Scrum tiimi katselmoivat sprintin aikana tuotetun tuoteinkrementin. Sprintin onnistumista mitataan vertaamalla sprintin tavoitetta ja käsiteltävien asioiden listaa sprintin aikana saavutettuihin todellisiin tuloksiin. Päähuomio on kuitenkin tuotetussa inkrementissä, josta saatua palautetta käytetään hyväksi seuraavan sprintin suunnittelupalaverissa.

18 18 T Ohjelmistotuotannon seminaari, TKK, kevät Mikäli tuotteen julkaisut on jaettu useampaan julkaisuprojektiin, ylläpitää scrumin tuotepäällikkö myös julkaisun käsiteltävien asioiden listaa 4 (Release backlog). Lista kuvaa käyttäjävaatimuksia samalla tarkkuudella tuotteen käsiteltävien asioiden lista Dynamic Systems Development Method DSDM prosessi hallitsee tuotejulkaisun vaatimuksia priorisoimalla ja kirjaamalla tärkeimmät toiminnalliset ja ei-toiminnalliset vaatimukset 3 omaan dokumenttiinsa prosessin businesstutkimusvaiheen aikana. Businesstutkimusvaiheessa kirjoitetaan prototypisointisuunnitelma 1 mikä sisältää suunnitelman kaikista kehitystyön aikana tehtävistä prototyypeista. Suunnitelma toisinsanoen antaa aikataulut ja tavoitteet kullekkin iteraatiolle. Businesstutkimusvaiheessa tehdään myös arkkitehtuurinen suunnitelma 2. Suunnitelma määrittelee kehitys- ja tuontantoympäristöt sekä tuotettavan ohjelmiston arkkitehtuuriset pääsuuntaviivat. Suunitelmaa tarkennetaan kehitysprosessin edetessä. DSDM määrittelee explisiittisesti, että julkaisuprojektin lopuksi on tehtävä hyväksymistestaus 8 asiakkaalla. 3.3 Iteraation ohjaussykli Extreme Programming XP määrittää, että kehitystyön tulee olla iteratiivistä ja että julkaisusyklin tulisi lyhyt. XP:n terminologian mukaan puhutaan pienistä julkaisuista 4. Termin sijoittaminen Taulukkoon 1. on hankalaa, sillä kyse on enemmänkin ohjenuorasta kuin ohjelmistotuotantoaktiviteetistä. Mikäli pienet julkaisut kuitenkin ymmärretään iteraatioiden lopputuotteena jota verifioidaan ja validoidaan, niin voidaan se sijoittaa taulukkoon. XP:ssä iteraation sisällä suoritettavat tehtävät suunnitellaan ja jaetaan iteraation suunnittelupelissä 6 (engl. Iteration planning game). Aikaisemmin mainittiin, että metafora toimii arkkitehtuurin suunnannäyttäjänä. XP:ssä arkkitehtuuri muodostuu ja hioutuu ohjelmistoon ajan myötä kun ohjelmoijat toteuttavat yksenkertaisen designin ja refaktoroinnin periaatteita. Täten yksinkertainen design ja refaktorointi 7 voidaan yhtenä kokonaisuutena sijoittaa Taulukkoon 1. Toisaalta myös XP:n käyttämä yksikkötestaus 8, missä testit suunnitellaan ennen varsinaista koodia on myös osa ohjelmiston suunnittelua, koska yksikkötestejä tehtäessä suunnitellaan itseasiassa samalla itse ohjelmistoa. XP:n käyttämä pariohjelmointi 9 voidaan käsittää myös toimenpiteenä laadun varmistamiseksi, koska pareittain ohjelmoitaessa koodiin eksyy todennäköisesti vähemmän virheitä, sillä pari saattaa huomata virheitä mitä ohjelmoija ei itse huomaa.

19 T Ohjelmistotuotannon seminaari, TKK, kevät Synch-and-Stabilize Kuten aikaisemmin mainittiin on Synch-and-Stabilizen kehitystyö on jaettu tyypillisesti kolmeen iteraatioon joita metodologia kutsuu termillä alisykli (engl. subcycle). Alisyklin aikana kehittäjät toteuttavat määrittellyt toiminnallisuudet. Ennen tuoteinkrementin julkaisua seuraa ns. stabilointivaihe 10 (engl. Stabilation period). Stabilointivaiheessa uuden koodin tuottaminen lopetetaan ja kehittäjät yhdessä testaajien kanssa keskittyvät tuotetun koodin integroimiseen, testaamiseen ja debuggamiseen. Jokainen alisykli sisältää aikapuskurin 8 (engl. Buffer time), jonka tarkoitus on pehmentää ominaisuuksien lisäämisestä tai arvaamattomista ongelmista aiheutuvia viivästyksiä. Viimeinen alisykli eroaa hieman tavallisesta. Sen aikana ohjelmiston sisältämät ominaisuudet lyödään lukkoon 14 (engl. Feature complete) ja käyttöliittymä jäädytetään 9 (engl. UI freeze). Tämän jälkeen seuraa vaihe jossa ohjelmakoodin katsotaan olevan valmis (engl. Code complete). Tätä voidaan ajatella ikäänkuin ylimääräisenä stabilointivaiheena ja siksi sitä ei ole merkitty erikseen Taulukkoon 1. Vaihe sisältää viimeisen testauksen ja debuggauksen ennen virallisen tuotejulkaisun tekemistä. Koko tuotteen kehityskaaren ajan julkaisuprojektin päällikkö ja kehitystiimi päivittävät funktionaalista määrittelyä 12. Siksi siitä onkin järkevää lisätä maininta Taulukkoon 1. Kunkin alisyklin lopputuotteena valmistuu joko lopullinen tuotejulkaisu tai alpha- tai betajulkaisu 6. Julkaisuprojektin ohjaussykli ja strateginen tuotejulkaisujen ohjaussykli käyttävät näitä julkaisuja palautteen saamiseksi tuotteesta Scrum Scrumissa sprintin suunnittelupalaverin jälkeen scrum tiimi pitää oman suunnittelupalaverinsa, jossa se tuottaa sprintin tehtävälistan 5 (engl. Sprint backlog) sprintin suunnittelupalaverissa määriteltyjen tavoitteiden täyttämiseksi. Tehtävälistaa hallitsee yksinomaan scrum tiimi. Tehtävälista elää jätkuvasti sprintin edistyessä ja se saattaa aluksi olla vailinainen esimerkiksi mikäli käytettävä teknologia tunnetaan huonosti Dynamic Systems Development Method DSDM:n toiminnallinen malli iteraatio ja design ja rakennus iteraatio seuraavat kumpikin samanlaista kaava, jonka vaiheet ovat seuraavat: prototyypin identifiointi 4 (engl. Identify prototype), aikataulun sopiminen 5 (engl. Agree schedule), prototyypin rakentaminen 6 (engl. Build prototype) ja prototyypin katselmointi 7 (engl. Review prototype). Ensimmäisessä vaiheessa mietitään prototypisointisuunnitelman ja vaatimusten pohjalta millainen prototyyppi ollaan rakentamassa ja toisaalta arkkitehtuurisuunnitelman pohjalta miten tämä prototyyppi rakennetaan. Tässä vaiheessa tulee muistaa, että DSDM sallii kummankin äsken mainitun suunnitelman päivittämisen ja tarkentamisen mitä varmasti myös tapahtuu.

20 20 T Ohjelmistotuotannon seminaari, TKK, kevät Toisessa vaiheessa määritellään jaksotus iteraation sisällä sekä sitoutetaan kehitysryhmä aikatauluun. Kolmannessa vaiheessa vaiheessa rakennetaan prototyyppi edellisissä vaiheissa tehtyjen sunnitelmien mukaisesti. Viimeisessä vaiheessa katselmoidaan tuotettu prototyyppi ja siihen liittyvät dokumentit. 3.4 Mini-milestone Extreme Programming XP:ssä projektin johdolla on kokoajan käsitys edistymisestä iteraatiosyklin aikana, koska kehittäjät integroivat ohjelmakoodinsa osaksi suurempaa kokonaisuutta useampia kertoja päivässä. XP:n terminologian mukaan toimintaa kutsutaan jatkuvaksi integroinniksi Synch-and-Stabilize Synch-and-Stabilizessa kehittäjät synkronoivat tekemänsä ohjelmakoodin päivittäin keskitetylle palvelimelle. Useimmissa projekteissa palvelimen koodista tehdään päivittäinen build 11 (engl. Daily build). Samalla integroidulle koodille tehdään joukko testejä 15. Mikäli virheitä havaitaan ne tulee korjata välittömästi. Koska koodi käännetään joka päivä on virheiden paikallistaminen käytännössä helppoa Scrum Scrumin päivittäisessä scrum palaverissa 6 kaikki tiimin jäsenet vastaavat kolmeen kysymykseen: Mitä olet tehnyt edellisen Scrumin jälkeen? Mitä teet ennen huomista Scrumia? Onko työskentellyssä jotain esteitä tai hankaluuksia? Palaveri pidetään joka päivä samassa paikassa samaan aikaan. Palaverin on tarkoitus kestää alle 15 minuuttia ja kaikki näiden kysymysten ulkopuoliset keskustelut järjestetään palaverin jälkeen. Päivittäisen scrumin tarkoituksena on auttaa tiimiä ja projektin johtoa seuraamaan edistymistä, tukea tiimin kommunikaatiota sekä autaa johtoa tunnistamaan ja poistamaan kehitystyötä haittaavia esteitä Dynamic Systems Development Method DSDM ei ota kantaa tähän ohjaussykliin.

21 T Ohjelmistotuotannon seminaari, TKK, kevät Synch-and- Stabilize < Metodologia Extreme programming Scrum DSDM 4CC:n ohjaussykli > 4CC:n aktiviteettikategoria v Suunnittelu ja seuranta Ohjelmistosuun. ja toteutus Tuotehallinto Vaatimustenhallinta Testaus ja laadunvarmistus Suunnittelu ja seuranta Ohjelmistosuun. ja toteutus Tuotehallinto Vaatimustenhallinta Testaus ja laadunvarmistus Suunnittelu ja seuranta Ohjelmistosuun. ja toteutus Tuotehallinto Vaatimustenhallinta Testaus ja laadunvarmistus Suunnittelu ja seuranta Ohjelmistosuun. ja toteutus Tuotehallinto Vaatimustenhallinta Testaus ja laadunvarmistus Strateginen tuotejulkaisujen ohjaussykli Julkaisuprojektin ohjaussykli Iteraation ohjaussykli Mini-milestonet Synch-and-Stabilize 1 Tuoteohjelman katselmus 2 Kolmivuotinen tuotesuunnitelma 3 Tuotevisio 4 Funktionaalinen määrittely 5 Kehitysaikataulu Alpha ja beta julkaisut Valmiin tuotteen julkaisu Aikapuskuri Käyttöliittymän jäädyttäminen Stabilointivaihe Päivittäiset buildit Funktionaalisen määrittelyn päivittäminen 13 Kehitystiimien määrittäminen 3 14 Ominaisuuksien lyöminen lukkoon Päivittäinen testaus Extreme Programming Suunnittelupeli 7 2 Metafora On-site asiakas Pienet julkaisut 5 Jatkuva integrointi 3 6 Iteraation suunnittelupeli Yksinkertainen design ja refaktorointi 8 Yksikkötestaus Taulukko 1. Yhteenveto analyysistä Metodologioiden ominaisuudet on lueteltu ja numeroitu oikealla puolella olevaan listaan. Tämän jälkeen ominaisuudet on asetettu analyysitaulukkoon. Sijoittelun perustelut löytyvät kappaleesta 3. Analyysi. Selitykset 4CC:n ohjaussykleille ja aktiviteettikategorioille löytyvät kappaleesta 2.2 4CC viitekehys. 9 Pariohjelmointi Scrum 1 Tuotteen käsiteltävien asioiden lista 2 Sprintin suunnitelupalaveri 3 Sprintin tavoite 4 Julkaisun käsiteltävien asioiden lista 5 Sprintin tehtävälistä 6 Päivittäinen scrum 7 Sprintin katselmus DSDM 1 Prototypisointisuunnitelma 2 Arkkitehtuurinen suunnitelma 3 Priorisoitu lista vaatimuksista 4 Prototyypin identifiointi 5 Aikataulun sopiminen 6 Prototyypin rakentaminen 7 Prototyypin katselmointi 8 Hyväksymistestaus

22 22 T Ohjelmistotuotannon seminaari, TKK, kevät Johtopäätökset Microsoftin Synch-and-Stabilize on tutkielman metodologioista selvästi kaikkein kokonaisvaltaisin. Se määrittää yrityksen toiminnan suhteelisen tarkasti myös strategisessa tuotejulkaisujen ohjaussyklissä. Tutkimuksen muiden metodologioiden käytännöt ovat kyseisessä syklissä kevyitä tai jopa olemattomia. Toisaalta tätä ei pidä laskea muiden metodologioiden heikkoudeksi, sillä useissa tapauksissa yrityksen on helpompaa ottaa käyttöön metodologia joka sallii tuotteen julkaisujen pitkäaikaissuunnittelukäytäntöjen säilyttämisen samanlaisena kuin ne ovat aina olleetkin. Synch-and-Stabilizen tapauksessa on kyse metodologiasta joka on kehitetty yksittäisen yrityksen, Microsoftin tarkoituksiin. Sen kehittämisessä ja dokumentoinnissa ei todennäköisesti ole mietitty metodologian käytettävyyttä muissa yrityksissä. XP, Scrum ja DSDM ovat tässä mielessä yleispätevämpiä, että ne sallivat julkaisujen pitkäaikaissuunnittelussa käytettävän kullekkin yritykselle sopivimpia työkaluja. Toisinsanoen viitekehysanalyysin perusteella huomataan, että kaikki muut metodologiat paitsi Synch-and-Stabilize tarvitsevat aika paljon lihaa luidensa ympärille mikäli niitä ruvetaan käytännössä implementoimaan. Seikka mikä kannattaa muistaa aina Synchand-Stabilizea tarkasteltaessa on se, että siitä kertovat lähteet ovat suhteellisen vanhoja eikä allekirjoittaneella ole tietoa mihin suuntaan kyseinen metodologia on kehittynyt lähteiden kirjoittamisen jälkeen. Scrum määrittää paljolti miten ohjelmistotyötä pitäisi suunnitella ja seurata. XP:ssä tämä puoli on jätetty vähemmälle ja keskitytty määrittelemään yksittäisiä käytännön ohjelmointitekniikoita joita käyttämällä ohjelmistotyön tuottavuutta ja laatua voidaan nostaa. Kuten analyysitaulukosta huomataan on XP:n painopiste testauksen ja laadunvarmistuksen sekä ohjelmistosuunnittelun ja toteutuksen puolella. Scrumissa painopiste on puolestaan suunnittelussa ja seurannassa sekä vaatimustenhallinnassa. Analyysin perusteella metodologiat voisivat täydentää ja tukea toisiaan hienosti. Näin käytännössä onkin sillä (Beedle et al., 2001) kertoo XP:n ja Scrumin olevan yhdessä käytettynä hyperproduktiivinen yhdistelmä. Mikäli metodologioita vertaillaan viitekehysanalyysin perusteella huomataan, että itseasiassa osa eri metodologioiden tavoista toimia on samoja, mutta niillä on eri nimet. Tästä esimerkkinä XP:n jatkuva integrointi ja Synch-and-Stabilizen päivittäiset buildit. Tämä pienentää metodologioiden eroavaisuuksia jonkin verran. Silti metodologiat eroavat kuitenkin toisistaan selvästi. 4CC viitekehyksen suurin käyttösovellus on varmasti yritysten käytössä olevien ohjelmistokehityskäytäntöjen analysoinnissa. Ajan myötä voidaan saada näppituntumaa siitä millainen metodologia soveltuu mihinkin liiketoimintaympäristöön ja yrityksen sisäisiin ominaisuuksiin. Tällöin tämän tutkimuksen tapaista analyysia voidaan puolestaan käyttää päätöksenteon tukena siinä vaiheessa kun arvioidaan etukäteen paperilla jonkun metodologian soveltuvuutta käytäntöön. Ketterien ohjelmistokehitysmetodologioiden kuvaaminen 4CC viitekehyksellä onnistui kiitettävästi sillä suurin osa tutkimukseen valittujen metodologioiden tärkeimmistä ominaisuuksista pystyttiin sijoittamaan viitekehyksen mukaiseen jakoon. Tämä ei

23 T Ohjelmistotuotannon seminaari, TKK, kevät sinänsä ole yllätys sillä osaa näistä metodologioista on käytetty viitekehyksen suunnittelun lähtökohtana (Rautiainen et al., 2002).

24 24 T Ohjelmistotuotannon seminaari, TKK, kevät Tutkielman arviointia Allekirjoittaneen mielestä tutkielman tavoitteet täyttyivät. Tutkimusongelmaan saatiin selkeästi vastaus. Oma tietämykseni sekä tutkimuksen metodologioista, että ketteristä metodologioista ylipäätänsä otti varmasti suuren harppauksen eteenpäin. Toisaalta nyt tehty tutkielma oli hyvin teoreettinen. Silti se antaa hyvät lähtökohdat tutkia seuraavaksi jotain käytännönläheisempää aihetta. Tavoitteet täyttyivät myös siinä mielessä, että valmiuteni tieteelliseen kirjoittamiseen paranivat. Eräs tutkimuksen aikana ilmennyt ongelma oli se, että alunperin tutkimuksen yhdeksi kohteeksi oli valittu Feature Driven Development (FDD). FDD jouduttiin kuitenkin vaihtamaan DSDM:n, koska kirjallisuutta FDD:stä oli vaikea löytää. Toinen ongelma oli 4CC mallin nuori ikä ja siitä johtuva lähdedokumenttien muuttuminen tutkimuksen edetessä.

25 T Ohjelmistotuotannon seminaari, TKK, kevät Yhteenveto Tutkimuksen aiheena on tutkia voidaanko ketteriä ohjelmistokehitysmetodologioita kuvata käyttäen 4CC Tutkimukseen kohteeksi valittiin metodologiat Microsoft Synch-and-Stabilize, Extreme Programming, Scrum ja Dynamic Systems Development Method. 4CC on viitekehyksen on suunniteltu pienten ja keskisuurten ohjelmistoyritysten tuotekehitystoiminnan analysointiin ja kehittämiseen. Viitekehys jakaa yrityksen toiminnan neljään ohjaussykliin. Strategisessa tuotejulkaisujen ohjaussyklissä tuotteen eri sidosryhmät päättävät tuotejulkaisujen ajoituksesta ja sisällöstä, resurssien jakamisesta sekä teknologisista pääsuuntaviivoista. Julkaisuprojektin ohjaussyklissä puolestaan suunnitellaan julkaisuprojektin jakaminen iteraatioihin ja määritetään iteraatioille laajuus, aikataulu ja budjetti. Iteraation ohjaussyklin tarkoituksena on puolestaan hallita itse iteraatiota ja tuottaa vakaa sekä toimiva tuotejulkaisun inkrementti jota voidaan käyttää palautteen saamiseksi ja käyttäjävaatimusten tarkentamiseksi. Edistystä iteraation aikana puolestaan seurataan mini-milestonejen avulla. Analyysissä tutkimukseen valituttujen metodologioiden käytännöt jaettiin äsken esiteltyihin sykleihin. Taulukko 1. sivulla 21 vetää yhteen tämän analyysin. Analyysin perusteella huomattiin, että Microsoftin Synch-and-Stabilize on tutkielman metodologioista selvästi kaikkein kokonaisvaltaisin. Se määrittää yrityksen toiminnan suhteelisen tarkasti myös strategisessa tuotejulkaisujen ohjaussyklissä. Tutkimuksen muiden metodologioiden käytännöt ovat kyseisessä syklissä kevyitä tai jopa olemattomia. Scrum määrittää paljolti miten ohjelmistotyötä pitäisi suunnitella ja seurata. XP:ssä tämä puoli on jätetty vähemmälle ja keskitytty määrittelemään yksittäisiä käytännön ohjelmointitekniikoita joita käyttämällä ohjelmistotyön tuottavuutta ja laatua voidaan nostaa. Kuten analyysitaulukosta huomataan on XP:n painopiste testauksen ja laadunvarmistuksen sekä ohjelmistosuunnittelun ja toteutuksen puolella. Scrumissa painopiste on puolestaan suunnittelussa ja seurannassa sekä vaatimustenhallinnassa. Analyysin perusteella metodologiat voisivat täydentää ja tukea toisiaan hienosti. Näin käytännössä onkin sillä (Beedle et al., 2001) kertoo XP:n ja Scrumin olevan yhdessä käytettynä hyperproduktiivinen yhdistelmä. Ketterien ohjelmistokehitysmetodologioiden kuvaaminen 4CC viitekehyksellä onnistui kiitettävästi sillä suurin osa tutkimukseen valittujen metodologioiden tärkeimmistä ominaisuuksista pystyttiin sijoittamaan viitekehyksen mukaiseen jakoon. Tämä ei sinänsä ole yllätys sillä osaa näistä metodologioista on käytetty viitekehyksen suunnittelun lähtökohtana (Rautiainen et al., 2002).

26 26 T Ohjelmistotuotannon seminaari, TKK, kevät Lähdeluettelo Julkaisut (Beck, 2000) Beck K Extreme programming explaned: embrace change. Reading (MA). Addison-Wesley. 190 s. ISBN (Beck, 1999) Beck K Embracing change with extreme programming. IEEE Computer. Vol. 32, Issue 10. s. 70. ISSN (Beedle et al., 2001) Beedle M., Schwaber K., Martin R Agile Software Development with SCRUM. Paperback. 150 s. ISBN (Cockburn, 2001) Cockburn A., Agile Software Development. Addison-Wesley. Reading (MA). 256 s. ISBN (Cusumano, 1995) Cusumano M.A Microsoft secrets: how the world's most powerful software company creates technology, shapes markets, and manages people. New York. Free Press. 512 s. ISBN (Cusumano & Yoffie, 1999) Cusumano M.A., Yoffie D.B Software development on Internet time. IEEE Computer. Vol. 32, Issue 10. s. 60. ISSN (Cusumano & Selby, 1997) Cusumano M., Selby R How Microsoft builds Software. Communications of the ACM. Vol. 40, Issue 9. s. 53. ISSN (Cusumano & Smith, 1997) Cusumano M., Smith S Beynd the Waterfall: Software Development at Microsoft. Teoksessa: Yoffie D. Competing in the age of digital convergence. USA. ISBN (Haikala, Märijärvi 1998) Haikala I., Märijärvi J Ohjelmistotuotanto. 5. painos. Suomen Atk-kustannus Oy. Jyväskylä. 385 s. ISBN (Rautiainen et al., 2002) Rautiainen K., Lassenius C., Sulonen R., CC: Balancing flexibility and control: A framework for Product Development Management in Small Software Companies, Helsinki University of Technology. EI VIELÄ JULKAISTU. (Stapleton, 1997) Stapleton J Dynamic Systems Development Method. DSDM Consortium. Reading. 163 s. ISBN Muut kirjalliset lähteet (Vähäniitty, 2002) Vähäniitty J SEMS Software Engineering Management System for SME s in the SW Product Business. Tekesin Spin-teknologiaohjelman vuosiseminaari. Helsinki Saatavilla www:stä <

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

Tutkittua tietoa. Tutkittua tietoa 1

Tutkittua tietoa. Tutkittua tietoa 1 Tutkittua tietoa T. Dybå, T. Dingsøyr: Empirical Studies of Agile Software Development : A Systematic Review. Information and Software Technology 50, 2008, 833-859. J.E. Hannay, T. Dybå, E. Arisholm, D.I.K.

Lisätiedot

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet Organisaation prosessikuvaus - CMMI Prosessikuvaukset ja elinkaarimallit Sami Kollanus TJTA330 Ohjelmistotuotanto 7.2.2007 Level5 Level4 Level3 Requirements Development Technical Solution Product Integration

Lisätiedot

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4. Prosessikuvaukset ja elinkaarimallit Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4. Organisaation prosessikuvaus - CMMI Level5 Level4 Organizational Innovation and Deployment Causal Analysis and Resolution

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12. Scrum is Not Enough Scrum ei riitä Ari Tanninen & Marko Taipale Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.2009 Ari Tanninen Vanhempi ohjelmistoinsinööri Marko Taipale Teknologiajohtaja,

Lisätiedot

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit

Lisätiedot

Ohjelmistotekniikka - Luento 3 Jouni Lappalainen

Ohjelmistotekniikka - Luento 3 Jouni Lappalainen Ohjelmistotekniikka - Luento 3 Jouni Lappalainen Luku 3: Ketterä kehitys - ketterien menetelmien 12 periaatetta - XP (extreme programming) - Scrum menetelmä - Lean menetelmä 1 Luku 3: Ketterä kehittäminen

Lisätiedot

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento

Lisätiedot

Scrumin käyttö ketterässä sovelluskehityksessä

Scrumin käyttö ketterässä sovelluskehityksessä Scrumin käyttö ketterässä sovelluskehityksessä 9.4.2008 Janne Kuha Manager, Java Services Descom Oy Janne Kuha Manager, Java Services janne.kuha@descom.fi Kuka? Descom Oy:llä, sitä ennen Wanadu Inc., Mountain

Lisätiedot

Ohjelmistotekniikka - Luento 3

Ohjelmistotekniikka - Luento 3 Ohjelmistotekniikka - Luento 3 Luku 3: Ketterä kehitys - ketterien menetelmien 12 periaatetta - XP (extreme programming) - Scrum menetelmä Lean menetelmä 1 Luku 3: Ketterä kehittäminen Ketterä (agile)

Lisätiedot

Ketterä projektinhallinta

Ketterä projektinhallinta Ketterä projektinhallinta Petri Heiramo Agile Coach, CST 1 Petri Heiramo Ikä: 37 (vielä pari päivää ) Oma koulutus- ja valmennusyritys, Agilecraft Oy, reilut 3 viikkoa Lähes 10v ohjelmistokehitys- ja -prosessitausta

Lisätiedot

Ohjelmistoprojekteista. Datanomiopiskelijat 2.vuosi

Ohjelmistoprojekteista. Datanomiopiskelijat 2.vuosi Ohjelmistoprojekteista Datanomiopiskelijat 2.vuosi Yleistä projekteista Projekti on selkeästi asetettuihin tavoitteisiin pyrkivä, ajallisesti rajattu kertaluonteinen hanke, jonka toteuttamisesta vastaa

Lisätiedot

Tapahtuipa Testaajalle...

Tapahtuipa Testaajalle... Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman

Lisätiedot

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Copyright by Haikala. Ohjelmistotuotannon osa-alueet Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary

Lisätiedot

VERSIONHALLINTA. PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D

VERSIONHALLINTA. PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D VERSIONHALLINTA PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D Versio Päivä Tekijä Kuvaus 0.1 26.10.2005 Kaarlo Lahtela Ensimmäinen versio 0.2 10.12.2006 Lauri Kiiski Suomennettu 3 (8 ) SISÄLLYS

Lisätiedot

Ketterä vaatimustenhallinta

Ketterä vaatimustenhallinta Ketterä vaatimustenhallinta ja miksi se on useimmiten hyvä asia K A R I A L HO C E O I M P R OV EIT OY Sisältö ImproveIt Oy Perinteinen vaatimushallinta Ketterä vaatimustenhallinta Monenlaista softakehitystä

Lisätiedot

Onnistunut ohjelmistoprojekti

Onnistunut ohjelmistoprojekti Onnistunut ohjelmistoprojekti 2.12.2008 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt ja työkalut Tulevaisuuden

Lisätiedot

Ville Isomöttönen. Agile. Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos

Ville Isomöttönen. Agile. Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos Agile Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos Manifesto of Agile Software Development(2001): We are uncovering better ways of developing software by doing it and helping others doit.throughthisworkwehavecometovalue:

Lisätiedot

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara Mitä? Mitä? Yrityksen sisäinen Mitä? Yrityksen sisäinen Alihankinta Mitä? Yrityksen sisäinen Open Source -kehitys Alihankinta

Lisätiedot

Lyhyt johdatus ketterään testaukseen

Lyhyt johdatus ketterään testaukseen TTY:n Testauspäivät, Tampere 15.8.2006 Lyhyt johdatus ketterään testaukseen eli Ketterän ohjelmistokehityksen laatukäytäntöjä Juha Itkonen SoberIT Teknillinen korkeakoulu Juha.Itkonen@tkk.fi Ketterä ohjelmistokehitys

Lisätiedot

Kun scrum ei riitä - skaalaa ketterä tuotekehitys SAFe lla Nestori Syynimaa Sovelto Oyj

Kun scrum ei riitä - skaalaa ketterä tuotekehitys SAFe lla Nestori Syynimaa Sovelto Oyj Kun scrum ei riitä - skaalaa ketterä tuotekehitys SAFe lla 28.10.2016 Nestori Syynimaa Sovelto Oyj 1 Puhujasta Seniori-konsultti Nestori Syynimaa SAFe, Scrum, Lean IT, ITIL, kokonaisarkkitehtuuri,.. PhD

Lisätiedot

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako 2. Ohjelmistotuotantoprosessi peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Yrittäjäkasvatuksen polku - sivusto. Yksityiskohtainen suunnittelu Huhtikuu 2018

Yrittäjäkasvatuksen polku - sivusto. Yksityiskohtainen suunnittelu Huhtikuu 2018 Yrittäjäkasvatuksen polku - sivusto Yksityiskohtainen suunnittelu Huhtikuu 2018 Sisällys 1. Sivuston tavoitteet 2. Tausta 3. Näkemys työn tekemisestä ja etenemisestä 4. Roolit ja vastuut -ehdotus 5. Ylätason

Lisätiedot

Scrumjatkuvan palvelun DWprojektissa-case. Niina Mäkiranta & OP-scrum-tiimi Aureolis Oy

Scrumjatkuvan palvelun DWprojektissa-case. Niina Mäkiranta & OP-scrum-tiimi Aureolis Oy Scrumjatkuvan palvelun DWprojektissa-case OP-Pohjola Niina Mäkiranta & OP-scrum-tiimi Aureolis Oy Agenda Scrum lyhyesti Jatkuvan palvelun DW-projekti- Case OP-Pohjola Lähtötilanne ennen Scrumia Scrumin

Lisätiedot

2. Ohjelmistotuotantoprosessi

2. Ohjelmistotuotantoprosessi 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA Ohjelmointitekniikka lyhyesti Survival Kit. Vesiputousmalli ELINKAARIMALLEISTA. Ohjelmiston elinkaari Ohjelmiston elinkaarella (life cycle) tarkoitetaan aikaa, joka kuluu ohjelmiston kehittämisen aloittamisesta

Lisätiedot

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita 581259 Ohjelmistotuotanto 378 Lemström, 2006-2011 581259 Ohjelmistotuotanto Kiitos Tuomolle kuvasta 379 Ohjelmistotuotannon perustehtävät projektinhallinta:

Lisätiedot

Siirtyminen ketterien menetelmien maailmaan! Maarit Laanti 24 October 2013!

Siirtyminen ketterien menetelmien maailmaan! Maarit Laanti 24 October 2013! Siirtyminen ketterien menetelmien maailmaan! Maarit Laanti 24 October 2013! Sisältö! 1. Tilanne nyt: waterscrumming! 2. Kokonaisvaltainen ketteryys mitä sillä haetaan, mitä sillä saadaan?! 3. Ketterän

Lisätiedot

Onnistunut ohjelmistoprojekti

Onnistunut ohjelmistoprojekti Onnistunut ohjelmistoprojekti ICT-ajankohtaisseminaari 15.4.2009 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt

Lisätiedot

Määrittely- ja suunnittelumenetelmät

Määrittely- ja suunnittelumenetelmät Menetelmädokumentti Määrittely- ja suunnittelumenetelmät Versio Päiväys Tekijä Kuvaus 0.01 5.12.01 Pekka Koskinen Alustava sisällysluettelo 0.1 7.12.01 Pekka Koskinen Ensimmäinen luonnos 1.0 11.12.01 Pekka

Lisätiedot

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta T-76.115 Tietojenkäsittelyopin ohjelmatyö Sisältö Tämä on dokumentti esittelee tietokonegrafiikkaalgoritmien visualisointijärjestelmän kehitysprojektissa käytettävän vaatimustenhallintamenetelmän. Päivämäärä

Lisätiedot

Projektityö

Projektityö Projektityö 21.10.2005 Projektisuunnitelma Työn ositus Projektisuunnitelman sisältö Kurssin luennoitsija ja projektiryhmien ohjaaja: Timo Poranen (email: tp@cs.uta.fi, työhuone: B1042) Kurssin kotisivut:

Lisätiedot

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Sisäänrakennettu tietosuoja ja ohjelmistokehitys Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology

Lisätiedot

Software engineering

Software engineering Software engineering Alkuperäinen määritelmä: Naur P., Randell B. (eds.): Software Engineering: A Report on A Conference Sponsored by the NATO Science Committee, NATO, 1968: The establishment and use of

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

Lisätiedot

Prosessikuvaukset ja elinkaarimallit

Prosessikuvaukset ja elinkaarimallit Prosessikuvaukset ja elinkaarimallit Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4. Organisaation prosessikuvaus - CMMI Level5 Level4 Organizational Innovation and Deployment Causal Analysis and Resolution

Lisätiedot

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3 AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan

Lisätiedot

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Sisäänrakennettu tietosuoja ja ohjelmistokehitys Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 8. kesäkuuta, 2018 Agenda Ohjelmistokehitys Ohjelmistokehitys vs. konsultointi Vaatimukset Tietosuoja Tietosuoja ohjelmistokehityksessä kiteytettynä

Lisätiedot

Maanvuokrausjärjestelmä Mvj. Projektitarpeen ja tavoitteiden kuvaus

Maanvuokrausjärjestelmä Mvj. Projektitarpeen ja tavoitteiden kuvaus Maanvuokrausjärjestelmä Mvj Projektitarpeen ja tavoitteiden kuvaus Helsingin kaupunki TARJOUSPYYNTÖ 2 (10) LYHYT KUVAUS 3 PUITESOPIMUKSESTA POIKKEAVAT ja ERIKSEEN SOVITTAVAT KOHDAT 3 NYKYTILA - KOKEILUVAIHEEN

Lisätiedot

Specifying user requirements for corporate intranet with user centered design methods. Espoo Tekijä: Henri Ström Valvoja: TkT Kalevi Kilkki

Specifying user requirements for corporate intranet with user centered design methods. Espoo Tekijä: Henri Ström Valvoja: TkT Kalevi Kilkki Specifying user requirements for corporate intranet with user centered design methods Espoo 29.9.2016 Tekijä: Henri Ström Valvoja: TkT Kalevi Kilkki Sisältö Työn tausta Ongelman asettelu Metodiikka Kehitysprojekti

Lisätiedot

T Ohjelmistotuotannon seminaari. Agile Processes. XP:n hyväksymistestit

T Ohjelmistotuotannon seminaari. Agile Processes. XP:n hyväksymistestit T-76.650 Ohjelmistotuotannon seminaari Agile Processes XP:n hyväksymistestit 15.4.2002 Mikko Pasanen 49159H Tik N mspasane@cc.hut.fi Tiivistelmä 2 Extreme Programming on kevyt ohjelmistokehityksen metodologia,

Lisätiedot

Ketteryys pähkinänkuoressa. Kokopäivän Scrum-kurssin sisältö tislattuna ja tiivistettynä kolmeen varttiin

Ketteryys pähkinänkuoressa. Kokopäivän Scrum-kurssin sisältö tislattuna ja tiivistettynä kolmeen varttiin Ketteryys pähkinänkuoressa Kokopäivän Scrum-kurssin sisältö tislattuna ja tiivistettynä kolmeen varttiin Empiirinen prosessinhallinta Iteraatiot ja inkrementit riskienhallinnassa Imuohjaus Ketteryyden

Lisätiedot

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit Luku 3:

Lisätiedot

Ohjelmistoprojektien hallinta Vaihejakomallit

Ohjelmistoprojektien hallinta Vaihejakomallit Ohjelmistoprojektien hallinta Vaihejakomallit Vaihejakomallit TAVOITE: YMMÄRTÄÄ eri vaihejakomallien etujajahaittoja 2 Erilaisia malleja Tee ja korjaa (Code-and-Fix) Vesiputousmalli (Waterfall) Vesiputousmalli

Lisätiedot

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät Laatujärjestelmät Ohjelmistotekniikka kevät 2003 Prosessiajattelu Sisään Prosessi Ulos ohjaus mittaus Laatujärjestelmät Laatujärjestelmät määrittelevät sen, mitkä prosessit täytyy olla määritelty ei sitä,

Lisätiedot

statbeatmobile PROJECT REVIEW iteration 1

statbeatmobile PROJECT REVIEW iteration 1 statbeatmobile PROJECT REVIEW iteration 1 agenda Projekti Status Käytännöt Tulokset Katsaus eteenpäin PROJEKTI / mikä on statbeat? Sosiaalinen joukkueurheilupalvelu Keskustelu, fanit, kavereiden joukkueet,

Lisätiedot

Automaattinen yksikkötestaus

Automaattinen yksikkötestaus Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Automaattinen yksikkötestaus Ryhmä Rajoitteiset Versio Päivämäärä Tekijä

Lisätiedot

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright

Lisätiedot

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa 1 Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa Passion leads to design, design leads to performance, performance leads to SUCCESS! OLLI NIEMI Yoso Oy Mitä määrittelyltä

Lisätiedot

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus LAADUNVARMISTUS 135 Projektinhallinnan laadunvarmistus Projektinhallinnan laadunvarmistus tukee ohjelmistoprojektien ohjaus- ja ylläpitotehtäviä. Projektinhallinnan laadunvarmistustehtäviin kuuluvat seuraavat:

Lisätiedot

Ohjelmistoprosessi. Ohjelmistotuotanto. Yleiset ohjelmistotuotannon osatehtävät. Ohjelmistoprosessimalli. Vaihejaon ominaispiirteitä

Ohjelmistoprosessi. Ohjelmistotuotanto. Yleiset ohjelmistotuotannon osatehtävät. Ohjelmistoprosessimalli. Vaihejaon ominaispiirteitä Ohjelmistoprosessi Ohjelmistotuotanto Ohjelmistoprosessi Ohjelmiston elinkaari Ohjelmiston rakentamisen vaiheet ja niiden tulokset Ohjelmiston elinkaaren määrittely Yleisrakenne sille, miten ohjelmisto

Lisätiedot

Hajaantuminen. Juha Taina, Marko Salmenkivi ja Kjell Lemstöm, Ohjelmistotuotanto 30

Hajaantuminen. Juha Taina, Marko Salmenkivi ja Kjell Lemstöm, Ohjelmistotuotanto 30 Hajaantuminen tällä hetkellä ohjelmistotuotantoa kuvaa hajaantuminen ja erikoistuminen perusperiaatteet ovat säilyneet ennallaan, mutta yritykset käyttävät omia räätälöityjä prosessimalleja, menetelmiä

Lisätiedot

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Juha Taina, Marko Salmenkivi ja Kjell Lemström, Hajaantuminen tällä hetkellä ohjelmistotuotantoa kuvaa hajaantuminen ja erikoistuminen perusperiaatteet ovat säilyneet ennallaan, mutta yritykset käyttävät omia räätälöityjä prosessimalleja, menetelmiä

Lisätiedot

KETTERÄT MENETELMÄT. Tomi Airaksinen. Tietojärjestelmätieteen Kandidaatin tutkielma 22.6.2004

KETTERÄT MENETELMÄT. Tomi Airaksinen. Tietojärjestelmätieteen Kandidaatin tutkielma 22.6.2004 Tomi Airaksinen KETTERÄT MENETELMÄT Tietojärjestelmätieteen Kandidaatin tutkielma 22.6.2004 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Jyväskylä 2 TIIVISTELMÄ Airaksinen, Tomi Tapio Tietojärjestelmätiede,

Lisätiedot

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus: Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus

Lisätiedot

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op) 581361 Ohjelmistoprosessit ja ohjelmistojen laatu (4op) Ohjelmistojärjestelmien syventävien opintojen kurssi Myös ohjelmistotekniikan profiilin pakollinen kurssi eli ohjelmistotekniikka-aiheisen gradun

Lisätiedot

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Onnistunut SAP-projekti laadunvarmistuksen keinoin Onnistunut SAP-projekti laadunvarmistuksen keinoin 07.10.2010 Patrick Qvick Sisällys 1. Qentinel 2. Laadukas ohjelmisto täyttää sille asetetut tarpeet 3. SAP -projektin kriittisiä menestystekijöitä 4.

Lisätiedot

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ Eeva Kangas 05.11.2015 @FixUi Oy 2013 2015 FIXUI "Autamme yrityksiä suunnittelemaan sellaisia tuotteita, joita ihmiset osaavat ja haluavat käyttää" Käyttäjätutkimukset

Lisätiedot

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1 T-76.115 Tietojenkäsittelyopin ohjelmatyö Sisältö Tästä dokumentista ilmenee T1-vaiheessa suoritettu testaus, sen tulokset ja poikkeamat testisuunnitelmasta. Päivämäärä 1.12.2002 Projektiryhmä Keimo keimo-dev@list.hut.fi

Lisätiedot

Agile. Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos

Agile. Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos Agile Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos Manifesto of Agile Software Development (2001): We are uncovering better ways of developing software by doing it and helping others do it. Through

Lisätiedot

Sakari Hilama DEVIATIONS -OHJELMISTO LAATUPOIKKEAMIEN KÄSITTELYYN

Sakari Hilama DEVIATIONS -OHJELMISTO LAATUPOIKKEAMIEN KÄSITTELYYN Sakari Hilama DEVIATIONS -OHJELMISTO LAATUPOIKKEAMIEN KÄSITTELYYN Opinnäytetyö Kajaanin ammattikorkeakoulu Luonnontieteiden ala Tietojenkäsittelyn koulutusohjelma Kevät 2009 OPINNÄYTETYÖ TIIVISTELMÄ Koulutusala

Lisätiedot

Scrum-käytännöt ja käyttäjäkokemustyö ohjelmistoalan yrityksessä. Marie-Elise Kontro

Scrum-käytännöt ja käyttäjäkokemustyö ohjelmistoalan yrityksessä. Marie-Elise Kontro Scrum-käytännöt ja käyttäjäkokemustyö ohjelmistoalan yrityksessä Marie-Elise Kontro 25.03.2015 Sisältö 1. Tutkimuskysymykset 2. Scrum ja käyttäjäkokemustyö 3. Tutkimusmenetelmä 4. Tulokset 5. Luotettavuuden

Lisätiedot

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori Testauksen tuki nopealle tuotekehitykselle Antti Jääskeläinen Matti Vuori Mitä on nopeus? 11.11.2014 2 Jatkuva nopeus Läpäisyaste, throughput Saadaan valmiiksi tasaiseen, nopeaan tahtiin uusia tuotteita

Lisätiedot

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky Koekysymyksiä Ohjelmistoprosessit ja ohjelmistojen laatu 30.4.2015 58153003 Ohjelmistojen suorituskyky 1 Kurssikokeeseen tulee neljä koetilaisuudessa vastattavaa kysymystä KOKEESSA VASTATTAVAT KYSYMYKSET

Lisätiedot

Määrittelyvaihe. Projektinhallinta

Määrittelyvaihe. Projektinhallinta Määrittelyvaihe Projektinhallinta testaus määrittely suunnittelu ohjelmointi käyttöönotto, testaus tuotteenhallinta laadunvarmistus dokumentointi vaatimustenhallinta Määrittely Määrittely, eli kansanomaisesti

Lisätiedot

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4 Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4 Tämän esityksen sisältö tausta avoimet toimittajakohtaiset rajapinnat (toimittajan hallitsemat rajapinnat) avoimet yhteiset rajapinnat (tilaajan

Lisätiedot

Testauksen suunnittelu ja dokumentointi ketterässä testauksessa Tutkimustuloksia

Testauksen suunnittelu ja dokumentointi ketterässä testauksessa Tutkimustuloksia Testauksen suunnittelu ja dokumentointi ketterässä testauksessa Tutkimustuloksia Nina Perta, Senior quality consultant Knowit Oy Elina Varteva, QA Specialist Knowit Oy Copyright Knowit Oy 2014 Nina Perta

Lisätiedot

Ketterien periaatteiden merkitys projektityössä

Ketterien periaatteiden merkitys projektityössä Ketterien periaatteiden merkitys projektityössä Suvi Jentze-Korpi Helsinki 18.10.2012 Kandidaatintutkielma-kurssin aine HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto 1 2 Lineaarinen

Lisätiedot

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant AgilElephant Testausraportti I1 Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: Testausraportti Sivu 1 / 5 Dokumentti Historia Muutoshistoria Revision Numero Revision Päiväys Yhteenveto muutoksista Revision

Lisätiedot

Petri Mattila KÄYTTÄJÄKESKEISEN SUUNNITTELUN INTEGROINTI KETTERÄN KEHITTÄMISEN PROSESSIIN JA ROOLEIHIN

Petri Mattila KÄYTTÄJÄKESKEISEN SUUNNITTELUN INTEGROINTI KETTERÄN KEHITTÄMISEN PROSESSIIN JA ROOLEIHIN Petri Mattila KÄYTTÄJÄKESKEISEN SUUNNITTELUN INTEGROINTI KETTERÄN KEHITTÄMISEN PROSESSIIN JA ROOLEIHIN JYVÄSKYLÄN YLIOPISTO TIETOJENKÄSITTELYTIETEIDEN LAITOS 2014 TIIVISTELMÄ Mattila, Petri Käyttäjäkeskeisen

Lisätiedot

CMM Capability Maturity Model. Software Engineering Institute (SEI) Perustettu vuonna 1984 Carnegie Mellon University

CMM Capability Maturity Model. Software Engineering Institute (SEI)   Perustettu vuonna 1984 Carnegie Mellon University CMMI Sami Kollanus TJTA330 Ohjelmistotuotanto 13.3. CMM Capability Maturity Model Software Engineering Institute (SEI) www.sei.cmu.edu Perustettu vuonna 1984 Carnegie Mellon University 1985 SEI aloitti

Lisätiedot

CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto Software Engineering Institute (SEI)

CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto Software Engineering Institute (SEI) CMMI Sami Kollanus TJTA330 Ohjelmistotuotanto 13.3. CMM Capability Maturity Model Software Engineering Institute (SEI) www.sei.cmu.edu Perustettu vuonna 1984 Carnegie Mellon University 1985 SEI aloitti

Lisätiedot

Ketteryys kokeilemalla. Leo Malila Kehittämispäällikkö, Kela

Ketteryys kokeilemalla. Leo Malila Kehittämispäällikkö, Kela Ketteryys kokeilemalla Leo Malila Kehittämispäällikkö, Kela 1.11.2016 Agenda Kelan ICT Ketteryys tavoitteena Teetetyn tutkimuksen ja sen kohteen esittely Havaintoja tutkimuksen perusteella Kelan ketteryys

Lisätiedot

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen

Lisätiedot

Tietojärjestelmän osat

Tietojärjestelmän osat Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto

Lisätiedot

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä Käyttäjäkeskeinen suunnittelu Käyttäjän huomiointi suunnitteluprosessissa Iteroitu versio 1.1 muutettu klo12.10 - paljon kirjoitusvirheitä Käyttäjäkeskeinen suunnittelu Perusidea: käyttäjät huomioidaan

Lisätiedot

Käyttäjäkeskeinen suunnittelu

Käyttäjäkeskeinen suunnittelu Käyttäjäkeskeinen suunnittelu Käyttäjän huomiointi suunnitteluprosessissa Iteroitu versio 1.1 muutettu klo12.10 - paljon kirjoitusvirheitä Käyttäjäkeskeinen suunnittelu Perusidea: käyttäjät huomioidaan

Lisätiedot

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta OHJ-3010 Ohjelmistotuotannon perusteet Ohjelmistoprojektin hallinta 1 Sisältö Projektiorganisaatio ja sidosryhmät Ohjelmistoprojektin kulku Projektin suunnittelu Ositus Osallistujat Työmäärän arviointi

Lisätiedot

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus SEPA päiväkirja BetaTeam Juho Mäkinen, 57796V, jvmakine@cc.hut.fi Jari Leppä, 42710V, jleppa@cc.hut.fi Versio Pvm Tekijä Kuvaus 0.1 10.11.2005 Juho Mäkinen Johdanto 1. 0.2 11.11.2005 J.Mäkinen, Käytäntöön

Lisätiedot

Soft QA. Vaatimusten muutostenhallinta. Ongelma

Soft QA. Vaatimusten muutostenhallinta. Ongelma Vaatimusten muutostenhallinta Ongelma Muutostenhallinta on usein vaatimustenhallinnan Akilleen kantapää. Projektien alkaessa ensimmäiset vaatimukset kootaan ja dokumentoidaan, mutta usein vaatimuksia ei

Lisätiedot

Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä. Kari Suihkonen

Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä. Kari Suihkonen Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä Kari Suihkonen Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä Tuote Ohjelmisto Ulkoiset tekijät Sisäiset tekijät 2 Hissin ohjausjärjestelmä ohjelmistotuotteena

Lisätiedot

CMMI CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto

CMMI CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto CMM Capability Maturity Model CMMI Sami Kollanus TJTA330 Ohjelmistotuotanto 16.1.2007 Software Engineering Institute (SEI) www.sei.cmu.edu Perustettu vuonna 1984 Carnegie Mellon University 1985 SEI aloitti

Lisätiedot

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework Työn ositusmalleista Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Walker Royce, Software Project Management, A Unified Framework 1 Tavoitteista Luentojen jälkeen opiskelijan tulisi osata:

Lisätiedot

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009 7. Iteratiivinen ohjelmistokehitys Iteratiivinen (ja evoluutio-)ohjelmistokehitys (iterative and evolutionary software development) on prosessimallien perhe, missä ohjelmiston elinkaari muodostuu useasta

Lisätiedot

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä Arkkitehtuuritietoisku eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä Esikysymys Kuinka moni aikoo suunnitella projektityönsä arkkitehtuurin? Onko tämä arkkitehtuuria?

Lisätiedot

Työkalut ohjelmistokehityksen tukena

Työkalut ohjelmistokehityksen tukena 1 Työkalut ohjelmistokehityksen tukena Johdanto 2 Työkaluja eli ohjelmistotyötä tukevia ohjelmistoja käytetään ohjelmistoalan yrityksissä nykypäivänä paljon. Työkalut auttavat ohjelmistoalan ihmisiä suunnittelemaan

Lisätiedot

10 Kohti ketterää ohjelmistokehitystä

10 Kohti ketterää ohjelmistokehitystä 10 Kohti ketterää ohjelmistokehitystä Perinteinen ohjelmistokehitys perustuu vesiputousmalliin, jossa tavoitteena on ensisijaisesti projektin vieminen läpi tietyssä ajassa. Sovelluksen määrittelytyö tehdään

Lisätiedot

Avoimen ja yhteisen rajapinnan hallintamalli

Avoimen ja yhteisen rajapinnan hallintamalli Avoimen ja yhteisen rajapinnan hallintamalli 1.10.2015 Sisältö tausta avoimet toimittajakohtaiset rajapinnat (toimittajan hallitsemat rajapinnat) avoimet yhteiset rajapinnat (tilaajan hallitsemat rajapinnat)

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia

Lisätiedot

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi Luku 8 Rakennusvaihe Moduulisuunnittelu Detailed Design Programming Ohjelmointi Teknisen Complete suunnittelun Technical viimeistely Design Suunnittelukatselmuksen Design Perform suorittaminen Review Yhteisen

Lisätiedot

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testausdokumentti Kivireki Helsinki 17.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Anu Kontio Ilmari

Lisätiedot

Testaaminen ohjelmiston kehitysprosessin aikana

Testaaminen ohjelmiston kehitysprosessin aikana Testaaminen ohjelmiston kehitysprosessin aikana 04.02.2004 http://cs.joensuu.fi/tsoft/ Sisällys 1. Johdanto 2. Yksikkö- ja integrointitestaus 3. Järjestelmätestaus 4. Hyväksymistestaus http://cs.joensuu.fi/tsoft/

Lisätiedot

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon 582104 Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon 1 Lyhyt johdatus ohjelmistotuotantoon Ohjelmistotuotanto, ohjelmistoprojektit Miten ohjelmistojen tuottaminen eroaa teollisesta tuotannosta

Lisätiedot

Projektityö

Projektityö Projektityö 24.9.2010 Ohjelmistojen kehitysmalleista Vaatimusten määrittely ja kerääminen Lähteinä (vaatimusten määrittely): Haikala ja Märijärvi, Ohjelmistotuotanto, Talentum, 2005. Luvut 3, 4, 5, 6-10

Lisätiedot

Johdantoluento. Ohjelmien ylläpito

Johdantoluento. Ohjelmien ylläpito Johdantoluento Ylläpito-termin termin määrittely Ylläpito ohjelmistotuotannon vaiheena Evoluutio-termin määrittely Muita kurssin aiheeseen liittyviä termejä TTY Ohjelmistotekniikka 1 Ohjelmien ylläpito

Lisätiedot

Luku 6 Projektisuunnitteluvaihe

Luku 6 Projektisuunnitteluvaihe Luku 6 Projektisuunnitteluvaihe Projektisuunnittelu Project Planning Projektin Project Definition määrittely and ja Planning suunnittelu Projektin Initiate käynnistäminen andja organisointi Project Organize

Lisätiedot

Ohjelmistotuotteen hallinnasta

Ohjelmistotuotteen hallinnasta Ohjelmistotuotteen hallinnasta Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Haikala ja Märijärvi, Ohjelmistotuotanto Royce, Software Project Management, A Unified Framework 1 Tavoitteista

Lisätiedot