Avainsana-arkisto: solakkuus ja ketteryys

lean, agile, scrum, product backlog

Tuotehallinta, ihmiskeskeinen suunnittelu ja ketterä kehitys Reaktorissa

Kuva aiemman projektini tuoteomistajasta.Kuva entisestä käyttöliittymäsuunnittelun opettajastani.

Entinen käyttöliittymäsuunnittelun opettajani on ollut yhdistämässä ihmiskeskeisen suunnittelun ja ketterän ohjelmistokehityksen menetelmiä Reaktorissa vuodesta 2005, jolloin tämä työ alkoi siellä. Myös tuoteomistaja aiemmasta projektistani työskentelee nyt samassa yrityksessä liiketoiminnan pääkonsulttina. Ehdotin heille keskustelua aiheesta, miten asiakkaiden vaatimukset huomioidaan Reaktorin prosesseissa, ja tapaamista lounaan merkeissä. Koen asian tärkeäksi muun muassa, koska asiakasvaatimusten hallinta tuntuu työläältä tämänhetkisessä, scrumia soveltavassa projektissamme. Tapasimme lounaalla, ja osallistuin myös kuukautta myöhemmin Reaktorin toiminnallisuusarkkitehtien vetämään, NordiCHI’14-konferenssin yhteydessä järjestettyyn koulutustyöpajaan.

Reaktorissa on neljä kiinnostavaa, tuotehallintaa parantavaa toimintamallia:

  1. Asiakas tuoteomistajana
  2. Yksi kokonaisuus kerrallaan
  3. Fasilitoiva coach
  4. Asiakas kertoo organisaation tavoitteet

Kolme ensimmäistä näistä toimintamalleista perustuu keskusteluumme lounaalla, neljäs entisen opettajani NordiCHI’14-työpajassa antamiin vastauksiin kysymyksiini.

Asiakas tuoteomistajana. Reaktorin ohjelmistotiimeissä ei ole sisäistä tuoteomistajan roolia, vaan asiakkaan edustaja hoitaa tuoteomistajan tehtävät. Näistä tehtävistä tärkein on priorisoida toteutettavia kokonaisuuksia, eli järjestää ne tärkeysjärjestyksen mukaan prioriteettijonoksi. Next-sarakkeen vihreät laput havainnollistavat ohjelmistokehityksen prioriteettijonon kuvassa alla. Tärkein kokonaisuus, joka on suunnittelun puolesta valmis toteutettavaksi, on ylimpänä. Jotkut kokonaisuudet edellyttävät vuorovaikutussuunnittelua, ennen kuin ne voidaan siirtää kehityksen työjonoon. Tällaiset kokonaisuudet esitetään punaisina lappuina next-sarakkeessa. Jos projektissa on asiakkaana monta eri organisaatiota, tuoteomistajana voi toimia johtoryhmä, joka koostuu eri asiakasorganisaatioiden edustajista. Asiakkaan, tai asiakkaiden, tärkeimpänä pitämä kokonaisuus otetaan kulloinkin seuraavaksi työn alle.

Kuva Reaktorin kanban-taulun  muunnelmasta.

Kaavio 1. Reaktorin muunnelma kanban-taulusta. Lähde: Reaktor – Extremely lean service design & development. http://www.youtube.com/watch?v=KrxTgqBCjL8

Yksi kokonaisuus kerrallaan. Koko ohjelmistotiimi kehittää yhdessä yhtä ja samaa kokonaisuutta (engl. epic). Tämä ajatus on peräisin kanbanista. In progress -sarakkeen vihreät laput ovat työn alla olevia kokonaisuuksia. Pienemmät, keltaiset laput ovat kokonaisuuteen sisältyviä tehtäviä. Kerralla toteutettava kokonaisuus on laajuudeltaan tyypillisesti noin neljä päivää kalenteriaikaa toteutusta koko tiimiltä, joskus ehkä vain päivän, joskus kaksi viikkoa. Kokonaisuuksia ei pakoteta vakioituun ”sprintin” mittaan, koska sprinttimitoitus edellyttäisi tarkkoja työmääräarvioita, joiden laatimista ei ole koettu tuottavaksi työmäärän ja saadut hyödyt huomioiden.

Fasilitoiva coach. Reaktorissa kehitystiimi vastaa monista ohjelmistoprojektissa tarvittavista päätöksistä yhdessä. Organisaatiopsykologian mukaan tällaisille vähän johdetuille tiimeille on tyypillistä, että päätöksenteon ristiriitatilanteissa asiantuntijoiden välille muodostuu näkemyseroja, jotka kasautuvat jännitteiksi henkilösuhteisiin, koska päätöksenteon roolit ovat epäselviä. Reaktorissa tiimiin pyritään aina saamaan mukaan ”fasilitoiva coach”, jonka tehtävänä on auttaa tahoja, joilla on keskenään ristiriitaiset käsitykset jostakin asiasta, löytämään yhteinen näkemys (”make it happen”). Fasilitoiva coach johtaa keskustelua ja valmentaa muita, mutta ei osallistu työhön ohjelmistokehittäjänä eikä suunnittelijana, eikä myöskään ole johtaja, joka itse tekisi päätökset. Reaktorissa työskennellään yleensä kanbanissa eikä scrumissa, ja fasilitoiva coach tavallaan korvaa scrum masterin.

Asiakas kertoo organisaation tavoitteet. Entisen opettajani ”unelmien tuoteomistajalla” olisi selvä näkemys, mitkä kokonaisuudet ovat tärkeitä organisaation taloudellisten ja muiden tavoitteiden kannalta, eli palvelun ansaintalogiikasta. Tuoteomistajana toimivan asiakkaan edustajan ei tarvitsisi kilpailla Reaktorin tiimin kanssa käyttäjien arjen tuntemuksessa, koska käyttäjäymmärrystä kertyy perinteisissä asiakasorganisaatioissa yleensä vähemmän perusteellisilla menetelmillä kuin Reaktorissa tehtävä ihmiskeskeinen suunnittelu.

Kuva Reaktorin ihmiskeskeisestä kehitysprosessista.

Kaavio 2: Reaktorin ihmiskeskeinen kehitysprosessi. Lähde: User interface design in agile projects -tutoriaali, Reaktor, NordiCHI’14.

Kokonaisuuksien priorisointi oli kiinnostavassa asemassa, kun palvelu oli siirtynyt tuotantoon esimerkkiprojektissa, jota entinen opettajani esitteli NordiCHI’14-koulutustyöpajassa. Koska käyttäjien ja asiakkaiden toimintaympäristö muuttuu uuden palvelun käyttöönoton myötä, myös heidän toiminnalliset, palveluun kohdistuvat tarpeensa muuttuvat. Nämä tarpeiden muutokset kyetään huomioimaan syklisessä palvelukehityksessä (kuva yllä). Kun esimerkkipalvelu oli viety tuotantoon, nostettiin ohi muun prioriteettijonon kolme kokonaisuutta, jotka edistivät organisaatiotavoitteen ”uuden ohjelmiston laajamittainen käyttöönotto” toteutumista. Kenttätutkimuksissa oli seurattu käyttöönoton etenemistä ja haastateltu tahoja, jotka eivät olleet vielä ottaneet palvelua käyttöönsä. Kun tämän organisaatiotavoitteen kannalta tärkeät kokonaisuudet oli saatu tehtyä, tehtiin kokonaisuuksia, jotka edistivät käyttäjien tavoitteiden saavuttamista.

Käyn seuraavaksi läpi artikkelin alussa listaamani toimintamallit arvioiden, mitkä niistä olisivat hyödyksi omassa, tämänhetkisessä toimintaympäristössäni. Henkilökohtainen kiinnostukseni tuotehallintaanhan lähtee siitä, että olen päätynyt suunnittelijana ketterän kehityksen projekteissa olemaan ”prosessin joka vaiheessa” samanaikaisesti, mikä lisää työn kuormittavuutta ja pitkään jatkuessaan vähentää työssä jaksamista sekä tuottavuutta. Esimerkiksi kahden päivän aikana olen ollut mukana suunnittelemassa töitä pidemmällä aikavälillä, kuuntelemassa käytettävyystutkimuksen palautetta toteutustehtäviä poimien, toteuttanut prototyyppiä javascriptillä, suunnitellut parannuksia tuotantoversion käyttäjäkyselyyn ja kirjoittanut tarjouspyyntöä käyttäjätutkimukselle. Työtehtäviä oli eri puolilta suunnittelun ympäriltä, mutta varsinaista suunnittelua ei oikeastaan juurikaan.

Malli ”asiakas tuoteomistajana” näyttäisi ehkäisevän tehokkaasti ”rikkinäistä puhelinta” prioriteettien viestinnässä, eivätkä tilanteet, joissa jokin asiakkaan toive jää jostain syystä toteutumatta, aiheuta siinä kielteistä mielikuvaa palvelun tarjoajalle. Asiakkaiden erisuuntaiset pyynnöt vähenisivät, timiltä kuluisi vähemmän aikaa asiakasvaatimusten pähkäilyyn ja jäisi enemmän aikaa toteutukselle, mitä kautta myös suunnittelijan rooli voisi yksinkertaistua. Tuoteomistajan tarvitsisi kuitenkin nähdäkseni osallistua vaatimustenhallinnan arkeen viikkotasolla, jotta suunnittelijan työnkuva selkiytyisi, eikä näin aktiivista osallistumista liene realistista odottaa nykyisen projektimme asiakkailta. Erityyppisistä asiakkaista koostuva ohjausryhmä vaikuttaisi kyllä hyvältä ratkaisulta meidänkin projektissamme, mutta meillä on jo useampikin vastaava elin, jotka ovat käytännössä liian raskaita ollakseen viikkotasolla mukana projektin tuotehallinnassa.

Mallit ”yksi kokonaisuus kerrallaan” ja ”fasilitoiva coach” helpottanevat suunnittelijan työtä ketterissä ohjelmistokehitysprojekteissa suoraan. Kun koko projektissa on ”vähemmän palloja ilmassa”, myös suunnittelijoille kasaantuu vähemmän rinnakkaisia työtehtäviä. Ihmiskeskeistä suunnittelua tuntevasta ”fasilitoivasta coachista” olisi apua laajojen ja pienempienkin kokonaisuuksien suunnittelussa, koska tämä työ on risteävien vaatimusten ja tarpeiden yhteensovittamista.

Haluttavuus, elinkelpoisuus ja toteutettavuus kolmena toisiaan leikkaavana pallona.

Kaavio 3. Elinkelpoisuuden, haluttavuuden ja toteutettavuuden näkökulmat. Muokattu Ideon design innovation -kaavion pohjalta. www.ideo.com/about

Kokonaisuuksien tasolla tapahtuva priorisointi on yhtenä lähtökohtana malleissa ”kokonaisuus kerrallaan”, ”asiakas kertoo organisaation tavoitteet” ja ”asiakas tuoteomistajana”. Kehittämäämme palveluun on kuitenkin tarvetta toteuttaa nopeasti myös yksittäisiä palvelupyyntöjä, jotka koskevat jo tuotannossa olevia kokonaisuuksia. Tällaisilta irrallisilta tehtäviltä lienee vaikea välttyä, kun kehitetään alustaa, joka on jo tuotannossa. Tuotannossa oleviin kokonaisuuksiin liittyvät tehtävät voitaisiin vaikkapa esittää pieninä, oransseina lappuina, joiden käsittelyyn olisi omat käytäntönsä.

Toimintamalli ”asiakas kertoo organisaation tavoitteet” yhdistää tehokkaasti elinkelpoisuuden (engl. viability), haluttavuuden (engl. desirability) ja toteutettavuuden (engl. feasibility) näkökulmat, ja helpottaisi ihmiskeskeisen suunnittelun arkea omassa ympäristössäni. Asiakkaan edustaja ilmaisee organisaatiotavoitteet vapaamuotoisesti. Kun asiakas ehdottaa ratkaisumallia, ei kuitenkaan keskitytä hänen sanoihinsa, vaan pyritään kuuntelemaan toiminnallisia tarpeita, joita ehdotettu ratkaisu voisi palvella, ”sanojen takana”. Tässä kohtaa ihmiskeskeisen suunnittelun, palveluajattelun ja käyttäjätutkimuksen lähestymistavat soveltuvat mielestäni paitsi käyttäjien myös asiakkaiden ymmärtämiseen. Kun eri puolilla ehdotetut, samaa tai samankaltaista tarvetta palvelevat ratkaisumallit saadaan redusoitua yhdeksi toiminnalliseksi kokonaisuudeksi, helpottuu paitsi ihmiskeskeinen suunnittelu, myös ohjelmistokehitys. Tarvittavat kokonaisuudet saadaan toteutettua vähemmillä resursseilla, mutta valmiit toteutukset ovat silti asiakkaille elinkelpoisia ja käyttäjille haluttavia.

1. Ymmärrä tuettavan toiminnan tilanteet ja tavoitteet. Tuottaa vaatimuksia. 2. Havainnollista toimiva ratkaisu. Tuottaa palautetta.

Ketterä versio ihmiskeskeisen suunnittelun standardista (ISO 13407)

En taustoittanut aiemmassa artikkelissa esittämääni käyttäjäkeskeisen suunnittelun prosessimalliluonnosta. Vaikka käyttäjäkeskeisestä ja ihmiskeskeisestä suunnittelusta on julkaistu kehittyneitä ja vertaisarvioituja menetelmiä, näitä termejä käytetään arjessa löyhästi. Esittelen tässä ISO 13407 -standardissa kuvatun ihmiskeskeisen suunnittelun prosessimallin ja sen pohjalta luonnostelemani kevyemmän mallin, joka lähestyy standardia käytännön näkökulmasta.

ISO 13407 kuvaa vuorovaikutteisten järjestelmien ihmiskeskeisen suunnittelun. Sen sisältämässä prosessimallissa (kuva alla) tehdään neljää toimintaa (activity):

  1. Käyttöyhteyden ymmärtäminen
  2. Tavoitteiden asettaminen
  3. Ratkaisujen suunnittelu
  4. Ratkaisujen arvointi
1. Käyttöyhteyden ymmärtäminen 2. Tavoitteiden asettaminen 3. Ratkaisujen suunnittelu 4. Ratkaisujen arvointi

Kuva: © Tuuli Mattelmäki, 2006

Kaavio kuvaa syklisen prosessin, joka vastaa kokemukseni mukaan tiedonkulkua ja oppimista suunnittelutyössä, mutta ei sen työvaiheita, koska samassa arjen hetkessä voi tapahtua montaa ISO:n toiminnoista. Esimerkiksi käyttökokemusta arvioidessaan kannattaa yleensä pyrkiä kasvattamaan ymmärrystä paitsi olemassaolevan ratkaisun käytettävyydestä, myös sen käyttöyhteydestä eli missä tilanteessa sitä käytetään ja miksi. Montaa ISO:n toimintoa voi tapahtua yhdessä hetkessä myös suunnittelutilanteessa, kun syntyy oivallus käyttötilanteesta ja sen asettamista vaatimuksista, sekä samalla jo hahmotelma vaatimukset täyttävästä ratkaisusta.

Ihmiskeskeisen suunnittelun voi mielestäni pelkistää kahdeksi toiminnaksi. Näistä ensimmäinen on käyttötilanteiden ja tavoitteiden ymmärtäminen, toinen ratkaisujen havainnollistaminen (kuva alla). Karkeasti ottaen näitä suunnittelutyön kahta osaa voisi kutsua myös nimillä tutkimus ja suunnittelu, mutta tutkimus on kovin juhlava sana seuraaville esimerkeille.

1. Ymmärrä tuettavan toiminnan tilanteet ja tavoitteet. Tuottaa vaatimuksia. 2. Havainnollista toimiva ratkaisu. Tuottaa palautetta.

Palvelu- ja vuorovaikutussuunnittelijalta tilattavat kokonaisuudet ovat yleensä melko laajoja, jolloin yksi ”kierros suunnittelua” kestää joitakin viikkoja. Esimerkkinä toimikoon Finna.fi -tiedonhakupalvelu, jonka käyttökokemuksesta vastaan, ja jonka käyttötilanteet kartoitin viime vuonna. Uskottavia käyttötilanteita oli tunnistettu ja kerätty projektissa jo aiemmin, enkä lähtenyt tekemään varsinaista käyttäjätutkimusta. Empiirinen tiedonkeruu ei ollut tässä tapauksessa välttämätöntä myöskään, koska Finna.fi on laajalle käyttäjäryhmälle suunnattu palvelu, jonka käyttötilanteista moni oli minulle ja muille tiimissä entuudestaan tuttu ”oman elämän etnografian” kautta eli omasta elämänkokemuksesta.

Analysoin Finna.fi:n käyttötilanteet ja luokittelin ne kolmeen luokkaan, jotka ovat temaattinen haku, teoshaku ja selaileva haku. Temaattista hakua on esimerkiksi materiaalin keruu musiikintutkija A. O. Väisäsestä TV-dokumenttia tai tutkimusta varten. Tenttikirjan etsiminen olisi teoshakua. Selailevassa haussa käyttäjän päämäärä ei ole aina kovinkaan konkreettinen, esimerkiksi kun taiteentutkija surffailee materiaalia taideteoksesta tulevien tutkimustensa mahdollisiksi aiheiksi. Tein käyttötilannekartoituksen ja tavoiteanalyysin muutaman kuukauden kuluessa, mikä ei ollut kokoaikaista työtä, koska suunnittelimme ja Scrum-kehitystiimi toteutti samalla palveluun käyttöliittymäparannuksia. Idea moneen käyttöliittymäparannukseen nousi käyttötilanteiden läpikäymisestä, ja toteutustehtäviä myös priorisoitiin sen perusteella, kuinka monessa esimerkkitilanteessa ongelma toistui. Poimin ne käyttötilanteet, joissa oli riittävät taustatiedot käyttökokemuksen arviointiin, myöhemmin suunnittelussa hyödynnettäviksi. Jätin viisitoista – kaksikymmentä käyttötilannetta pois, koska niistä ei ollut riittäviä tietoja käytön ”simuloimiseen” asiantuntijatyönä. Olen käynyt esimerkkitilanteet läpi suunnittelutyön edetessä muutaman kuukauden välein, jotta käyttötilanteet ja käyttäjien tavoitteet säilyvät minun ja kehitystiimin mielissä, ja jotta ”pysyn kartalla” Finna.fi:n käyttökokemuksesta ja käytettävyydestä todellisissa käyttötilanteissa.

Ylävalikko ennen muutosta, Tietoa-valikko auki

Ylävalikko muutoksen jälkeen: Tietoa-valikko poistettu

Pienen osakokonaisuuden suunnittelu, kuvat ennen ja jälkeen.

Myös pienempien osakokonaisuuksien käytettävyyden parantaminen etenee joskus ”ihmiskeskeisen suunnittelun kierroksina”. Esimerkiksi kun sisällytimme palveluun listan mukana olevista organisaatioista, se oli aluksi vaikea löytää, koska valikon ykköstason linkkiteksti ei houkutellut avaamaan sitä. Ylemmässä kuvassa vasemmalla on tämä ensimmäinen versio. Organisaatiot-linkki siirrettiin myöhemmin valikon ykköstasolle, missä se on heti näkyvillä (alempi kuva). Tämän käytettävyysparannuksen suunnittelu ja toteutus kesti yhteensä alle henkilötyöpäivän.

Käyttäjäkeskeinen ja ihmiskeskeinen suunnittelu tarkoittavat tässä ja aiemmassa artikkelissani samaa asiaa, vaikkakin ihmiskeskeisessä suunnittelussa käytännön suunnitteluprosessi ja asiakkaan tarpeet korostuvat, kun taas käyttäjäkeskeisessä painottuu tuotteen ja loppukäyttäjän välinen vuorovaikutus. Termin käyttäjäkeskeinen suunnittelu on esitellyt Don Norman teoksessaan The Design of Everyday Things, jonka voi ladata verkosta ilmaiseksi.

Käyttäjäkeskeinen suunnitteluprosessi: ensimmäinen luonnos

suunnitteluprosessi

Hyvä palvelu- ja käyttökokemussuunnittelija tekee kahta asiaa: ymmärtää tuotteeseen tai palveluun kohdistuvat tarpeet ja luo ne täyttäviä ratkaisuja.Luomisen ja ymmärtämisen vaiheet seuraavat toinen toisiaan.

Luo. Luomisvaiheessa hahmotellaan tuote tai palvelu pitäen loppukäyttäjien tavoitteet ja asiakkaan liiketoimintatavoitteet suunnittelun lähtökohtana. Tuloksena syntyy konkreettisia havainnekuvia, joista loppukäyttäjät ja liiketoiminta-asiakkaat osaavat sanoa, täyttävätkö ne omat tarpeet ja tavoitteet vai eivät.

Ymmärrä. Ymmärryksen hankkimisvaihe tuottaa ymmärrystä sekä arvioitavien ”rautalankojen” toimivuudesta että käyttäjien ja asiakkaiden tarpeista ja tavoitteista. Havainnekuvien käyttö nostaa esiin käyttökokemuksen kannalta tärkeitä asioita, jotka jäävät helposti huomaamatta. Ymmärryksen hankkimisvaihe auttaa myös löytämään kokonaan uusia toimintamalleja, joita ei aiemmin ole ajateltu, koska se luo vuoropuhelua eri näkökulmien välille.

suunnitteluprosessi, toteutusvaihe
Ihmiskeskeinen suunnittelu toteutusvaiheissa.

Rakenna. Kuva yllä esittää suunnittelun varhaisia vaiheita, joissa toteutusta ei vielä ole aloitettu. Tekijätiimillä on hyvä olla kokonaiskuva tuotteen tai palvelunrakenteesta, ja käyttäjän vuorovaikutuksesta sen kanssa, ennen kuin toteutus alkaa. Suunnittelun yksityiskohdat täsmennetään toteutuksen aikana.