Agiilne tarkvaraarendus on kaasaegsetes tehnoloogiaettevõtetes normaalsus. Hästi koostöötavad arendustiimid kasutavad agiilseid põhimõtteid selleks, et olla oma töös tulemuslikud ja tegemistes läbipaistvad ehk arusaadavad nii iseendile kui kliendile. Arvan, et neid põhimõtteid saab rakendada paljudes valdkondades, näiteks agiilne juhtimine on üks võimalusi ettevõttes tuuled kiiremini puhuma panna.

Mis on agiilsus?

Tarkvaraarendusest on tuntud mitmed agiilsed metoodikad. Omavoliliselt, kasutamata kellegi teise definitsioone, ütleksin, et nende kõigi peamised märksõnad on paindlikkus, iteratiivne arendus, pidev tagasisidestamine ja koostöö.

Enne agiilsete metoodikate omaksvõtmist toimus kliendi ja IT vaheline koostöö pigem nii, et klient andis oma suure tellimuse, IT läks tegi selle omaette valmis ja tõi siis tulemuse kliendile. Selle kõigega kaasnes  kilomeetrite kaupa dokumentatsiooni (ja ka selle puudumist, aga arendajad täitsid lüngad ise), vähe osapoolte vahelist mõistmist, palju bürokraatiat, vananenud plaanidest kinnipidamist ja suure tõenäosusega tulemus, mida klient ei tellinud. Sellesse skeemi on peidetud nii palju eksimisvõimalusi, et kõike ei jõua kohe üles lugeda! (Üks kuulsamaid meeme sel teemal on lugu kiikedest). Kõige suurem oht sellise protsessi juures oli, et see, mis valmis sai, ei olnud absoluutselt see, mida vajati. Aga valmis see tehti, raha kulus ja enam parandada sai järgmise suuremahulise tellimusega.

Õnneks ei ole see enam tänapäevaste ettevõtete praktika. Sajandi alguses sõnastasid nutikad tarkvaraarendajad Agile Manifestoga agiilsuse põhiväärtused, millega loodi sellesse valdkonda uus paradigma. Toon siin need põhimõtted välja (võtsin vabaduse ise eestikeelset teksti enda jaoks suupärasemaks kohandada):

  1. Inimesed ja suhted on olulisemad kui protsessid ja arendusvahendid
  2. Töötav tarkvara on olulisem kui dokumentatsioon
  3. Koostöö kliendiga on väärtuslikum kui lepingu läbirääkimised
  4. Reageerimine muutunud oludele on olulisem kui esialgse plaani täitmine

Agiilsed metoodikad tõid täiesti teise lähenemise tarkvara arenduse protsessi, lühidalt võib selle kokku võtta nii:

  • klient ja IT teevad kogu projekti valmimise ajal koostööd, mis peab kindlustama selle, et valmiv lahendus on see, mida vajatakse;
  • tööd tehakse 2-või 3-nädalaste iteratsioonide/sprintide kaupa, mille tulemusena valmib järgmine tükike suurest pildist. Siin on suurepärane võimalus tegeleda ka ettenägematute teemade läbimõtlemisega!
  • iga sprint planeeritakse, analüüsitakse ette ning peale valmimist demotakse kliendile;
  • peale iga sprinti tehakse retro, mille eesmärk on tagasi vaadates teha edaspidi teadlikult teisiti seal, kus hästi ei läinud;
  • klient on selles protsessis aktiivselt kaasas.

Kui suurt projekti valmistada samm-haaval koos kliendiga, on õnnestumise tõenäosus sadades kordades suurem kui varasemalt kasutusel olnud praktikate korral.

Agiilsed põhimõtted sobivad ka juhtimisse!

Kui kõik eelmine kõlas loogiliselt, siis agiilne juhtimine ei pruugi kohe nii arusaadavana tunduda. Sõnastan agiilsed põhimõtted ringi juhtimise keelde.

Inimesed ja suhted on olulisemad kui … protsessid ja töövahendid

Usun siiralt, et iga kaasaegne juht nii arvab. Kui sul on head inimesed tiimis, saavad asjad tehtud. Kui on korralikult kirjeldatud protsessid ja moodsad töövahendid, ei tähenda see veel seda, et olulised asjad tehtud saavad. Olen kohanud ettevõtteid või tiime, kus “kelladele ja viledele” pööratakse palju tähelepanu, kuid inimesed ja suhted on organisatsioonis tähelepanuta jäänud. Varem või hiljem on sellel kahjuks ka omad tulemused. Muidugi, üks ei välista teist ja veel ägedam on töötada nii, et headel inimestel on ka suurepärased töövahendid (sh ülepingutamata ja loetavad protsessikirjeldused).

Tulemused on dokumentidest olulisemad

Jah, on organisatsioone, kus on dokumendid ja nende korrektne vormistamine olulisemad kui tulemused. Ning kindlasti on ka organisatsioone, kus dokumentatsioon peabki olema väga korrektselt vormistatud, sest vastasel juhul jääks vajalik tulemus tulemata (nt korrakaitseorganid vms).
Kuid üldise printsiibina võiks tänapäevane organisatsioon väärtustada inimesi iga kell rohkem kui dokumente. Väärtust loob inimene, dokument on ainult üks tema töö tulemusi.

Koostöö kliendiga/töötajaga on olulisem kui leping ja bürokraatia

Eesti kultuuris on see enamasti õnneks levinud mõtteviis – teeme mõnuga koostööd, sobivate tingimustega (pigem üldsõnaline) leping samuti vormistatud. Kuid lepingust ei aeta sõrmega järge enne, kui fataalsed probleemid seda nõuavad. Leping on pigem nagu tagala ning igapäevane koostöö ja väärtuse loomine on see, mis tegelikkuse ja tegemised dikteerib.

Reageerimine muutunud oludele on olulisem kui esialgse plaani täitmine

Tulemusi ja nende saavutamiseks mõeldud plaane peab ikka korrigeerima. On tore, kui asjad lähevad paremini – väga lihtne on siis teha suuremat tulemust eeldav plaan. Aga nii valus või ebamugav kui see ka pole, on vaja korrigeerida plaane ka siis, kui tulemused ei ole enam saavutatavad.
Olen kogenud organisatsioone, kus see ei ole tava. Juba kolmandas kvartalis oli teada, et ettevõtte soovitud tulemused ei realiseeru aasta lõpuks põhjusel või teisel. Aga nii väga oli vaja need eesmärgid ning nendega seonduv tegevusplaan muutumatuna säilitada. Ma saan aru, viimase minutini ikkagi soovitakse saada planeeritud tulemust, aga see eeldab ju muutunud oludes ka tegevuste ja plaanide muutmist, kas pole?  Minu toodud näites see võimalik ei olnud, sest plaan oli pidulikult kinnitatud eelmise aasta lõpus ja nii pidi see ka jääma.

Mis on alternatiiv? Pakun, et nii tulemusi kui ka sellega seonduvaid tegevusi tuleb regulaarselt üle vaadata. On üpris naiivne oodata, et eelmise aasta lõpus tehtud tegevusplaan selle aasta märtsi veel sobitub. Ettevõttel võiks olla kokku lepitud eesmärk/tulemus, mida nad aasta jooksul saavutada tahavad ning sellega seotud üksustel samuti oma seotud tulemused, mis üldist eesmärki saavutada aitavad. Plaane aga tehakse jooksvalt ning korra nädalas vaadatakse üle, kuidas suure eesmärgini minek kulgeb. Tänapäeva maailm muutub kiirelt ning ka äris jäävad ellu ainult kohanemisvõimelisemad.

Tarkvara arenduse protsessist saan siinkohal välja tuua paar mõnusat metoodikat, mida pea igas tiimis kasutada saab: tulemuste ja tegevuste planeerimine ning retro (ehk tagasivaade koos edasiste muutuste plaaniga). Nendest räägin järgmises postituses pikemalt.

***

Minu poolt pakutud juhtimiskoolituste agendasse on agiilne mõtlemine sisse kodeeritud.