Mahdollista parhaan ohjelmistoratkaisun löytäminen
Kirjoittanut Raine Kelkka
Reaalimaailman projekteissa käytetylle ajalle ja rahalle täytyy saada tuottavaa vastinetta. Kun ohjelmistotuotteen kehittämistä tehdään projektiluonteisesti, on tunnistettava, mitkä keinot mahdollistavat parhaiden ratkaisujen löytämisen ja mitkä estävät sen. Tarkoitus ei ole käyttää enempää resursseja vaan saada resursseista paras mahdollinen irti.
Tuotekehityksessä lopullinen tuote voi olla hyvinkin koukeroisen polun takana ja tarkkarajainen projekti ei tällöin sovellu. Usein projekteissa lyödään ensimmäisenä lukkoon aikataulut ja resurssit vaikka lopullinen tuote on vielä sarastava visio. Jos ei tiedetä kohdetta, on hyvin vaikea ennustaa matkan kestoa.
Laajojen kokonaisuuksien arviointi on vaikeaa ja riski aikataulusta lipsumiseen kasvaa. Jos etukäteen päätetystä aikarajasta pidetään kiinni väkisin, on projekti pakotettu tuottamaan jotain, mikä ei välttämättä vastaa lainkaan tarpeita.
Tuotekehityksen jakaminen pieniin askeliin, jotka keskittyvät tuottamaan aidosti arvokkaita ominaisuuksia, pienentää riskiä isosta pettymyksestä kovan deadlinen ääressä.
Ohjelmistokehitys on oppimisprosessi
Ohjelmistokehitys ei ole suoraviivainen valmistusprosessi vaan se muistuttaa enemmän oppimisprosessia. Oppiminen tapahtuu pienin askelin, kun reaalimaailman kokemuksesta havaitaan, miten toteutus vastaa arvioituun ongelmaan.
Ketterissä menetelmissä kehityksen ja palautteen välinen sykli pidetään lyhyenä, sillä mitä kauemmin palautteen saamiseen menee, sitä vaikeampi siihen on reagoida ratkaisusssa.
Kehityssyklin viiveen vaikutus tuotekehitykseen:
- Pieni viive ➡️ harha-askel saadaan korjattua nopeasti ➡️ mahdollistaa paljon kokeiluja ➡️ uskallus innovoida ➡️ löydetään parhaat ratkaisut jalostettavaksi lopulliseen muotoon.
- Suuri viive ➡️ harha-askel on kallis ➡️ rajoitettu määrä kokeiluja ➡️ pelko innovoida ➡️ otetaan varman päälle ja tyydytään pienimpään mahdolliseen riskiin.
Ketterät menetelmät eivät auta, jos sykli ideasta käyttökokemuksiin on liian pitkä suhteessa projektin elinkaareen. Vastaavasti iteratiivinen, eli pala palalta toteutusta jalostava, kehitysmalli ei auta, jos on keskimäärin yksi mahdollisuus saada ominaisuudet tehtyä allokoidun projektin puitteissa. Näin muodostuu väkisinkin vesiputous, jossa varovaisuus voittaa ja innovaatio katoaa.
Kehityssyklin lyhentäminen vähentää hukkaa
Varsinkin raskaalla ohjelmistoprosessilla idean vieminen koko tuotekehityspolun läpi formaaleista vaatimuksista hyväksyntätestauksiin on kallista. Tällöin heikosti arvoa tuottavien ratkaisuiden karsiminen mahdollisimman aikaisessa vaiheessa parantaa kokonaistehokkuutta.
Yksi tapa pyrkiä lyhentämään kehityssykliä on jakaa yksittäisten ominaisuuksien toteutusta eri vaiheisiin, jolloin tuotekehityksen paukut tuottaisivat mahdollisimman vähän hukkatavaraa.
Tällä ajatuksella olen mukaillut Kent Beckin 3x-mallia tuotekehityksen triathlonista:
- aluksi laaditaan useita ratkaisuja mahdollisimman kevyesti ja nopeasti
- seuraavaksi potentiaalisin ratkaisu laitetaan koetukselle ja yritetään kaikin keinoin tunnistaa mahdolliset ongelmat, jotka estävät sen toteutuksen
- toteutuskelpoiseksi arviotu ratkaisu toteutetaan projektissa käytettävän ohjelmistokehitysprosessin mukaisesti
Rohkea ideointi mahdollistaa oivallukset
Uutta ominaisuutta tehdessä voi vapaasti kokeilla kenties älyttömiäkin ideoita esimerkiksi käyttöliittymäprototyypeillä. Nopeallakin demolla voidaan saada ahaa-elämyksiä, jotka johtavat oikean ohjelmistoratkaisun äärelle.
Kustannus epäonnistumisesta pidetään pienenä kevyellä prosessilla ja nopealla palautteella. Kun kehittäjätkin osallistetaan ideointivaiheeseen, saadaan laajempi kirjo ajatuksia ja vältetään yhden suunnittelijan pullonkaula.
Potentiaalisen ratkaisun löydyttyä yritetään paljastaa mahdolliset loogiset puutteet tai ongelmat, jotka estäisivät sen käytön arvioidussa toimintaympäristössä. Jos kyseessä on esimerkiksi isoa datamäärää käsittelevä toiminto, se voidaan käytännössä toteuttaa prototyypin muodossa oleellisilta osin ja altistetaan arvioitua käyttöä vastaavaan kuormaan.
Tämän vaiheen tarkoitus on suhteellisen nopeasti joko validoida idean toteuttamiskelpoisuus tai hylätä se. Tavoite on karsia pois kalliit ja mahdolliset käytön estävät yllätykset tuotekehityksen loppupäässä.
Hyvin suunniteltu on ennustettavampi
Näiden vaiheiden jälkeen voidaan olla melko luottavaisin mielin, että valittu ohjelmistoratkaisu on hyödyllinen ja se toimii myös käytännössä. Seuraavassa vaiheessa on aika laatia toteutus huolellisesti ja viedä laadunvarmistuksen kautta tuotantoon. Varsinainen toteutus on ennustettavampi verrattuna tilanteeseen, jossa lopullista koodia ruvetaan tekemään tyhjältä pöydältä.
Lisätietoja
Tagit
Liiketoimintaprosessi
Laatu, turvallisuus ja ympäristö | |
Tuotekehitys ja suunnittelu |
Erikoisosaaminen
Arkkitehtuuri |
Toimialakokemus
Asiantuntijapalvelut |
Tarjonnan tyyppi
Konsultointi |
Monad - Asiantuntijat ja yhteyshenkilöt
Monad - Muita referenssejä
Monad - Muita bloggauksia
It- ja ohjelmistoalan työpaikat
- Laura - Mobiilikehittäjä, Android
- Laura - Ohjelmistoarkkitehti, Tampere/Oulu
- Laura - Development Team Manager, Sports Games
- Taito United Oy - Senior Full Stack -kehittäjä
- Webscale Oy - Head of Sales, Cloud Services
- Laura - Hankinta-asiantuntija, tietohallinto
- Laura - Development Manager, Operations
Premium-asiakkaiden viimeisimmät referenssit
- SD Worx - Kehitystyö SD Worxin kanssa takaa Clas Ohlsonille parhaat palkanmaksun prosessit kasvun tiellä
- Digiteam Oy - Case Esperi Care Oy: Ketterä kumppanuus vei Esperin verkkosivu-uudistuksen maaliin sujuvasti ja aikataulussa
- Kisko Labs Oy - Howspace Hub - Mukautuva oppimisen hallintajärjestelmä kasvaviin oppimisalustavaatimuksiin
- Kisko Labs Oy - Sanoma Pro: Multimediasisältöjen hallinnan uudistaminen
- Kisko Labs Oy - Svean helppokäyttöinen palvelu asiakkaan verkko-ostosten hallintaan
- Kisko Labs Oy - Yhtenäinen käyttöliittymä luovien alojen ammattilaisille
- Codemate - Digitaalisen murroksen nopeuttaminen Flutterin avulla
Tapahtumat & webinaarit
- 27.11.2024 - Green ICT -ekosysteemitapaaminen III: Ohjelmistojärjestelmien virrankulutuksen mittaaminen ja kasvihuonepäästöjen arviointi
- 27.11.2024 - Digitaalisen asiakaskokemuksen uusi aikakausi
- 28.11.2024 - Webinaari: Keskity myyntityön laatuun!
- 28.11.2024 - Copilot-webinaari – Mielekkäämpää tietotyötä turvallisesti
- 04.12.2024 - Kuinka oikea matka- ja kululaskujärjestelmä tehostaa prosesseja?
- 05.12.2024 - Green ICT VICTIS -hankkeen kick off -tilaisuus
- 15.01.2025 - Datavastuullisuuden valmennus: hanki valmiudet vastuulliseen datan ja tekoälyn hyödyntämiseen
Premium-asiakkaiden viimeisimmät bloggaukset
- Kisko Labs Oy - Heroku: Millaisiin projekteihin se sopii ja mitkä ovat sen todelliset hyödyt ja haitat?
- Zimple Oy - Pipedrive vai Hubspot? Kumpi kannattaa valita?
- SC Software Oy - Jatkuvat palvelut – asiakaslähtöistä kumppanuutta projekteista ylläpitoon
- Timeless Technology - Ohjelmoitavat logiikat (PLC): Ratkaisevat työkalut automaatioon ControlByWebiltä.
- Kisko Labs Oy - Heroku: Ohjelmistokehittäjän ykköstyökalu skaalautuvien sovellusten rakentamiseen
- SD Worx - Näin luot vakuuttavan Business Casen palkkahallinnon ulkoistukselle
- Timeless Technology - Kyberriskien tunnistaminen Profitap IOTA verkkoanalysaattorin avulla.
Digitalisaatio & innovaatiot blogimediaBlogimediamme käsittelee tulevaisuuden liiketoimintaa, digitaalisia innovaatioita ja internet-ajan ilmiöitä |