Käytännön Kanban -kurssi oli käytännöllinen

Sovelluskehitystä voi toteuttaa monella eri tapaa ja jo jonkin aikaa ketterät menetelmät ovat olleet esillä parempaan lopputulokseen pääsemiseksi. Ketterät menetelmätkään eivät ole mitään hopeisia luoteja, vaan vaativat menetelmään perehtymistä, sopivien toimintatapojen kehittämistä ja organisaation kouluttamista uutta ajattelutapaa ajatellen. Osallistuin viime viikolla Reaktorin vetämälle "Käytännön Kanban" -kurssille, jossa perehdyttiin yhteen menetelmään toteuttaa sovelluskehitystä ketterästi läpinäkyvämmin ja paremmin.

Kanban-menetelmä

Lyhyesti tiivistettynä Kanban-menetelmän ideana on toimintatavan ja työtehtävien visualisointi taulujen avulla ja rajoittaa käynnissä olevan päällekkäisen työn määrää ja pyrkiä saamaan työkokonaisuuksia valmiiksi nopealla tahdilla. Uutta työtä ei oteta sisään ennen kuin nykyiset on saatu valmiiksi. Tavoitetta kuvaa iskulause: "Lopeta aloittaminen, aloita lopettaminen!" eli "Stop Starting and Start Finishing!". Prosessin ja organisaation nykytilan ymmärtämisen kautta tavoitellaan kysynnän ja kyvykkyyden tasapainon ylläpitämistä sekä asteittaista parantamista. Kanban-menetelmä liittyy Lean- ja Just-In-Time -ajatteluun ja sana "kanban" tulee Japanista tarkoittaen visuaalista merkkiä.

"Kanban-menetelmällä tiimi pystyy hallinnoimaan, ennakoimaan ja rytmittämään tapahtumien kulkua tehokkaasti työssään. Menetelmä auttaa tiimiä ymmärtämään, kuinka työ toimii ja tekemään oikeita päätöksiä oikeaan aikaan. Kanban kertoo, milloin kannattaa aloittaa, hiljentää ja lopettaa aktiviteetit työn eri vaiheissa — nykytilanne ja ongelmat on helppo nähdä ja ymmärtää yhdellä silmäyksellä." - Reaktorin Käytännön Kanban -kurssi

Käytännön Kanban -kurssi

Osallistuin viime viikolla Reaktorin Käytännön Kanban -kurssin, jonka aikana käsiteltiin menetelmän teoreettinen perusta, tärkeimmät periaatteet ja tutkittiin käytännönläheisesti Kanbanin soveltamista. Kerrankin koulutuksen painopiste oli sanalla käytäntö ja se toteutui mielestäni hyvin luentojen, tarinankerronnan, ryhmäkeskustelujen ja harjoitusten avulla. Koulutus painotti aktiivista oppimista ja kaksipäiväisen koulutuksen aikana opimme käytännön harjoitusten avulla muun muassa:

  • Kanban-menetelmän ottaminen käyttöön päivittäisessä työssä olemassa olevia toimintatapoja, rooleja ja vastuita kunnioittaen
  • Nykyisen toimintatavan visualisointi selkeästi ja ymmärrettävästi
  • Tiimityöskentelyn, tuottavuuden ja laadun kehittäminen järjestelmällisesti
  • Esteiden tunnistaminen ja poistaminen tiimien työssä
  • Työn kehittäminen kurssin aikana opittujen mittareiden avulla

Ensimmäinen päivä

Koulutuksen ensimmäisenä päivänä käytiin lyhyesti läpi menetelmän teoreettinen perusta ja tärkeimmät periaatteet, mutta asioiden läpikäynti painottui esimerkkeihin ja tarinoihin, eikä kalvoilta asian läpikäymiseen, mikä toimi mainiosti asian sisäistämisessä. Päivän aika aihetta läpikäydessä ei tullut niinkään tunnetta, että käsiteltäisiin juuri Kanbania, vaan miten töitä pitäisi tehdä parempaan lopputulokseen pääsemiseksi ja miten Kanban-menetelmä liittyy siihen.

Kanban ydinperiaatteet
Kanban ydinperiaatteet

Kurssin pitäjät, Sami Lilja ja Sami Honkonen, ovat käsitelleeet kurssin asioita blogikirjoituksissaan kuten Importance of pull, WIP limits and Kanban system ja How to fix 90% of problems at work, jotka liittyvät ja käsittelevät Kanbanin kolmea ensimmäistä periaatetta.

Teorian läpikäynnistä muistiin kannattaa pistää ainakin Littlen laki (läpimenoaika = keskeneräinen työ / nopeus), eli mikä on keskimääräinen aika tehtävän läpisaattamiseksi. Ei kannata ahnehtia liikaa töitä, sillä eivät ne yhtään nopeammin valmistu. Usein organisaatio yrittää kasvattaa nopeutta, mutta merkittävämpi tulos on pienentää keskeneräisen työn määrää. En tässä käy tarkemmin läpi muita esitettyjä asioita, mutta mainittakoon "vaihteluväli, ei trendi" (regression to mean), "kyvykkyys vs. kysyntä" ja "työn kirjo". Myös Scrum-bania sivuuttiin nopeasti.

Get Kanban -lautapeli oli oiva
Get Kanban -lautapeli oli oiva

Käytännön ensikosketuksen Kanban-menetelmään sai tehokkaasti GetKanban-pelillä, joka osoitti loistavasti mistä menetelmästä on kyse ja miten sovelluskehityksessä eri vaiheiden merkitys ja läpimenoaika näkyvät lopputuloksessa. Pelin avulla näki, miten Kanban teki työn eri vaiheista läpinäkyvää ja työn tekemisen esteet olivat helpommin ennakoitavissa ja poistettavissa. Tosin peli heitti eteen muutamia poikkiteloja kuten Carloksen ja Peten, joihin oma tiimini kompastui. Ohjelmistokehitystiimin työssä Kanban helpottaa havaitsemaan, onko työn eteneminen estynyt, mikä estää työn etenemisen, mitä on työn alla tällä hetkellä tai kuinka paljon töitä on odottamassa. Toisella pelikerralla tiimini onnistui pelissä paremmin, kun analysoimme hieman tikettien mahdollista läpimenoa, toteutimme automaattiset testit ja muutimme WIP-rajoja. Eli kuten käytännössäkin pitäisi tehdä :)

Päivän päätteeksi esiteltiin Case-esimerkki "Oma Elisa"-palvelun kehittämisestä ja Ray.fi -sivuston kehityksestä ja millaisia Kanban-tauluja tiimeillä oli ollut käytössä. Muutamina poimintoina esimerkeissä luovuttiin sprinteistä, ei tehty planningia vaan työtä lisää kun tarve ja estimointi tehtiin T-paita koolla läpimenoajasta, ei työmäärästä. Scrumista säilytettiin demot ja retrot ja 2 viikon välein tuotantoon. Lisäksi väki organisoitui vapaammin, ei ollut kiinteitä tiimejä ja WIP-rajat pakottivat parikoodaukseen. Päivittäisissä tilannekatsauksissa käytiin läpi vain laput, jotka olivat olleet pitkään boardilla (täppä per päivä lappuun). Backlogia ei täytetty jatkuvasti, vaan lämmittelyboardilta tuotiin lisää tavaraa, kun noin 2 viikon työt jäljellä.

Esimerkeistä keskustelua herättivät muun muassa miten eri osa-alueet ja niiden hallinta menivät käytännössä ja miten "päivittäinen agenda" ja "miten löydän töitä" toimivat käytännössä. Yksinkertaisuudessaan ne voisivat olla seuraavat:

Päivittäinen agenda
Miten löydän töitä?

Toinen päivä

Koulutuksen jälkimmäisenä päivänä keskityttiin Kanbanin soveltamiseen ja osallistujien omien projektien tarkoitukseen ja Kanban-taulujen pohtimiseen. Päivän aikana toteutettiin viisi eri taulua, joka osoitti käytännössä, että Kanban-menetelmä on suhteellisen helppo ottaa käyttöön kaikenlaisissa tiimeissä, eikä liikkeelle pääseminen ei vaadi isoja muutoksia työtapoihin. Organisaation prosesseja lähdetään muokkaamaan asteittain ja askel kerrallaan, ja samalla seurataan jatkuvasti palautetta ja saatuja tuloksia.

Kanban-taulun kehittämisen pohjaksi on hyvä muistaa ja pohtia seuraavia asioita:

Kanban-taulun kehittämisen ohjenuorat
Kanban-taulu on kehittyvä, ei staattinen

Tässä pari esimerkkiä tuotoksista:

Kanban-taulun suunnittelussa kaikkia tehtäviä ei välttämättä kannata merkitä boardille. Esimerkiksi jos on paljon pieniä tehtäviä, eli kohinaa, hyväksytään se. Sitä ei kannata merkata boardille, mutta kannattaa jotenkin seurata sitä, esimerkiksi tukkimiehen kirjanpidolla. Eli nähdään paljon menee aikaa tiskin alta ja triviaaliin työhön.

Systeemiajattelu

Kanban-menetelmän ja mielestäni työelämään yleisestikin liittyvien asioiden lisäksi koulutuksessa käsiteltiin lyhyesti myös systeemiajattelua ja mistä kokonaisuus ja sen suorituskyky muodostuu. Asiaa avasi hyvin Russell Ackoffin ~8 minuutin puhe systeemiajattelusta (tai vitsien kera). "Systeemi ei ole osiensa summa, vaan yhteistoiminnan tulos". Asiaa selventää hyvin myös Honkosen "You are part of a system" -kirjoitus.

Arvo- ja häiriökysyntä

Aiheeseen liittyen käsiteltiin myös arvo- ja häiriökysyntää (Value Demand ja Failure Demand). Asiaa pitää katsoa asiakkaan näkökulmasta, jolloin arvokysyntä on sitä, jota asiakas haluaa ja häiriö kaikkea muuta, kuten bugeja, muutospyyntöjä ja huonoa käyttöliittymää. Lisäksi yrityksen sisäistä häiriökysyntää ovat muun muassa raportointi, palaverit, infrahäiriöt ja odottaminen. Arvioilta 80 prosenttia työstä on häiriökysyntää ja vain 20 prosenttia arvokysyntää, eli sitä mitä pitäisi oikeasti tehdä. Kanban auttaa tekemään häiriökysynnän näkyväksi. Jotkut organisaatiot keskittyvät tekemään häiriökysyntää, kun pitäisi keksittyä tekemään arvokysyntää. Kannattaa olla täten tarkkana, ettei Kanbanilla hallita häiriökysyntää.

Muita läpikäytyä asioita olivat "tarkoitus -> mittaus -> menetelmät", "oikeiden asioiden tekeminen oikein", "kysyntäanalyysi" ja "kysyntä -> arvo -> virtaus".

Yhteenveto

Reaktorin Käytännön Kanban -kurssin aikana käsiteltiin menetelmän teoreettinen perusta, tärkeimmät periaatteet ja tutkittiin käytännönläheisesti Kanban-menetelmän soveltamista. Kerrankin koulutuksen painopiste oli sanalla käytäntö ja se toteutui mielestäni hyvin luentojen, tarinankerronnan, ryhmäkeskustelujen ja harjoitusten avulla. Kurssilla käsiteltiin paljon asioita ja ongelmia, jotka ovat maalaisjärjellä ajateltuna selviä, mutta ikävän todellisia työpaikoilla. Keskustelu oli antoisaa ja herätti ajatuksia, miten asioita pitäisi kehittää.

Kurssin kuvaus lupaa paljon hyviä lopputuloksia ja ideana ja tavoitteena Kanban-menetelmä vaikuttaa lupaavalta kaaoksen hallintaan. En voi kuitenkaan sanoa, että kurssilla opituista asioista on ollut välittömästi hyötyä oman organisaationi työn kehittämisessä, mutta hitaasti eteenpäin kuitenkin. Tavoitteena on ottaa kurssilla opittuja asioita käyttöön, mutta uuden menetelmän ottaminen samantien osaksi päivittäistä työtä ei ole niin yksiselitteistä etenkään jäykässä organisaatiossa.

Kurssilta sai lisäksi mukaan David J. Andersonin Kanban -teoksen ja kätevän Kanban-lehdykkeen kiireisille johtajille. Lisäksi pitänee lukaista lisää kurssilla käsitellyistä aiheista muun muassa Henrik Knibergin Lean from the Trenches -kirjasta (PDF) ja pohtia Modig Åhlströmin Tätä on Lean -teoksen tai Daniel Kahnemanin Thinking, Fast and Slow -kirjan hankkimista.

Päivitys 28.11.2014: Osallistuin Käytännön Kanban -kurssille toistamiseen loppusyksystä ja tällä kertaa vain oman yksikköni väen kanssa, joka antoi paremman lähestymisen tiimin ongelmien ratkaisemiseen. Sami Lilja veti jälleen mainion kurssin ja sisältö oli suurin piirtein sama kuin keväällä. Nyt oman Kanban-taulun kehittämiseen oli hieman enemmän käytännön kokemusta, mutta osittain myös väen vaihtumisen takia ongelmat olivat samat. Mitä tehdä, kun henkilö on useassa eri asiakkaan projektissa ja ylläpidossa. Miten rajoittaa multitaskingia ja työn hajautumista. Tähän ei vielä löytynyt vastausta, mutta on tärkeää, että ei manageroida henkilöitä, vaan asiakkaalle tehtäviä tehtäviä.

Jolla ja Android-sovellukset

Mobiililaitteissa käyttöjärjestelmälle saatavien sovellusten määrä ja laatu ovat jossain määrin ratkaisevassa asemassa ja sitä ajatellen Jolla ja Sailfish OS tukevat myös Android-sovelluksia. Android-sovelluksia voi asentaa useista eri Android-sovelluskaupoista ja Jollan kaupasta on saatavilla yhteensopiviksi testattuja Android-sovelluksia. Tässä muutamia poimintoja Jollan kaupasta löytyvistä Android-sovelluksista ja muutamista muista lähteistä asennetuista sovelluksista.

Jollalle saatavat Android-sovellukset

Jollaan ja Sailfish OS:lle saatavien sovellusten määrää voi kätevästi laajentaa Android-sovelluksilla, joita varten tarvitsee vain ensin asentaa Jollan kaupasta Android Support -paketti, jonka jälkeen Android-sovelluksia voi asentaa haluamastaan lähteestä kuten Jollan kaupasta, Yandex.Storesta, Amazon App Storesta tai suoraan .apk-paketeista. Sovellukset toimivat libhybris-ratkaisun ansiosta yhtä sulavasti Jollassa kuin vastaavassa Android-puhelimessa.

Suurin osa Android-sovelluksista toimii hyvin myös Sailfish OS:ssä, jos ne eivät tarvitse Googlen Play -palveluita, ja suurin ero natiiveihin sovelluksiin toimintalogiikan lisäksi on, että kaikki Android-sovellukset toimivat samassa "ikkunassa". Listassa olevat sovellukset on testattu Sailfish OS 1.0.5.16 Paarlampi -versiolla. Aikaisemmin muun muassa Netflix on toiminut, mutta nyt en sitä saanut toimimaan.

Android-sovellukset Jollan kaupassa

Jollan kaupasta on saatavilla muutamia Jollan ja Sailfish OS:n kanssa toimiviksi testattuja Android-sovelluksia, mutta sovellukset ovat muuten samoja kuin muistakin lähteistä asennettavat. Tässä muutamia poimintoja Jollan kaupasta löytyvistä Android-sovelluksista. Android-sovellukset ovat kaupassa merkitty pienellä Androidin kuvakkeella. Listassa sovellukset ovat ryhmitelty kuten ne ovat Jollan kaupassa.

Internet


Pivo
Pankkitilin käytönseurantaan tarkoitettu sovellus, joka toimii muun muassa OP-Pohjolan tileille.


Tori.fi
Sovellus Tori.fi-osto/myynti -palvelun käyttöön.

Multimedia


Taloussanomat
Taloussanomien, Digitodayn ja It-viikon uutiset.


Yle Areena
Ylen Areena -palvelu.


Ilta-Sanomat
Ilta-Sanomien tuoreimmat uutiset ja sää.

Network


ReadWrite News
Lue ReadWrite News -IT-blogia.

Utilities


Aptoid Appstore
Aptoidin Android-sovelluskauppa. Aptoidesta löytyy erikseen Jolla-kauppa.


Time List
Lisää asioita listalle ajan kera ja vertaa aikaa nykyaikaan.


LOWs tag based prices
Lisää tuotteita listalle ja vertaa mitä olet niistä maksanut.

Muut Android-sovellusten lähteet

Jollan kaupan lisäksi Android-sovelluksia voi ladata useista kolmannen osapuolen sovelluskaupoista tai asentamalla suoraan .apk-paketeista. Jollan kaupasta löytyy Yandex.Store ja Aptoid App Store, mutta myös Amazon App Store toimii, ja myös Google Playn asentaminen on mahdollista.

Kolmannen osapuolen kaupoista tai Internetistä ladattujen ohjelmistojen asentamista varten pitää sallia Jollan asetuksista ensin ei-luotettu ohjelmistojen käyttö: Järjestelmä > Ei-luotettu ohjelmisto > Salli ei-luotettu ohjelmisto.

Yandex.Store


Jollan kumppani Android-sovelluskaupoissa on venäläinen Yandex.Store, joka tuntuu toimivan ihan kätevästi. Yandex.Storen asennuksessa pitää huomioida, että valitsee salasanan palautuksen tavaksi turvakysymyksen, sillä ulkomaisiin numeroihin (+358) tekstiviestin lähetys varmistusta varten ei Yandexilta onnistu.

Amazon App Store

Amazonin App Store on yksi vaihtoehto Android-sovellusten asentamiseksi ja se toimii ihan kätevästi. Kätevänä lisänä sovelluskauppaa voi käyttää myös tietokoneella selaimen kautta, jolloin "ostetut" sovellukset löytyvät Menu > My Apps > Cloud > Refresh.

Amazonin kaupan asennus menee lyhyesti seuraavasti:

  1. Lähetä linkki sovellukseen sähköpostiisi ja avaa se Jollassa
  2. Lataa sovellus
  3. Avaa Notifikaatiot ja klikkaa ilmoitusta ladatusta apk:sta (tai: Mene Asetukset > Järjestelmä > Siirrot)
  4. Klikkaa AmazonApps-release.apk, jolloin uusi sovellus asennetaan ja se löytyy sovelluslistasta
  5. Kirjaudu Amazon AppStoreen Amazon.comin tunnuksillasi

APK-pakettien asentaminen

Androidin sovelluspakettien, eli .apk-tiedostojen, asentaminen on hieman monimutkaisempaa kuin suoraan sovelluskaupoista asentaminen, kun .apk-paketit pitää ensin hankkia jostain, kuten Android-puhelimesta purkamalla tai Internetin lähteistä. Paketin hankkimisen jälkeen kopioidaan se Jollaan esimerkiksi /data/app -hakemistoon, jonka jälkeen voidaan asentaa se selaamalla tiedostonhallinta-sovelluksella kuten Cargo Dock hakemistoon, jossa paketti on ja avaamalla se.

Itse olen käyttänyt .apk-pakettien saamiseen vain oikeaa Android-laitetta, josta AirDroidin avulla tuottanut .apk-paketit Jollaan siirtoa varten. Yksi vaihtoehto on käyttää APK-downloader-sivustoa tai Chrome-lisäosaa, joilla voi ladata Google Playssa olevia ilmaisia sovelluksia.

Ulkoisten sovelluskauppojen Android-sovellukset Jollassa

Suurin osa Android-sovelluksista toimii hyvin myös Sailfish OS:ssä, jos ne eivät tarvitse Googlen Play -palveluita. Tässä muutamien tunnettujen palveluiden Android-sovelluksia, jotka toimivat myös Sailfish OS:n Android-kerroksella ajettuna.

Pilvipalvelut


Dropbox
Dropboxin kanssa osaa toimia natiiveista Sailfish OS -sovelluksista Cargo Dock ja Sailbox. Android-sovelluksen lähde: Amazon App Store

Sosiaalinen media


Imgur
Imgurille on saatavilla myös natiivi Sailfish OS -sovellus Sailimgur Jollan kaupasta. Android-sovelluksen lähde: oma .apk-paketti tai Aptoide


Instagram
Lähde: oma .apk-paketti (Google Play) tai Aptoide.


Vine
Lähde: Amazon App Store


Reddit is fun
Redditistä on saatavilla myös natiivi Sailfish OS -sovellus Quickddit OpenReposta. Android-sovelluksen lähde: Amazon App Store

Pelit


Angry Birds II
Lähde: Amazon App Store


OpenSudoku
Lähde: oma .apk-paketti. (Google Play)

Muut


S-Pankki S-mobiili
S-Pankin mobiilisovellus, joka näyttää tilin ja bonuksen tiedot, ja jossa voi mm. skannata laskun viivakoodin kameralla maksamista varten. Lähde: oma .apk-paketti. (Google Play)


OP-mobiili
OP-Pohjolan mobiilisovellus, joka näyttää mm. tilien ja vakuutusten tiedot, ja jossa voi mm. skannata laskun viivakoodin kameralla. Lähde: oma .apk-paketti. (Google Play)