Johdanto
Ketteryyden haasteet ja mahdollisuudet sulautettujen järjestelmien suunnittelussa
Ketterät menetelmät on suunniteltu ensisijaisesti ohjelmistokehityksen lähtökohdista ja sen tarpeisiin. Ketterien menetelmien taustalla oleva ketteryyden filosofia on puolestaan peräisin valmistavan teollisuuden piiristä. Monet ketterälle kehitykselle ominaiset piirteet nojaavat ohjelmistokehitykselle luonteenomaiseen tekemiseen ja niistä yleisesti esitetyt esimerkit tulevat ohjelmistokehityksen maailmasta.
Ketterät menetelmät tarjoavat sulautettujen järjestelmien suunnitteluun mahdollisuuksia, joilla tuotekehitysprosessia saadaan tehostettua kehittäjien työhyvinvointia tukien. Kuitenkin on havaittavissa myös haasteita jotka pitää ratkaista ennen kuin laaja-alainen ketteryyden soveltaminen on mahdollista.
Kokonaiskuvan ymmärrys
Ketterät menetelmät painottavat tehokasta tiedonkulkua ja läpinäkyvää organisaatiota. Ne helpottavat tuotekehityksen kokonaiskuvan ja tuotekehityksessä vallitsevien riippuvuussuhteiden ymmärtämistä. Sulautettujen järjestelmien suunnittelussa eri osa-alueille erikoistuneet kehittäjät osallistuvat saman järjestelmän suunnitteluun. Perinteinen näkökulma jakaa järjestelmän osiin kehittäjien teknisen osa-alueen perusteella ja jokainen vastaa omasta alueestaan. Tällaisessa lähestymistavassa käy helposti niin, että kokonaiskuvan ymmärtäminen vaarantuu ja oman työn vaikutus muiden työhön unohtuu. Ketterät menetelmät ohjaavat jaettuun vastuunkantoon ja kokonaisuuden pilkkomiseen ennemmin toiminnallisten osien kuin teknisten osaamisalueiden perusteella. Näin eri osaamisalueiden osaajat työskentelevät yhdessä ja oppivat ymmärtämään ratkaisujensa vaikutukset kokonaisuuden kannalta.
Projektin etenemisen näkyvyys
Perinteisessä toimintaympäristössä projektin etenemisen seuranta voi olla hyvinkin haastavaa yksittäiselle kehittäjälle eikä hän välttämättä edes osaa vaatia sitä tai olla kiinnostunut siitä. Projektien etenemistä seurataan usein taloudellisesta näkökulmasta, mikä ei tyypillisesti juurikaan hyödytä kehittäjää omassa työssään. Ketterillä menetelmillä tavoitellaan parempaa ja kattavampaa näkyvyyttä koko projektin tilasta. Säännöllisillä tilannepalavereilla kehittäjät päivittävät toisilleen oman tilanteensa, mikä myös helpottaa aikaista tarttumista ongelmakohtiin. Hyvä näkyvyys projektin tekniseen etenemiseen helpottaa oman työn organisointia ja sujuvuutta sekä motivoi etenemään kohti yhteistä tavoitetta.
Monialainen kehitysympäristö
Sulautettujen järjestelmien suunnittelussa tuotekehitystiimeille on tyypillistä, että jokaisella tiimin jäsenellä on omat erityisosaamisalueensa. Nämä saattavat olla seurausta esimerkiksi koulutustaustasta, aiemmasta työkokemuksesta tai syvällisestä perehtyneisyydestä johonkin aihepiiriin. Ketterissä kehitysmenetelmissä on monia piirteitä, jotka tähtäävät osaamisen laajentamiseen. Kyseiset piirteet perustuvat siihen oletukseen, että kaikki tiimin jäsenet kykenevät hoitamaan tai tarvittaessa omaksumaan lähes kaikki tiimin tehtävät. Sulautettujen järjestelmien kehityksessä tiimit muodostuvat sekä ohjelmisto- että laitteistosuunnittelijoista, ja näistä vielä esimerkiksi laitteistopuoli voi jakautua elektroniikka- ja mekaniikkasuunnittelijoihin. Perehtyminen toisten tiiminjäsenten osaamisalueisiin helpottaa kokonaisuuden ja riippuvuussuhteiden ymmärtämistä. Täydellinen tehtävien kierrätys ei kuitenkaan sulautettujen järjestelmien suunnittelussa ole tarkoituksenmukaista niin kauan kuin tiimeissä on mukana hyvin erilaisille osa-alueille erikoistuneita kehittäjiä.
Suunnitelmallisuuden tarve
Ketterässä kehityksessä painotetaan suunnitelmien tarkentumista projektin edetessä. Tämä asettaa haasteita laitteistosuunnittelulle, jossa suunnitelman muuttuminen testattavaksi laitteeksi saattaa vaatia usean viikon työpanoksen. Ketterää laiteprojektia aloitettaessa on syytä kartoittaa, mitkä asiat pitää päättää missäkin vaiheessa projektia ja muodostaa näistä projektin sisäiset etapit. Etappien puitteissa voidaan edetä ketterien periaatteiden mukaisesti.
Tavoittamattomat asiakkaat
Monet sulautetut järjestelmät ovat tuotteita, joita myydään massamarkkinoille tai suunnitteluvaiheessa vielä tuntemattomille asiakkaille. Näin ollen tiivis asiakasyhteistyö tuotekehityksen aikana ei aina ole mahdollista siinä määrin kuin ketterät menetelmät siihen kannustavat. Näissä tilanteissa kehittäjien on hyvä toimia yhteistyössä myyntiorganisaation kanssa tunnistaakseen potentiaalisten ostajien tarpeet.
Vaihtelua sietämättömät ominaisuudet
Sulautetuille järjestelmille on ominaista laitteiston ja ohjelmiston kiinteä riippuvuussuhde. Tämä aiheuttaa tuotekehitystyöhön haasteita, joissa molempien osapuolien on toimittava ennakoitavasti, jotta kokonaisuus toimii halutusti. Järjestelmissä olevien rajapintojen aikainen määrittely on tärkeää, jotta rajapinnassa toimivien kokonaisuuksien suunnittelu saadaan käyntiin. Kehittäjien välisen kommunikaation ja läpinäkyvyyden merkitys on tässäkin kohdassa erittäin tärkeää, jotta pienetkin muutokset saadaan kaikkien tietoon mahdollisimman pian ja turhan työn teko voidaan minimoida.
Lisää aiheesta
Kaisti M., Rantala V., Mujunen T., Hyrynsalmi S., Könnölä K., Mäkilä T., Lehtonen T.: Agile methods for embedded systems development - a literature review and a mapping study.