Erilaisia tapoja tehdä ohjelmistokehitystä eli miten luoda ketteryyttä ja ennakkosuunnittelua oikeisiin paikkoihin



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

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Onnistunut ohjelmistoprojekti

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

InnoPilotti -projekti

Testausoppeja toimialavaihdoksesta

Työ intohimona caseina testaus, käytettävyys ja riskienhallinta

Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Yhteistoiminnallisen humanoidirobotin sosiaalisia vaikutuksia työpaikalla

Viisaat hankinnat JIT2015 sopimusehdot

IT2015 EKT ERITYISEHTOJA OHJELMISTOJEN TOIMITUKSISTA KETTERIEN MENETELMIEN PROJEKTEILLA LUONNOS

Tuotekehitystyön erikoisammattitutkinto

Tekoälyn soveltamisen eettisiä periaatteita

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

Ketteryydestä muutamien esimerkkien kautta eli mitä voimme

Kansallinen palveluarkkitehtuuri Tilannekatsaus JUHTA O-P Rissanen

Strateginen ketteryys

JulkICT Lab ja Dataportaali Avoin data ja palvelukokeilut

Turvallisen sovelluskehityksen käsikirja. Antti Vähä-Sipilä, F-Secure

Ketterä vaatimustenhallinta

Serve Palveluliiketoiminnan edelläkävijöille

ProCoach -kehitysohjelmat

Järjestöt digitalisoituvassa yhteiskunnassa. Miten hyödyntää teknologian mahdollisuuksia

Mikä on avoimen tuotteen hallintamalli perustiedot ja taustoitus. Jukka Kääriäinen, Tapio Matinmikko, Raija Kuusela

Kuva median murroksesta: mistä kasvu ja työpaikat?

Luotain-arviointi. Nykytila-arvio toiminnan osa-alueesta. Trust, Quality & Progress. Jatkuvuus Tietosuoja Tietohallinto Tietoturvallisuus

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

JulkICTLab Eteneminen Mikael Vakkari, VM

MediaMark- ja NextMediahankkeiden

@Tampereen Testauspäivät ( )

KONTTI - Teolliset komponenttiohjelmistot Tekesin ETX-ohjelma

IT2015 EKT-ehtojen käyttö

Testauspalvelu laadunvarmistajana Arekin monitoimittajaympäristössä. Satu Koskinen Teknologiajohtaja, Arek Oy

Luja vuosi Rakennusalan haasteet tutkimuksen tulokset

TIIMITYÖSKENTELY ( pv )

HANKEHAUN TEEMAT JA SISÄLLÖT

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen

Rauma Marine Constructions Oy vastaa älykkään liikenteen haasteisiin. Jukka Vasama

Raitiotieallianssin riskienhallintamenettelyt

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

AVOIN KOODI YRITTÄJYYDEN LÄHTÖKOHTANA

Terveysliikuntapalveluiden tuotteistaminen. SHF-hankkeen loppuseminaari

CIE Center for Internet Excellence -

Tulevaisuuden asumisen Koklaamo

2. Ohjelmistotuotantoprosessi

Mitä prosessissa kehitetään. Prosessin kehittäminen. Kehittämisen tavoitteita. Perusasioita kehittämisessä. Pohjana esim. CMM

TUOTEMALLIN HYÖDYNTÄMINEN RAKENNUSLIIKKEESSÄ MIKA SOINI KEHITYSJOHTAJA NCC RAKENNUS OY

AIKO-hankelomake. Hankkeen toteuttaja:kymenlaakson ammattikorkeakoulu Kyamk Oy ( alkaen Xamk Oy)

Ideasta innovaatioksi. Panu Kuosmanen Aalto-yliopisto, Innovaatiopalvelut

Miten 333 organisaatiota voi kehittää yhtä yhteistä digitaalista palvelua ja vielä kuunnella kaikkien asiakkaita?

Mikkelin sähköisen asioinnin alusta - päätöksenteko. Kalle Launiala / ProtonIT Oy kalle.launiala@protonit.net

AVOIN LÄHDEKOODI JA SEN MERKITYS LIIKETOIMINNASSA

Toimiston näkökulma: Kuumat puheenaiheet, debattia mm. teknologioista sekä dataan ja toimintaketjun läpinäkyvyyteen liittyvistä asioista

Asiakasmarkkinoinnin määritelmä

FARAX johtamisstrategian räätälöinti

Fujitsu SPICE Lite. Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat. Copyright 2010 FUJITSU

Riskienhallinta sosiaali- ja terveydenhuollon toimintayksiköissä

Sähköisen perhekeskuksen skenaariot

Σ!3674. Advanced Test Automation for Complex Software-Intensive Systems

Lyhyt johdatus ketterään testaukseen

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

Avoimen ohjelmistotuotteen hallinta julkisella sektorilla. Jukka Kääriäinen VTT Oy , Oskari-verkostopäivä

Asiakassuhteen merkitys. Asiakassuhteen merkitys JÄRJESTELMÄKESKEINEN ASIAKASKESKEINEN

Suomen avoimien tietojärjestelmien keskus COSS ry

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt

Näkökulma tulevaisuuden erityisosaamiseen erikoissairaanhoidossa. Raija Nurminen Yliopettaja,Turun AMK

KULTTUURITUOTANNON YHTEYS MATKAILUUN

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

KOODAAKO PROJEKTIPÄÄLLIKKÖ?

Torstai Mikkeli

Tekesin rooli teollisuuden palveluliiketoiminnan uudistamisessa

Käyttövaltuushallinnan hyödyt tehokkaasti käyttöön. Johanna Lampikoski, RM5 Software Juha Arjonranta, TeliaSonera Finland

Omatietovaranto. Hyvinvointisovelluskriteerit (versio 3)

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Innovaatioilmaston muutostalkoot Inno-barometri Ruoholahti

Tuotemallipohjaisen toimintaprosessin mallintaminen

Digi Roadshow Tekes rahoitus. Aki Ylönen

SYSTEEMIJOHTAMINEN! Sami Lilja! itsmf Finland 2014! Oct ! Kalastajatorppa, Helsinki! Reaktor 2014

EUREFin vaikutukset organisaatioiden tietojärjestelmiin

Tietojärjestelmän osat

Ketterä analytiikka mitä se voisi olla käytännössä? Case Katedata Delta Motor Group

Ketterästä toiminnasta

Tulevaisuuden sairaala OYS 2030

Lean-implementaation tiekartta VSSHP:ssä Heikki Laurila Lean projektijohtaja VSSHP, Kehittämispalvelut

Inframallintamisen ohjeiden tulevaisuuden näkymät

työssäoppimispaikan työtehtävissä toimiminen ammattiosaamisen näytön suorittaminen näyttösuunnitelman mukaan Ammattitaidon osoittamistavat

AIKO Uudistuva Teollisuus. Oula Välipakka, Tredea Oy

NextMakers-kasvuyritysbarometri. Julkaistu Microsoft Fluxissa

Kansallinen ASPAtietojärjestelmä

Tietoturva- ja tietosuojariskien hallinta tietojärjestelmäkilpailutuksessa

SYL:n toiminnan suunnittelun ja kuvaamisen uudistaminen

PM Club Jyväskylä Jatkuva uudistuminen osaamista ja kokemusta jakamalla

Projektin taustaa. Ensin tehtiin ROADMAP

Kokemuksia eri projektityyppien haasteista/sudenkuopista toimittajayhteistyön näkökulmasta. Pekka

Transkriptio:

Matti Vuori Erilaisia tapoja tehdä ohjelmistokehitystä eli miten luoda ketteryyttä ja ennakkosuunnittelua oikeisiin paikkoihin Johdanto Kun esimerkiksi ohjelmistokehityksen projektimalleja kritisoidaan, unohtuu usein se, että on olemassa erilaisia tapoja tehdä asioita, joka erilaisuus riippuu tavoitteista. Sen sijaan ajatellaan, että on yksi paras tapa ja muut tavat ovat jotenkin vanhentuneita, epäkypsiä tai kehnoja.usein väitetään, että juuri Suomessa mahtuu asiaan kuin asiaan kerrallaan vain yksi totuus. Joskus voi ollakin niin, että on yksi ja yleinen paras tapa, mutta yleensä voi kyse olla vain erilaisen kontekstin erilaisista vaatimuksista ja mahdollisuuksista. Tässä paperissa tarkastellaan lyhyestä erilaisia tuote- ja ohjelmistokehityksen tilanteita ja niiden prosessien keskeisiä piirteitä sekä ennakkosuunnittelun ja ketteryyden ilmenemismuotoja. Tämä on tärkeää siksi, ettemme aseta toiminnalle sellaisia vaatimuksia, jotka ovat sille epärelevantteja, vaan osaamme antaa vaikkapa kuumien tiimien tai tutkijoiden tehdä työnsä sillä tavalla, joka on niissä paras ja tuloksellisin, emmekä tyrkytä niihin tilanteisiin vaikkapa jotain projekti- tai laadunvarmistusmalleja, jotka on suunniteltu teolliseen järjestelmäkehitystapaan. Ja toisinpäin on osattava kirkkaasti nähdä ne tilanteet, joissa tarvitaan prosessityötä ja kriittisten asioiden systematisointia. Niinpä, 2010-luvun menestystekijöitä eivät ole tasapäistäminen ja yhden koon ratkaisut, vaan esimerkiksi kontekstitietoisuus, tarkoituksenmukaisuus, kriittisten tekijöiden tunnistaminen ja erilaistamisen riskinotto. 1 (5)

Erilaisia tyyppitilanteita Esim. seuraavissa tyyppitilanteissa on tarve erilaisiin prosesseihin: Asiakaslähtöisiin vaatimuksiin perustuva projektitoimitus Esimerkiksi uniikin tietojärjestelmän kehittäminen organisaatiolle. Tarvitaan systemaattinen projektimalli. Keskeistä on hallinta ja varmistus "devil is in the details". Ennakkosuunniteltua: Projektimalli (ketteräkin sellainen on tiukan epäketterän ennakkosuunnittelun tulosta!), projektointi, laadunvarmistuksen malli, testausprosessi, riskienhallinta, katselmoinnit, asiakkaan tekemän hyväksynnän menettelyt, hyväksymistestauksen peruspiirteet. Ketterää: Testauksen sisällöt, vaatimusten iterointi tai ketterä kehittäminen, hyväksymistestauksen yksityiskohdat. Huom! Tässä ja kaikissa seuraavissa kohdissa eivät ennakkosuunniteltujen ja ketterien asioiden listat ole läheskään kattavia, vaan ainoastaan tilannetta ja toimintatyyliä visualisoivia. Vakiintuneen konseptin / alustan implementointi / räätälöintiprojekti Esimerkiksi tietyn toiminnanohjausjärjestelmä-alustan räätälöinti yritykseen. Tarvitaan systemaattinen projektimalli. Keskeistä on hallinta ja varmistus. Keskeistä on hallinta ja varmistus "devil is in the details". Ennakkosuunniteltua: Räätälöinnin teollinen toteutustapa alusta loppuun. Ketterää: Räätälöinnin ja integroinnin detaljit, integrointien testaus. Hienoa: Tehokas tehdasmaisuus tekee toiminnasta sujuvaa ja vähentää riskejä kunhan kohdetilanne on arvioitu oikein. Systemaattinen uuden tuotteen kehittäminen Esimerkiksi tunnistettujen markkinatarpeiden tai asiakasryhmän vaatimusten perusteella tehtävä tuotekehitys. Traditionaalinen tuotekehitysprosessi. Konseptivaiheen, suunnnittelun ja toteutuksen jatkumo, porttiajattelu. Ennakkosuunniteltua: Tuotekehitysprosessi. Ketterää: Prosessin yksittäiset menettelyt. Useimmiten varsinainen kehittäminen ei voi olla kovinkaan ketterää inkrementaalinen kehittäminen uusien versioiden kautta on eri asia. Innovaatiolähtöinen tuotekehitys Esimerkiksi tilanne, jossa uusia konsepteja kehitellään organisaation tutkimuskeskuksessa useita ja niistä poimitaan osa tuotteistukseen. Olennaista on innovaation kehittely innovaattorille / innnovaattoreille sopivalla tavalla. Tuotteistus ja paketointi on suoraviivaista, nopeaa ja tehokasta. Olennaista on oikean konseptin löytäminen ja sen muuttaminen innovaatioksi. Ennakkosuunniteltua: Tuotteistusprosessi ja sen yhteydessä tapahtuva testaus ja muu laadunvarmistus. Ketterää: Innovointiprosessi, innovoinnin yhteydessä tapahtuva testaus, proof of concept -testaus. 2 (5)

Pakolliset LVmenettelyt Kulttuuri Ratkaisuavaruuden laajuus Prosesseihin vaikuttavia asioita Pyrkimys riskien minimointiin Asiakassuhteen luonne Aktiviteetin paloittelu Ammattitaito ja ympäristön kypsyys Toimintamallin deterministisyys Kehittäjän läsnäolon jatkuvuus Tutkimuslähtöinen tuotekehitys Esimerkiksi valtiollinen tutkimuskeskus tekee teknologiatutkimusta ja tuotteistaa sen tuloksia. Olennaista on tutkimuksen tekeminen sen pelisäännöillä ja herkkyys sen tulosten hyödyntämismahdollisuuksille. Tuotteistus ja paketointi on suoraviivaista. Olennaista on oikean konseptin / teknologian löytäminen ja sen muuttaminen innovaatioksi. Ennakkosuunniteltua: Puitteet, keksintöjen käsittely ja tuotteistus. Ketterää: Tutkimustyö, proof of concept -testaus. Systemaattinen olemassaolevan tuotteen edelleen kehittäminen Esimerkiksi nettiselaimen jatkuva parantaminen vuosi vuodelta. Kilpailutilanteessa se voi olla luonteeltaan ketterää ja kiivasta. Tuotehallinnan, ylläpidon ja kehittämisen näkökulmat yhdistyvät ja painottuvat eri tavoilla. Proaktiivinen ja reaktiivinen kehittely, parantaminen, korjaus. Ennakkosuunniteltua: Ylläpitomalli, kehittämisen prosessi, suuntaa-antava roadmap, tuotteen eheyden ja regressioriskin hallinta (ml. regressiotestaus). Ketterää: Mahdollinen ketterä kehittämismalli, ketterä reagointi asiakas- ja käyttäjätarpeisiin ja tietoihin, uusien vaatimusten tunnistaminen, testaus ilmiöiden perusteella. 3 (5)

Yhteisöllinen kehittäminen Esimerkiksi avoimen lähdekoodin käyttöjärjestelmän kehittäminen. Orgaaninen kehittämisprosessi yhteisössä. Olennaista on uusien toimintojen hyväksymisprosessi ja testaaminen. Kun ei ole kattavaa testausjärjestelyä, pitää uusia julkistuksia kypsytellä erilaisten hyväksymistasojen läpi. Ennakkosuunniteltua: Yhteisön pelisäännöt, uusien toimintojen ja muutosten hyväksyminen, testausvaatimukset. Ketterää: Reagointi yhteisön impulsseihin, riskienhallinta. Sosioteknisen järjestelmän osallistuva kehittäminen Esimerkiksi käyttäjät ja kehittäjät luovat yhdessä valvomojärjestelmää ja sen käyttöprosesseja. Olennaista on rajata tämä kehittämistapa käyttöliittymäkerrokseen ja tehdä tekniikka toisella prosessilla. Systemaattista: Osallistuvan suunnittelun menettely ja työn ohjaus sen perusteella. Jäädytyksen jälkeinen laadunvarmistus. Ketterää: Reagointi prosessin aikana havaittuihin uusiin asioihin järjestelmästä ja sen käytöstä. Ketterä käyttöliittymäratkaisujen validointi. Kuumat tiimit Erityisessä tilanteessa kootaan poikkeuksellinen tiimi luomaan radikaali ratkaisu ongelmaan. Niiden pitää saada toimia millä tahansa tavalla, mikä niille on luontaista....ja saada aikaan mitä tahansa, mikä niistä on tärkeintä... Olennaista ei ole prosessi, vaan ihmisten yhteinen katalyyttinen kuumuus. Tiimiltä pitää joskus nimenomaan poistaa prosessivaatimukset! Mutta: silloin, kun tiimi ei ole kuuma, tilanne on hyvin erilainen. Kuumuus pitää osata tunnistaa tarkasti Ennakkosuunniteltua: Tiimien käsittely organisaatiossa. Ketterää: Kaikki tiimin toiminta! Organisaation omatarve-kehitys Esimerkiksi omaan tietojärjestelmään laaditut laajennukset. Prosessi vapaa riippuu henkilöstä, joka tekee. Vaarana olla luonteeltaan hakkerointia. Testaus jää heikoksi, mikä voi olla ok, jos käyttö on hyvin hallittua. Ennakkosuunniteltua: Toteutettavat toiminnot, aikataulu. Ketterää: Kaikki muu! Kriittistä: Huomattava, milloin tämä malli ei enää toimi, vaan on vaihdettava moodi vakavaksi sisäiseksi kehityspalveluksi. Kaksi kriteeriä: järjestelmän riskitaso ja kehittäjän jatkuva läsnäolo korjaamassa mahdollisia ongelmia. Hyvä prosessi / toimintamalli antaa turvallisen ja tuottoisan alustan, eikä ole kivireki tai älykkyystesti! 4 (5)

Yksilön tekemä ammattimainen ohjelmistokehitys Esimerkiksi yksityisyrittäjän tekemä ohjelmistotuotteen suunnittelu ja toteutus. Prosessi vapaa. Asiakas päättää, kelpaako ohjelmisto vai ei. Oma geneerinen ammattimaisuus ohjaa tekemistä oman tietotaidon puitteissa, ilman organisaation tukea Ennakkosuunniteltua: Ei mikään. Ketterää: Kaikki! Kuluttajan tekemä harrastus- ja omatarve-ohjelmistokehitys Esimerkiksi yksityishenkilön itselleen tekemä mobiililaitteen widgetti, johon haetaan täsmädataa netistä tai johonkin nettipalveluun itselleen ja kontakteilleen tekemä sovellus. Tällaisen roolin arvellaan kasvavan jatkossa. Prosessi vapaa. On turha odottaa mitään prosessia sellaisista ei ole ihmisillä mitään tietoa! Siksi välineiden on varmistettava asioita paljon enemmän kuin ammattilaisten välineiden. Ennakkosuunniteltua: Ei mikään. Ketterää: Kaikki! Tiettyn ekosysteemiin puitteissa tehtävä kehitystyö Esimerkiksi mobiililaitteen kauppapaikkaan hyväksyttyjen ohjelmistojen kehittäminen. Prosessi vapaa. Olennaisinta on täyttää ekosysteemin omistajan (esimerkiksi kauppapaikan tai kelpuuttajan) laadunvarmistusvaatimukset. Ennakkosuunniteltua: Ekosysteemin toiminta, roolit, ehdot; laadunvarmistusvaatimukset. Ketterää: Ei mikään. Jne... Yllä on varmasti vain osa erilaisista mahdollisisista tilanteista. Toivottavasti se hieman valotti tilannetta ja auttaa tunnistamaan omassa toimintaympäristössä erilaisia tyyppitilanteita, joille on eduksi se, että ne saavat hieman erilaista kohtelua. Tärkeää on tunnistaa myös tilanteet, joissa sovelletaan mallia, joka on tarkoitettu toisenlaiseen asetelmaan. 5 (5)