Tehokas siirtyminen järjestelmän kehityksestä ylläpitoon

Samankaltaiset tiedostot
Kuvailulehti. Korkotuki, kannattavuus. Päivämäärä Tekijä(t) Rautiainen, Joonas. Julkaisun laji Opinnäytetyö. Julkaisun kieli Suomi

Julkaisun laji Opinnäytetyö. Sivumäärä 43

Ohjelmistoprojekteista. Datanomiopiskelijat 2.vuosi

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

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

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

Scrumin käyttö ketterässä sovelluskehityksessä

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Tapahtuipa Testaajalle...

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

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

Ammatillinen opettajakorkeakoulu

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

Software product lines

!!!!!!!!!!!!!! PIKAOPAS!RAHAN!TEKEMISEEN!!! Opas!verkkokaupan!markkinoinnin!tuloksekkaa< seen!suunnitteluun!ja!toteutukseen!!! Antti!Sirviö!

MIEHET TAVARATALON ASIAKKAINA

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

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

Käyttäjätarinat perinteisessä hankkeessa. Sisältö ja käytännöt

Ketterä projektinhallinta

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

Onnistunut ohjelmistoprojekti

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

MUSEOT KULTTUURIPALVELUINA

Siirtyminen ketterien menetelmien maailmaan! Maarit Laanti 24 October 2013!

JULKISTEN PALVELUJEN ELINKAARI; HYVÄ PALVELU EILEN, TÄNÄÄN, HUOMENNA MIHIN PALVELUT OVAT MENOSSA? Lauri Helenius, Solita Oy

Loikkaa turvallisesti pilveen

MITÄ ON GEMBA-WALK? Janne Metsolahti Työnjohtaja YIT Infra Oy

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

statbeatmobile PROJECT REVIEW iteration 1

Project group Tete Work-time Attendance Software

PROJEKTI- PÄÄLLIKÖSTÄ PRODUCT OWNERIKSI MEERI CEDERSTRÖM

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Projektiryhmä Tete Work-time Attendance Software. Henkilökohtainen SE harjoitus: loppuraportti

Ohjelmistotekniikka - Luento 2

Tutkittua tietoa. Tutkittua tietoa 1

Ketterä vaatimustenhallinta

Heini Salo. Tuotannonohjauksen kehittäminen digitaalipainossa. EVTEK-ammattikorkeakoulu Mediatekniikan koulutusohjelma. Insinöörityö 15.5.

Oleelliset vaikeudet OT:ssa 1/2

!!!!!!!!!!!!!!! KOTISIVUJEN!UUDISTAMINEN!JA!PROJEKTI1 TOIMINTA!!! Case:!Virtain!kaupunki!!!! Aija!Ylä1Soininmäki!!!!!! Opinnäytetyö!

10 v. työkokemus teknologiaprojekteista, tiiminvedosta ja agile menetelmistä.

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio

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

Lapin Rovaniemen moduuli 2 verkko-opiskelijoiden kysymyksiä tetoimiston virkailijoiden tapaamiseen AC-huoneessa:

Asiakas ja tavoite. Tekninen toteutus

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

Yhteenveto. Ymmärrä kokonaisuus

Toiminnallisen määrittelyn tarina. Esimerkki Reaktorin tavasta tehdä toiminnallista määrittelyä.

Millainen on onnistunut ICT-projekti?

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

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

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

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi

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

Testauksen suunnittelu ja dokumentointi ketterässä testauksessa Tutkimustuloksia

Toiminnanohjausjärjestelmien hyödyntäminen Suomessa 2013

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Muistitko soittaa asiakkaallesi?

Lyhyt johdatus ketterään testaukseen

Capacity Utilization

Testidatan generointi

Maanvuokrausjärjestelmä Mvj. Projektitarpeen ja tavoitteiden kuvaus

käyttötapaukset mod. testaus

Suomen Hiusyrittäjät ry Ajanvarausjärjestelmän tarjous

Tekninen suunnitelma - StatbeatMOBILE

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Heini Honkalatva & Elina Torro SRE9. Lokakuu Opinnäytetyö Kuntoutusohjaus ja suunnittelu Sosiaali, terveys ja liikunta ala

Projektityö

KADA (Drupal 7) migraatio uuteen (versioon) webiin

ja -kehitysmenetelmistä Jyri Partanen, QA Manager Sulake Corporation

Työkaluja esimiestyön tehostamiseen

Ical-kalenterisovellus

T Loppukatselmus

Salasanan vaihto uuteen / How to change password

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

MY KNX, KNX sivu sinua varten Mitä pitää muistaa: Pidä tietosi ajan tasalla

Miten löydän Sen Oikean? Senaattoritilaisuus Liisa Paasiala, Senior Consultant

Laskennallisen fysiikan esimerkkejä avoimesta tutkimuksesta Esa Räsänen Fysiikan laitos, Tampereen teknillinen yliopisto

Toteutusvaihe T3 Digi-tv: Edistymisraportti

1. Oppimisen ja opettamisen haasteet

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ensemble Käyttäjätapaaminen KanTa Liityntäpiste - Tilannepäivitys. Anssi Kauppi / InterSystems Nordics / Suomi

1. Liikkuvat määreet

Katselmoinnit. review) Katselmoinnit (review( Mitä ovat katselmoinnit? Katselmoinnin määritelmä (IEEE 1988)

Lomalista-sovelluksen määrittely

Mistä on kyse ja mitä hyötyä ne tuovat?

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

Kuinka helpottaa suurten projektien tuskaa pilvipalveluilla?

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

Onnistunut ohjelmistoprojekti

Multisite -projektit uhasta mahdollisuus? Johtamiseväitä projektipäällikölle

Projektityö

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

KOODAAKO PROJEKTIPÄÄLLIKKÖ?

!!!!!!!!!!!!! Perehdyttämisen!kehittämistarpeet!pereh1 dyttämisestä!vastaavien!näkökulmasta!! Case:!Keski1Suomen!sairaanhoitopiiri!!!!

Transkriptio:

Tehokas siirtyminen järjestelmän kehityksestä ylläpitoon Joni Huttunen Opinnäytetyö Joulukuu 2017 Tekniikan ja liikenteen ala Insinööri (AMK), Ohjelmistotekniikka

Kuvailulehti Tekijä(t) Huttunen Joni Julkaisun laji Opinnäytetyö, AMK Sivumäärä 23 Työn nimi Tehokas siirtyminen järjestelmän kehityksestä ylläpitoon Päivämäärä 12 2017 Julkaisun kieli Suomi Verkkojulkaisulupa myönnetty: x Tutkinto-ohjelma Ohjelmistotekniikan koulutusohjelma Työn ohjaaja(t) Mieskolainen, Matti Toimeksiantaja(t) Buildercom Oy Tiivistelmä Tavoitteena oli siirtyä mahdollisimman tehokkaasti järjestelmän kehityksestä ylläpitoon. Yksi työnantajan ohjelmistojen osa-alueista oli jäämässä aktiivisesta kehityksestä pois, ja se oltiin siirtämässä ylläpitomoodiin, ja mahdollisimman tehokas siirtyminen oli suotavinta. Tutkimus itsessään tapahtui tutkimalla ja vertailemalla useita eri ohjelmistokehitysmalleja keskenään. Sen jälkeen tutkittiin kehitysmallien soveltuvuutta käyttötarkoitukseen. Käytettävät resurssit kehitystiimissä ja työ tehtävien vaihtuminen ja muuttuminen olivat hyvin tärkeitä tekijöitä päättäessä sopivimmasta kehitysmallista, joten näiden selvitys oli myös olennaista. Tutkimuksen tuloksena kävi ilmi, että ketterät kehitystavat olivat kaikista parhaita kun järjestelmää oltiin siirtämässä tai kun se oli jo siirretty ylläpitoon. Tärkeintä oli tietää työn tehtävien laatu kehitystiimissä. Eli kuinka paljon tehtävien prioriteetti vaihtelee tai tuleeko sykleistä ongelmia. Tehokkuuden parantamiseksi myös oli hyvä käydä lävitse palaverien tarve. Jos kehitystapa muuttuu niin ei välttämättä ollut tarvetta pitää kaikkia palavereja. Tällöin saadaan tuottavuutta tehokkaammaksi, kun kehittäjät saavat kehittää. Kehitystavoista sopivin järjestelmän ylläpitoon siirtoon oli Scrumban. Tämän avulla saatiin Scrumin ja Kanbanin hyödyt käytettyä. Oli joustavuutta työtehtävien otossa, ja työtehtävien prioriteetti eli omaa elämäänsä työjonossa. Täten aina tärkein tehtävä tuli seuraavaksi työn alle. Scrum taas piti sisällään osa tarvittavista palavereista, joilla pystyttiin seurata ohjelmiston ylläpitoa. Avainsanat (asiasanat) Tehokkuus, ylläpito, siirtyminen, ohjelmistokehitysmallit Muut tiedot

Description Author(s) Huttunen, Joni Type of publication Bachelor s thesis Number of pages 23 Date 12 2017 Title of publication Efficient transition from software development to software maintenance Language of publication: Finnish Permission for web publication: x Degree programme Software Engineering Supervisor(s) Mieskolainen, Matti Assigned by Buildercom Oy Abstract The goal was an efficient transition from software development to software maintenance. One part of the assigner s software was to be left out from active development and put into maintenance mode. Thus, the most efficient way for this was the most suitable solution. The research was carried out with studying and comparing different software development models. Afterwards, the research focused on how well the development methods would meet the requirements. The available resources for the development team and the aspect of change on the work items were very important, therefore figuring out these things was most relevant. During the research it was found out that agile development methods were the best suitable for systems in the transition to maintenance mode or for the systems already in the maintenance mode. The main aspect for an efficient transition to maintenance mode were the aspects of the work items, i.e. if the items description or priority was ever changing or were there possibilities that the development cycles could cause problems with. To increase efficiency it was decided to also go through the existing meetings. If the development method changed, there would be a possibility not all off the meetings were necessary. Thus, efficiency can be increased when unnecessary meetings are removed. It was discovered that Scrumban was the best solution for the transition of software to maintenance mode since, it gives free hands for the development team and allows priority items to get straight onto the work bench. Keywords/tags (subjects) efficient, transitions, maintenance, software development models Miscellaneous

1 Sisältö Sanasto... 3 1 Työn lähtökohdat... 4 1.1 Tausta ja tehtävä... 4 1.2 Toimeksiantaja... 5 2 Ohjelmiston ylläpito... 6 2.1 Mitä ohjelmiston ylläpito on... 6 2.2 Ylläpidon eri lajit... 6 3 Ohjelmistokehitysmallit... 7 3.1 Vesiputousmalli... 7 3.2 Inkrementaalinen malli... 9 3.3 Scrum... 11 3.4 Kanban... 13 3.5 Scrumban... 15 3.6 Prototyyppi... 17 4 Työn toteutus... 18 5 Tutkimustulokset ja johtopäätökset... 20 6 Pohdinta... 21 Lähteet... 23 Kuviot Kuvio 1. Ylläpidolliset toimet suhteutettuna tyyppeihin. (Ohjelmiston ylläpito, 2017) 7 Kuvio 2. Kuvio vesiputousmallista. (Vesiputousmallin kuvio, 2017)... 8 Kuvio 3. Esimerkki inkrementaalisen mallin toiminnasta. (Esimerkki inkrementaalisesta mallista, 2017)... 10 Kuvio 4. Inkrementaalisen mallin elämän sykli. (Inkrementaalimalli, 2017)... 10 Kuvio 5. Scrum kehitysmalli. (Scrum-malli, 2017)... 12 Kuvio 6. Pelkistetty Kanban taulu. (Kanban taulu, 2017)... 14

2 Kuvio 7. Scrumban suunnittelumallit. (Scrumban suunnittelu ämpärit, 2017)... 15 Kuvio 8. Scrumban/kaban taulu. (Yksinkertaistettu Kanban taulu, 2017)... 16 Kuvio 9. Prototyyppi-mallin elinkaari.... 18

3 Sanasto Backlog Scrum-mallin termi, lista tehtäviä ja toiminnallisuuksia joista osa otetaan työn alle sprinttiin. Demo Demo tai demoamisella voidaan käsittää tuotteen tai jonkun toiminnallisuuden esittämistä asiakkaille tai asiakasvastaaville. HTML Ohjelmointi kieli, jota käytetään verkkosivujen luonnissa. Tulee lyhenteistä Hypertext Markup Language. Moduuli Tietty osa-alue, ohjelmiston osa voi olla moduuli. Ohjelmistokehitysmalli Tietty malli jonka mukaan ohjelmistoa kehitetään. PBI Yleisesti Scrum-mallissa käytetty termi, Product Backlog Item, eli yksittäinen tehtävä josta tulee jokin toiminnallisuus. SilverLight Microsoftin valmistama web-ohjelmointiympäristö. SilverLight voi myös olla selaimen liitännäinen. Sprint Backlog Scrum-mallin termi, lista tehtäviä jotka pitää tehdä sprintin aikana. Sprintti Scrum-mallin termi, tietty ajanjakso, joka toistuu niin kauan kuin Backlogissa on tehtävää. Jokaisen sprintin jälkeen on tarkoitus saada uusi julkaistava kokonaisuus tuotteesta. Sykli Tietty kiertävä ajanjakso.

4 1 Työn lähtökohdat 1.1 Tausta ja tehtävä Tehokas siirtyminen järjestelmän kehityksen ylläpitoon. Kuinka se käytännössä tapahtuu, mitä kaikkea pitää ottaa huomioon, pitääkö soveltaa kehitysmalleja? Kaikki nämä ovat hyvin oleellisia kysymyksiä, kun halutaan siirtyä tehokkaasti järjestelmän kehityksestä ylläpitoon. Työn toimeksiantajana toimi Buildercom Oy. Heillä on verkkopalveluita, joista kehitetään kahta aluetta. Ensimmäistä kehitettiin Microsoftin SilverLight-kielellä ja toista kehitetään nykyään HTML kielellä. Koska SilverLight on kuolemassa oleva kieli, on tämän toisen puolen kehitys päätetty lakkauttaa ja siirtää se ylläpitomoodiin. SilverLight itsessään ei ole kuolemassa vaan, verkkoselaimien tuki kyseiselle komponentille on hiipumassa. Enää on vain muutama ja harva selain joka tukee SilverLight-komponenttia. Viimeisissäkin selaimissa, joissa sitä tuetaan, on tuki loppumassa kohta. Usein ei käyttäjä tiedä edes tuen loppumisesta, ennen kuin on liian myöhäistä. Tämän takia on hyvin tärkeää, että HTML-puolen kehitykseen sijoitetaan suurin osa resursseja ja loput, sijoitetaan SilverLight-puolen ylläpitoon. Tehokkaan siirtymisen tavoitteena on siirtyä käyttämään uutta kehitystapaa, mikäli nykyään käytetty toimintamalli ei ole ylläpitoon sopiva. Pitää tehdä monia päätöksiä eli päättää mikä on sopiva kehitystapa, miten ajanhallinnan kanssa tehdään, miten työjonossa pysyy tarpeeksi tekemistä ja mitä palavereja tullaan enää käyttämään. On hyvin tärkeää saada nämä kaikki selvitettyä, jotta voidaan keskittyä taas sisällön luontiin, korjaukseen ja ylläpitoon. Vaikka sovelluksen kehitys onkin ylläpitomoodissa, voi silti tulla tarpeita, jotka pitää saada tehtyä pikimmiten.

5 1.2 Toimeksiantaja Buildercom Oy on rakennetun ja rakennettavan ympäristön tiedonhallintaan keskittyvä yritys. Se tarjoaa laajat välineet kiinteistönhallintaan, rakennuttamiseen ja kiinteistönylläpidon helpottamiseen. Buildercom Oy:n BEM-tuote on tuorein tuote, joka tarjoaa juuri näitä ominaisuuksia. Kyseinen akronyymi juontaa juurensa sanoista Built Environment Management eli rakennetun ympäristön hallinta. Vuonna 2000 perustettu Buildercom Oy on erikoistunut kiinteistöjen ylläpidon ja rakentamisen tiedonhallintaratkaisuihin. Tarjoamme sekä yrityksille että julkisille yhteisöille SaaS-pohjaisia ohjelmistopalveluja toiminnan tehostamiseen. (Buildercom, 2017) BEM:iin kuuluu laajoja kokonaisuuksia moduuleja joista asiakas voi kasata omanlaisensa hallintatyökalut. Näihin kuuluvat muun muassa työmaapäiväkirja, tarkastusasiakirja, erikoisurakkatoiminnot, sähköinen kilpailutus, dokumenttirekisterit, dokumenttien hallinta, automaattikopiotilaukset ja niin edelleen. Päätehtävämme on auttaa asiakkaitamme kehittämään kiinteistöja rakennusalan liiketoimintaansa tehokkaammaksi ja kannattavammaksi informaatioteknologian keinoin. Palvelujemme avulla asiakkaamme saavuttavat merkittäviä kustannussäästöjä sekä rakennusprojekteissa että kiinteistöjen hallinnassa. (Buildercom,2017) Buildercom Oy:llä on myös muitakin tuotteita kuin BEM, esimerkiksi FacilityInfo ja ProjectInfo. Molemmat näistä ovat saman kaltaisia kuin BEM, mutta niissä on omat varianttinsa, ja ne ovat vanhentuneita tuotteita, jotka eivät välttämättä kata nykyajan asiakkaiden tarpeita.

6 2 Ohjelmiston ylläpito 2.1 Mitä ohjelmiston ylläpito on Mitä ohjelmiston ylläpito on ja miksi sitä tehdään? Olisikohan helpompaa, jos ohjelmiston jättäisi omaan rauhaan. Vaikka kehittäjistä tuntuisi siltä, että ohjelmiston voi jättää omaan rauhaan pyörimään ja kehittäjät voisivat jatkaa seuraavaan projektiin, he ovat väärässä. Ohjelmistoa on välttämätöntä pitää edes jonkin tasoisessa ylläpidossa. Ohjelmiston ylläpidolla tarkoitetaan toimivuuden ja luotettavuuden takaamista. Jotta toimivuutta ja luotettavuutta voidaan ylläpitää, tarvitsee olla niitä tukevia toimenpiteitä. Ajatellaan asiaa vaikka tietoturvan kannalta. Tulee uusia uhkia, jotka mahdollisesti vaarantavat nykyisenä olevan tuotteen turvallisuuden tai asiakkaan datan. Toteutus vaatii siis korjaavia toimenpiteitä, ja täten taataan luotettavuus. Toimivuus voidaan käsittää vaikka selaimien tukena. On hyvin mahdollista, että tulevaisuudessa jokin käytettävä komponentti ei enää ole tuettuna kaikissa selaimissa. Tällöin joudutaan tehdä toimivuutta takaavia korjaustoimenpiteitä. Kun ohjelmisto saapuu elinkaarensa päähän tai sen kehitys muuten loppuu se pitää asettaa ylläpitoon. Tällöin pitää miettiä, miten ylläpitoa suoritetaan. Tuskin on mahdollista jatkaa käyttämällä samaa toteutusmetodia, jota aiemmin käytettiin, sillä muuten menee resursseja huomattavasti hukkaan. Ei myöskään ylläpidossa tarvitse läheskään niin paljoa resursseja kuin ohjelmiston kehitysvaiheessa. Ohjelmiston ylläpidossa on siis hyvin todennäköistä, että kehitysmuoto vaihtuu. On tärkeää osata löytää oikea kehitysmuoto, joka tukee tarpeita mahdollisimman paljon. 2.2 Ylläpidon eri lajit Ohjelmiston ylläpito voidaan jakaa neljään eri osa-alueeseen. Adaptiivinen ylläpito Toteutetaan muokkaavia toimenpiteitä jotka vaikuttavat esimerkiksi alustaan, jolla ohjelmistoa ajetaan.

7 Perfektiivinen ylläpito Toteutetaan funktionaalisia parannuksia ohjelmistoon tai muuten hiotaan ohjelmistoa entistä parempaan kuntoon. Tämä voi kattaa sisällään optimointeja ja korjauksia logiikkaan. Korjaava ylläpito Suorat korjaukset toteutukseen, jotka ovat saattaneet mennä rikki ajan myötä tai uuden toiminnon tullessa. Ehkäisevä ylläpito Korjaukset, jotka takaavat ohjelmiston toimivuutta myös tulevaisuudessa ja estää ongelmien esiintymistä. Esimerkiksi käytettävien kirjastojen päivitykset uusimpiin versioihin. (Ohjelmiston ylläpito, 2017) Suurin osa, jopa 75% ylläpidollisista töistä kulutetaan adaptiiviseen ja perfektiiviseen ylläpitoon. (ks. Kuvio 1.) Ylläpitotyyppien käyttö 21% 4% 37,50% 37,50% Adaptiivinen Perfektiivinen Korjaava Ehkäisevä Kuvio 1. Ylläpidolliset toimet suhteutettuna tyyppeihin. (Ohjelmiston ylläpito, 2017) 3 Ohjelmistokehitysmallit 3.1 Vesiputousmalli Vesiputousmalli (ks. Kuvio 2) on yksi ensimmäisistä ohjelmmistokehitysmalleista. Sitä voidaan kutsua myös lineaariseksi elämänsyklimalliksi. Sitä on hyvin helppo ymmärtää ja käyttää. Kun yksi vaihe on täysin toteutettu, voidaan vasta silloin siirtyä seuraavaan vaiheeseen.

8 Jokaisen vaiheen jälkeen järjestetään katselmointi, jolloin tarkastetaan edellisen vaiheen toteutukset ja todetaan, miten toteutuminen on tapahtunut. Samalla voidaan päättää, jatketaanko projektia vai ei. (Vesiputousmalli, n.d.) Kuvio 2. Kuvio vesiputousmallista. (Vesiputousmallin kuvio, 2017) Vesiputousmallin ensimmäinen vaihe on vaatimusten kerääminen ja analysointi. Tämä kattaa asiakkaan kanssa tapaamiset ja vaatimusten selvitykset. Toisena on järjestelmän suunnittelu, kolmantena itse toteutus, neljäntenä testaus, viidentenä tuotteen julkaisu tai käyttöönotto ja kuudentena tuotteen ylläpitoon asettaminen. Kuvassa näkyvässä (ks Kuvio 2.) ei ole mukana tuotteen julkaisu, mutta testaamisen jälkeinen vaihe voidaan käsittää ylläpitoon siirron julkaisuna. Vesiputousmallin etuina on sen yksinkertaisuus ja helppo ymmärrettävyys. Sitä on helppo hallita, koska malli on pysyvä ja se ei muutu. Jokaisella vaiheella on omat tavoitteensa, ja jokaisen vaiheen jälkeen katselmoidaan saavutuksia ja itse projektia.

Tässä mallissa mikään vaihe ei mene toisen päälle. Eli vain yksi vaihe voi olla työn alla yhtenä hetkenä. 9 Huonoa mallissa on, jos testausvaiheessa huomataan jotain korjattavaa, on hyvin hankala palata takaisin ja korjata ongelma, mikäli toteutusta ei ole mietitty tarpeeksi tarkasti. Asiakkaalle tulee korkea riski ja epävarmuus, sillä tuotteen he saavat käsiinsä vasta myöhään kehitysmallissa. Malli ei myöskään sovi sellaisille projekteille, joissa on korkea epävarmuus ja mahdollisuus, että jokin osa-alue tulee muuttumaan. (Vesiputousmalli, n.d.) Vesiputousmallia kannattaa käyttää silloin, kun vaatimukset ovat selvät. Mallia ei kannata myöskään käyttää, jos projekti on kovin suuri. Silloin on hyvin mahdollista, että kaikki vaatimukset eivät olleetkaan tulleet selväksi ja silloin suunnittelun on täytynyt olla todella kattavaa, jotta saadaan toimiva kokonaisuus. Myöskin asiakkaalle tulee suuri riski, kun he odottavat pitkään, että saisivat edes nähdä, tuleeko tuotteesta heidän haluamansa. (Vesiputousmalli, n.d.) 3.2 Inkrementaalinen malli Inkrementaalinen malli kuuluu useamman kehityssyklin ryhmään. Se on kuin kasa pieniä vesiputousmalleja. Se jaetaan useisiin osiin, sykleihin, ja jokaisen syklin jälkeen tulee toimiva tuotos, jota voidaan esittää asiakkaalle. Syklit jaetaan pienempiin helpommin hallittaviin moduleihin. Tässä mallissa jokaisella modulilla on omat vaatimuksensa, suunnitelmansa, toteutuksensa ja teustaksensa. Toimiva versio saadaan aikaseksi jo ensimmäisen modulin valmistuttua. Tämä on hyvä asiakkaan kannalta, koska he saavat heti nähdä tuotteensa. Jokainen peräkkäinen modulin valmistuminen lisää toiminnallisuutta edeltävään moduliin verrattuna, kunnes koko projekti valmistuu.

10 Kuviossa 3 havainnollistetaan hyvin, mitä jokainen moduuli kuvastaa. Ensiksi luodaan yksi toimiva kokonaisuus, tässä tapauksessa Mona Lisan pää, ja seuraavissa moduuleissa luodaan loput hänen osistaan. Kuvio 3. Esimerkki inkrementaalisen mallin toiminnasta. (Esimerkki inkrementaalisesta mallista, 2017) Inkrementaalisessa mallissa toteutetaan samaa kaavaa N kertaa, N:n ollessa syklien määrä, eli niin kauan kuin toteutettavia moduuleita riittää. Jokaisella kerralla suunnitellaan moduuli, toteutetaan ja testataan. Kuvio 4. Inkrementaalisen mallin elämän sykli. (Inkrementaalimalli, 2017)

11 Mallin hyvinä puolina on heti aikaisessa kehitysvaiheessa tuleva tuotos. Asiakas saa heti ensikuvan tuotteesta. Inkrementaalisen mallin hyvänä puolena on myös muutoksiin sopeutuminen. Mikäli muutostarve ilmenee, se on mahdollista ottaa seuraavaan sykliin mukaan. Mallissa on myös helpompi suunnitella, testata ja toteuttaa, koska projekti on osioitu pienempiin osa-alueisiin. Huonoina puolina ovat vaativat suunnittelutarpeet ja täydellinen kuvaus tuotteesta, jotta se voidaan jakaa moduuleihin ja siten rakennettua inkrementaalisesti. Inkrementaalista mallia on hyvä käyttää silloin, kun kokonaisuus on hyvin tiedossa ja hyvin ymmärrettynä. Suurimmat vaatimukset on saatava selville, ja ne eivät saa muuttua, mutta pienempiä muutoksia on mahdollista tulla. (Inkrementaalinen malli, n.d.) 3.3 Scrum Yksi tämän hetken suosituimmista kehitysmalleista on Scrum (ks. kuvio 5). Se kuuluu ketteriin kehitystapoihin, joka tarkoittaa lähinnä kykyä mukautua muutoksiin. Scrum on myös inkrementaalinen kehitystapa, joten toimiva tuote saadaan aikaiseksi jokaisen kehityssyklin jälkeen.

12 Kuvio 5. Scrum kehitysmalli. (Scrum-malli, 2017) Scrum-malliin kuuluvat Product Owner, Scrum Master ja Development Team. Product Owner eli tehtävien asioiden omistaja järjestää Sprint Backlogissa olevat tehtävät tärkeysjärjestykseen ja selvittää asiakkaalta vaatimukset tehtäville. Scrum Master palvelee kehitystiimiä ja ohjastaa heitä. Scrum Masteria voi kuvata myös lammaskoiraksi. Hän puolustaa kehitystiimiä ylimääräisiltä tehtäviltä ja auttaa tarvittaessa, mikäli jotain epäselvyyksiä ilmenee. Tämä edesauttaa kehitystiimin toteuttamistahtia. Hän myös pitää yllä Scrumin periaatteita ja järjestää Scrum-malliin kuuluvat tapaamiset. (Urasilta, 2017) Development Team on itse kehitystiimi, joka toteuttaa PBI:t. Kehitystiimi myös itse testaa toteutuneet toiminnallisuudet. Scrum Master ja Product Owner voivat myös olla kehitystiimin jäseniä. Scrum malli keskittyy normaalisti kahden 2-4 sykleihin eli sprintteihin, jolloin jokaisen sprintin jälkeen saadaan toimiva tuotos. Ennen jokaista sprinttiä tapahtuu Sprint Planning eli tulevan sprintin suunnittelu. Siinä käydään lävitse seuraavaksi toteutettavat PBI:t eli Product Backlog Itemit. Nämä kyseiset PBI:t jaetaan omiin tehtäviinsä, joita tiimiläiset voivat ryhtyä tekemään. Sprinttien välissä, riippuen sprintin pituudesta, käydään Product Backlog Refinement palaveri. Eli käytännössä koko Scrum Tiimin kesken käydään lävitse uudet tehtävät backlogissa. Tällöin myös keskustellaan kyseisistä tehtävistä ja annetaan niille effortti, eli kuinka paljon työtä se vaatii. Myös epäselvyydet selvitetään samalla, joihin Product Owner on antamassa selvyyttä. Joka päivä pidetään Daily Scrum, jossa kerrotaan Scrum-tiimin kesken, mitä teki eilen, mitä tekee tänään ja onko jotain ongelmia. Tämä tuo läpinäkyvyyttä kehitykseen ja on hyvin helppo tietää, missä ollaan menossa ja onko jotain vialla. Tämä kestää maksimissaan 15 minuuttia. Sprintin jälkeen pidetään Sprint Review ja Sprint Retrospective. Tarkoituksena on käydä lävitse, mitä kaikkea tehtiin viime sprintissä. Menikö joku huonommin kuin olisi pitänyt, eikö jotain saatu tehtyä, miksi, mitä voitaisiin parantaa verrattuna seuraavaan sprinttiin ja niin edelleen. Sprint Reviewiin sisältyy myös toteutetun tuotteen esittäminen eli niin sanottu demo tilaisuus.

13 Scrum mallia on hyvä käyttää, jos halutaan mukautuvuutta mahdollisiin muutoksiin ja halutaan nopea kehityssykli, että saadaan nopeasta uutta toiminnallisuutta julkistettua. Malli takaa myös läpinäkyvyyden, eli nähdään selvästi, missä on menossa ja mitä on saatu aikaiseksi. Tämä takaa myös sen, että asian omistajat näkevät myös, mitä on saatu aikaiseksi ja he osaavat heti sanoa jos jotain pitää muuttaa. Huonona puolena Scrum-mallissa on, jos iso kokonaisuus tulee toteutettavaksi. On hyvin hankala pilkkoa tehtävät oikeisiin kokoihin. Jos asiakasvastaava ei ole tarpeeksi perillä asiakkaan tarpeista on hyvin mahdollista, että projekti vyöryy väärään suuntaan. Yleisesti Scrum-mallia on hyvä käyttää, jos projekti ei ole järin suuri ja on suuri mahdollisuus, että vaatimukset muuttuvat. Myöskin jos on tarve saada toiminnallisuuksia mahdollisiman lyhyin väliajoin julkistettua, on Scrum malli siihen täysin sopiva. 3.4 Kanban Kanban on työn virtauksen visualisointiin kehitetty metodi. Se perustuu Lean valmistusmetodiin, joka pohjautuu Toyotan valmistusjärjestelmästä. Pääideana Kaban-mallille on sen selvyys, kapasiteetin selvitys tarpeen nähden ja pullonkaulojen huomiointi. Mallille ominaista on myös veto -ominaisuus. Tiimin jäsenet vetävät itselleen lisää työtä, kunhan kapasiteetti sen sallii. Näin saadan vältettyä pullonkauloja, toisin kuin jos työtaakkaa vain työnnetään tiimille. Kanban itsessään ei ole ohjelmistokehitysmalli vaan enneminkin kehikko ohjelmistokehitykselle. (Kanban, 2017) Kanban taulu on oleellisin työkalu kabania käyttäessä. Se on hyvin helppolukuinen ja yksinkertainen. Tässä esimerkissä (Kuvio 6.) on kolme tilaa, To Do eli tekemättä, Doing eli tekemässä ja Done eli tehty. Jokainen yksittäinen neliö on yksi tehtävä, jotka on lajiteltu tilan mukaan. Kyseistä mallia voidaan vielä muokata niin, että saadaan horisontaalit viivat tilojen väliin. Tällöin voidaan jakaa tehtävät oman featurensa mukaan, eli vaikkapa yhden moduulin tai kokonaisuuden mukaan.

14 Kuvio 6. Pelkistetty Kanban taulu. (Kanban taulu, 2017) Esimerkkinä jos on tarkoitus tehdä moduli X, siihen luotaisiin tehtäviksi, eli neliöiksi, vaikkapa kantatoteutus, UI, testaus ja automaatiotestaus. Jokainen näistä on siis oma tehtävänsä, ja tiimiläiset saavat vapaasti ottaa tehtäviä työn alle, pitäen tietenkin mielessään oman kapasiteettinsa. Kanban taulusta on monia eri versioita. Kuvio 6. on yksinkertaisin versio, mutta on myös normaalia, että kolumneja on useampia. Kolumneja voi esimerkiksi olla työtehtävät, joita ei ole otettu vielä edes työn alle tai vaikkapa julkaistu kolumni, eli milloin itse tehty työ on julkaistu tuotantoon. Kanban runko on hyvä esimerkiksi ylläpitoprojekteissa. Kun uusia tehtäviä ilmenee, ne on helppo vetää työn alle ja pullonkaulat tulevat helposti selväksi. Isoille ja laajoille projekteille Kanban ei anna juurikaan tukea. Sellaisilla projekteilla pitäisi olla, vaikka vesiputousmalli tai Scrum malli.

15 3.5 Scrumban Scrumban on Scrum-mallin ja Kanban rungon yhdistelmä. Se yhdistää molempien hyvät puolet, ja alunperin Scrumban oli suunniteltu Scrum mallista Kanbaniin siirtymiseen. Nykyään sitä käytetään hallintarunkona, jolloin kehitystiimi käyttää Scrumia kehitykseen ja Kanbania hallitaakseen työtehtävien valvontaa ja suoritusta. (Scrumban, 2017) Mallissa käytetään lyhyitä iteraatiota ja näin varmistetaan tiimin mukautuminen muutoksiin ja pystytään vaihtamaan suuntaa projektissa, mikäli tarve vaatii. Suunnittelua käytetään silloin, kun To Do eli tekemättä-osiossa olevat tehtävät alkavat loppumaan, jolloin on hyvä suunnitella uusia tehtäviä. Työtehtävät myös priorisoidaan samalla, kun suunnittelu käydään lävitse. Kuvio 7. Scrumban suunnittelumallit. (Scrumban suunnittelu ämpärit, 2017) Scrumbanissa on mahdollista sitoutua myös pitkäaikaisesti, jolloin käytetään suunnitteluämpärimetodia. Työtehtävien pitää mennä näiden kaikkien ämpäreiden lävitse, ennen kuin ne pääsevät itse työpöydälle. Näitä kolmea vaihetta kutsutaan 1 vuoden, 6 kuukauden ja 3 kuukauden ämpäreiksi. 1 vuoden ämpäri on tarkoitettu pitkäaikaisille tavoitteille, joita yrityksellä on, esimerkiksi uuden markkinaosuuden saaminen tai uuden tuotteen julkaisu. Kun yritys päättää jatkaa eteenpäin suunnitelman kanssa se siirtyy 6 kuukauden ämpäriin, jossa päävaatimukset

16 selvitetään. Kun tämä on toteutunut ja suunnitelmaa jatketaan, se siirtyy 3 kuukauden ämpäriin jossa vaatimuksien pohjalta luodaan itse työtehtävät. Tässä vaiheessa työtehtävien on oltava niin selviä, että kehitystiimi voi alkaa niitä työstämään. Tästä ämpäristä kehitystiimi ottaa työtehtäviä työn alle, kun uutta tehtävää tarvitaan. (Scrumban, 2017) Mallissa käytetään hyvin samanlaista työnhallintatyökalua kuin Kanbanissa (ks. kuvio 8), eli itse Kanban taulua. Tässä on kolme kolumia, jotka ovat To Do eli tekemättä, Doing eli tekemässä ja Done eli tehty. Kyseisestä taulusta näkee heti yhdellä silmäyksellä, missä ollaan menossa tämän hetkisessä syklissä. Kun joku kehitystiimistä kaipaa tekemistä,hän ottaa To Do-tilassa olevan tehtävän ja siirtää sen Doing-kolumnin kohdalle. Kuvio 8. Scrumban/kaban taulu. (Yksinkertaistettu Kanban taulu, 2017) Jotta saadaan tehokkuus säilymään, voidaan asettaa muutamia rajoituksia. Voidaan asettaa raja, kuinka monta tehtävää saa per henkilö olla. Yleisesti yksi tehtävä per henkilö Doing-kolumnissa on hyvä raja. Joissain työkaluissa tämän voi suoraan asettaa rajoitukseksi, jolloin uutta tehtävää ei voi ottaa työn alle, ennen kuin aikaisempi tehtävä on Done-kolumnissa.

17 Myös To Do-kolumniin voidaan asettaa rajoitus, jotta saadaan tehokkaimmat suunnitelmat tehtyä. Jos To Do-kolumnissa on suuri määrä tehtäviä, niiden suunnittelu on raskasta. Scrumban sopii projekteille, joissa saattaa esiintyä muutoksia, tai projekteille jotka ovat ylläpidossa. Myös mahdolliset suuremmat projektit, noin vuoden mittaiset, onnistuvat Scrumban mallilla. 3.6 Prototyyppi Prototyyppi-mallin ideana on antaa asiakkaalle heti ensikäteen hyvä kuva heidän haluamastaan tuotteesta. Käytännössä luodaan ensimmäinen, kevyt versio tuotteesta jolloin asiakkaat näkevät onko tuote heidän haluamaansa suuntaan. Tämän nähtyään asiakkaat voivat tarkentaa vaatimuksiaan ja tavoitteitaan. Prototyyppi muodostetaan ennen kuin mitään koodausta tai suunnitelmaa aletaan valmistamaan. Prototyyppi luodaan sen takia, jotta voidaan paremmin ymmärtää asiakkaan vaatimukset. Tämän avulla tarkastetaan myös ymmärtävätkö kehittäjät tai asiakasrajapinta millaista tuotetta asiakkaat haluavat. Ensimmäinen versio luodaan alustavien tietojen mukaan, jotka on saatu asiakkaalta. Malli on hyvin varteenotettava idea, jos aiotaan kehittää isoa tai monimutkaista järjestelmää. Prototyypissä ei ole syvempiä toiminnallisuuksia vaan se on vain pintaraapaisu, jossa on perus toiminnallisuudet. (Prototyyppi, N.d.) Kun alustavat vaatimukset ovat saatu kasaan on nopean suunnittelun ja prototyypin rakennuksen aika. Kun ensimmäinen versio on saatu aikaiseksi demotaan se asiakkaalla ja saadaan ensimmäiset kommentit tuotteesta. (ks Kuvio 9.) Tämän jälkeen voidaan hioa prototyyppiä ja jatkaa taasen suunnitteluun ja prototyypin rakennukseen. Kun prototyyppeihin ollaan tyytyväisiä, siirtyy tuote itse kehitys vaiheeseen. (Prototyyppi-malli, 2005)

18 Kuvio 9. Prototyyppi-mallin elinkaari. Mallin suurena hyötynä on jatkuva asiakaspalaute. Asiakkaat ovat aktiivisesti mukana kehityksessä, he saavat myös koko ajan uuden kuvan minkälaiseksi tuote on muodostumassa. Virheet on mahdollista huomata ja korjata hyvin nopeasti ja palautteen saaminen on myös nopeaa. (Prototyyppi, N.d.) Jatkuvasta demoamisesta johtuen tuote voi paisua vaatimusten ylitse ja tuotteesta voikin tulla monimutkaisempi ja laajempi mitä alussa suunniteltiin. Keskeneräinen tuote voi antaa myös väärää kuvaa asiakkaalle, jolloin heidän kanssa pitää olla tiiviisti tekemisissä. Tämä on hyvin hankalaa jos ketään asiakkaista tai asiakasvastaavista ei pääse paikalle katselmointiin. (Prototyyppi, N.d.) Tyypillisesti internetissä olevat järjestelmät, jotka ovat paljon käyttäjien käsittelyssä ovat sopivia kehitettäväksi prototyyppi-mallilla. Näin saadaan mahdollisimman käyttäjä ystävällinen käyttöliittymä, jota on helppo käyttää kun asiakkaat ovat arvioimassa kehityksessä olevaa tuotetta. (Prototyyppi, N.d.) 4 Työn toteutus Tutkimusta suorittaessa toimeksiantaja hyväksyi työn suorittamisen työajalla, sillä sen tekeminen oli hyödyllistä toimeksiantajalle, ja aihe oli ajankohtainen. Työlle oli varattu viikossa yksi työpäivä, jolloin tutkimustyötä pystyi edistämään. Tutkimustyön kesto oli noin 2 kuukautta. Joka perjantai oli sovittu status palaveri, jossa kävimme työnantajan kanssa lävitse mitä kuluvan viikon aikana on tutkittu. Keskustelimme havainnoista ja tuloksista mitä oltiin saatu siihen mennessä ja täsmennettiin tarvittaessa, että mitä voisi tutkia seuraavaksi.

19 Opinnäytetyön aikana tutkittiin eri ohjelmistokehitysmalleja internetissä ja niiden soveltuvuutta vertailtiin käyttötarkoitukseen, eli ylläpitoon. Suoraan sanottuna kahlattiin läpi todella monia kehitystapoja ja vertailtiin niitä keskenään ja kirjattiin ylös niiden piirteitä. Kehitysmallin oli oltava sopiva, jos ohjelmisto on ylläpitomoodissa tai kun ohjelmisto on menossa ylläpitomoodiin. Lähinnä kerättiin listaa eri ohjelmistokehitysmalleista, sekä niiden hyvistä ja huonoista puolista. Status palavereissa kerrottiin työnantajalle tutkituista malleista sekä oman mielipiteen niiden soveltuvuudesta. Ohjelmistokehitysmalleja tutkittiin, onko se kuinka ketterä, jos tulee esimerkiksi kiireinen tehtävä ja se pitäisi heti ensimmäiseksi korjata. Ketteryys asetettiin suurelle painoarvolle ohjelmistokehitysmallia päätettäessä. Toinen tärkeä kriteeri oli toiminnan seuranta ja käytettävät palaverit tai rutiinit. Oli oltava joku tapa, jolla pystytään seurata kehitystä ja tehtävien tekoa. Status palavereissa todettiin, että kehitystavan on oltava ketterää muotoa, jotta saadaan mahdollisimman suuri hyöty irti. SilverLightin ollessa ylläpidossa, ei backlog itemejä tule enään läheskään tasaiseen tahtiin. Kun tehtäviä ei tule tasaisesti ja jos suuren prioriteetin tehtävä tulee yllättäen, on joustavuutta pakko olla. Tutkimustyötä jatkui niin kauan kunnes löytyi sopiva ohjelmistokehitysmalli tarkoitukseen. Scrumban löytyi ennen pitkää ja se vaikutti olevan lähes täydellinen käyttötarkoitukseemme. Malli esiteltiin työnantajalle, jolloin keskustelimme sen soveltuvuudesta ja toimivuudesta. Kun työnantaja saatiin vakuutettua mallin toimivuudesta, suljettiin tutkimus osuus ja aloitimme uuden mallin käyttöönoton. Kun tutkimustyö oli valmis, alkoi itse ohjelmiston siirtäminen ylläpitoon. Tämä tarkoitti käytännössä uuden kehitysmallin käyttöönottoa ja palaverien päättämistä. Vain tarpeellisiksi koetut palaverit jätettiin käyttöön. Itse ylläpitoon siirtyminen oli nopea prosessi, kun taustalla oli kaikki tieto mitä tutkimuksessa saatiin. Otimme Scrumbanin käyttöön melkeimpä heti kun olimme päättäneet sen soveltuvan käyttötarkoitukseen. Palavereja karsittiin suhteellisen runsaalla kädellä ja se edesauttaa tehokkuutta, jos ei ole turhia palavereja aikaa viemässä. Jäljelle jäivät Scrum-mallista tutut joka päivä oleva daily scrum ja syklien välillä oleva sprint review. Näillä saadaan maksimoitua

20 tehokkuus ja saadaan seurattua kehitystä. Daily scrumilla saadaan joka päivä tietää tilanne tehtävien kanssa ja sprint reviewissä voimme tarkastaa, onko mitään parannettavaa tai muuta huomioitavaa. Sprint Review on muutenkin avoin palaveri jossa voidaan kertoa omista mielipiteistä sprinttiin liittyen ja voidaan kertoa myöskin kehitysideoita. Siirtyminen Scrumista Scrumbaniin oli todella helppoa koska ne ovat niin samanlaisia ja kaikki seikat oli selvitetty etukäteen. Kun palaverit oli sovittu, esiteltiin uusi käytäntö kehitysryhmän jäsenille ja otettiin uusi ohjelmistokehitysmalli käyttöön. Siirtyminen uuteen malliin oli nopeaa ja tehokasta kun tiesimme mitä halusimme mallilta ja kun kaikki tarvittavat palaverit oli jo valmiiksi päätettynä. 5 Tutkimustulokset ja johtopäätökset Sopivimman ohjelmistokehitysmallin löytämiseksi on mietittävä kehitystiimin tarpeet, resurssit ja tehtävien töiden mahdolliset muuttumiset. Tehtävien töiden vaatimusten tai prioriteetin muututtua on oltava mukautuva malli. Mikäli resurssitkin muuttuvat, on silloinkin hyvä olla mukautuvuutta. Kun kaikki nämä ottaa huomioon, on helpompaa päättää, minkä ohjelmistokehitysmallin ottaa käyttöön. Ketterät ohjelmistokehitysmallit näyttävät sopivan parhaiten, kun järjestelmää ollaan siirtämässä tai se on jo siirretty ylläpitoon. Tällöin saadaan adaptiivisuutta, joka on hyvä tärkeiden tehtävien tullen, jotta kehitystiimi voi alkaa työstää niitä heti. Ketteristä ohjelmistokehitysmalleista Scrumban oli kaikista sopivin kun ohjelmisto on ylläpidossa tai kun sitä ollaan siirtämässä ylläpitoon. Scrumban antaa joustavuuden töiden lisäämisessä sprinttiin, ja samalla säilyttää kehityksen mittariston, eli Scrummallista tarvittavat ja sovitut käytänteet. Täten voidaan pitää yllä jatkuvaa kehitystä ja maksimoidaan kyky mukautua muutoksiin. Ylläpidollisen tyyppien kategorioissa noin 40% on ollut perfektiivistä ylläpitoa, noin 30% korjaavaa ylläpitoa ja loput 30% jakautuvat tasaisesti adaptiivisen ja ehkäisevän ylläpidon kanssa. Tämä hieman eroaa yleisestä suhteesta, koska korjattavia tehtäviä on ollut työjonossa suhteellisen paljon. Myös uusia tehtäviä on tullut vaikka osa-alue onkin ylläpito moodissa, mutta se on pyritty pitämään mahdollisimman pienenä.

21 Tutkimustyön ja raportin tekeminen työn ohjella oli haastavaa, mutta tutkimustyötä tehdessä oli suuri apu kun työtä sai tehdä työajalla. Muuten opinnäytetyön tekeminen työn ohella oli raskasta. Itse työn tulos oli hyvä, koska uusi kehitystapa on ollut hyvässä käytössä jo vuoden verran toimeksiantajalla. 6 Pohdinta Työn tarkoituksena oli siirtää ohjelmisto kehitysmoodista ylläpitoon mahdollisimman tehokkaasti. Tavoitteena oli siis tutkia, miten tämä tapahtuu ja mitä ohjelmistokehitysmallia käytetään. Tärkeää oli myös miettiä resursseja ja niiden käyttöä sekä mitä kaikkea toiminnoista kannattaa säilyttää, kun kehitys on päättynyt ja ohjelmisto on siirtynyt ylläpitoon. Tutkimus eteni käytännössä eri kehitysmetodeja ja kehitystapoja tutkimalla. Tämän aikana käytiin läpi useita eri kehitystapoja ja käytiin lävitse kaikki toiminnallisuudet, mitä missäkin kehitystavoissa oli. Näistä vain yleisimmät ja soveltuvimmat ovat kuvattuna luvussa 3. Tutkimus suoritettiin pääasiassa työpaikalla, sillä työn tarkoituksena oli saada toimiva kehitystapa, kun sovellus on ylläpidossa. Scrumban tyylinen ratkaisu on paras vaihtoehto ohjelmiston ylläpitoon. Kyseisellä metodilla voidaan ottaa lisää työtä kesken kehityssyklin, ja jos tulee jokin tärkeä asia, sen voi aina vetää työn alle ja jättää nykyinen työ odottamaan, että kiireisempi asia saadaan ensiksi pois alta. Scrumbanin avulla on helppo nähdä, mitä ollaan tekemässä ja missä ollaan menossa. Scrum-osio tuo tähän lisäapua, sillä voidaan joka päivä pitää päiväpalaveri, jossa voidaan selvittää, onko ongelmia ja missä kukakin on liikkeellä. Myös Scrumista tutut Review-palaverit ovat hyvä pitää. Näin saadaan hieman statistiikkaa, kuinka paljon tehtäviä on saatu tehtyä, ja mahdolliset ongelmakohdat tulevat selville. Samalla työjono voi elää omaan tahtiansa, eli tehtävien prioriteetti voi vaihdella. Tällöin aina tärkein tehtävä tulee heti seuraavaksi työn alle. Ei ole tarvetta odottaa keskeneräistä sykliä loppuvan, että sitä pääsee työstämään, niin kuin esimeriksi joutuisi tekemään, jos käytettäisiin pelkkää Scrum mallia.

22 Tehokkaassa siirtymisessä on hyvin tärkeää tietää resurssien määrät, työmäärät ja tarpeet. Näiden avulla on helpompi päättää, mikä ohjelmistokehitysmalli on juuri sopiva käyttötarkoitukseen. Jos työtä tulee tasaiseen tahtiin tai jos välillä sattuu tulemaan tärkeä tehtävä, voi sen ottaa saman tien työn alle, ja aina on tärkein tehtävä työn alla. Tärkeintä opinnäytetyössä oli itse työn suorittamen ja sen tulokset ja siinä onnistuttiin hyvin. Koen opinnäytetyön onnistuneeksi, sillä työnantaja on tyytyväinen tulokseen ja uutta ohjelmistokehitysmallia on käytetty jo vuoden ajan eikä vielä ole ilmentynyt ongelmia mallissa.

23 Lähteet Buildercom. 2017. Buildercom Oy:n kotisivut. Viitattu 9.11.2017. https://buildercom.fi/yritys/ Esimerkki inkrementaalisesta mallista. 2017. Kuva jota käytetty kokonaisuuden tekoon. Viitattu 9.11.2017. https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/mona_lisa%2c_by_ Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/687px- Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg Inkrementaalimalli. 2017. Kuva. Viitattu 9.11.2017. https://upload.wikimedia.org/wikipedia/commons/e/e4/incremental_model.jpg Inkrementaalinen malli. 2017. ISTQB Exam Certification verkkosivu. Viitattu 9.11.2017. http://istqbexamcertification.com/what-is-incremental-modeladvantages-disadvantages-and-when-to-use-it/ Kanban. 2017. Kanban ohjelmistokehityksen Wikipedia sivut. Viitattu 9.11.2017. https://en.wikipedia.org/wiki/kanban_(development) Kanban taulu. 2017. Kuva. Viitattu 9.11.2017. https://upload.wikimedia.org/wikipedia/commons/7/75/kanban-board.png Ohjelmiston ylläpito. 2017. Wikipedia artikkeli. Viitattu 9.11.2017. https://en.wikipedia.org/wiki/software_maintenance Prototyyppi. N.d. ISTQB Exam Certification verkkosivu. Viitattu 21.11.2017 http://istqbexamcertification.com/what-is-prototype-model-advantagesdisadvantages-and-when-to-use-it/ Prototyyppi-malli. 2005. Techtarget verkkosivu. Viitattu 21.11.2017. http://searchcio.techtarget.com/definition/prototyping-model Scrum-malli. 2017. Kuva. Viitattu 9.11.2017. https://upload.wikimedia.org/wikipedia/commons/d/df/scrum_framework.png Scrumban. 2017. Scrumban Wikipedia sivut. Viitattu 9.11.2017. https://en.wikipedia.org/wiki/scrumban Scrumban suunnittelu ämpärit. 2017. Kuva. Viitattu 9.11.2017. https://upload.wikimedia.org/wikipedia/commons/d/d0/bucket_size_planning.jpg Urasilta. 2017. Certified ScrumMaster kurssi. Jyväsklä. Viitattu 9.11.2017. Vesiputousmalli. N.d. ISTQB Exam Certification verkkosivu. Viitattu 9.11.2017. http://istqbexamcertification.com/what-is-waterfall-model-advantagesdisadvantages-and-when-to-use-it/ Vesiputousmallin kuvio. 2017. Kuva. Viitattu 9.11.2017. https://upload.wikimedia.org/wikipedia/commons/thumb/e/e2/waterfall_model.sv g/1280px-waterfall_model.svg.png Yksinkertaistettu Kanban taulu. 2017. Kuva. Viitattu 9.11.2017. https://upload.wikimedia.org/wikipedia/commons/d/d3/simple-kanban-board-.jpg