Photo by Kelly Lacy
Ajalugu ja Agiilne Manifest
Esimesed agiilsed* praktikad hakkasid maailmas levima 1990-ndatel kuigi siis veel sellist sõna nagu “agiilne” ei tuntud. Mõiste “agiilsus” defineeriti 2001 a koos Agiilse Manifesti loomisega, mis kirjutati 17 eksperdi poolt ühes Utah suusakuurordis. Manifestis on sõnastatud agiilsed väärtused ja printsiibid, mis on jäänud agiilsuse vundamendiks tänaseni.
Agiilsuse definitsioon on küllalt üldsõnaline:
Agiilsus on võime luua muutusi ja neile reageerida. See on viis ebakindlas ja muutuvas keskkonnas toimetulekuks ning selles edu saavutamiseks.
(allikas: Agile Alliance)
Teisisõnu öeldes – kui sa ei tea veel 100% täpsusega, mida sa soovid luua (ja enamasti meil kristallkuuli ei ole ning kõiki detaile ette ei tea), siis agiilne lähenemine aitab sul luua maksimaalselt väärtusliku lahenduse minimaalse ajakuluga.
Agiilsus on mõtteviis, mis toetub Agiilse Manifesti 4 väärtusele ja 12 printsiibile ja mille abil saab tegutseda kiiresti muutuvas ja keerukas olukorras.
Peamine erinevus võrreldes teiste lähenemistega on fookuse hoidmine inimeste vahelisel koostööl ja iseorganiseeruval meeskonnal.
Agiilset mõtteviisi järgivad paljud erinevad metoodikad, millest osad on mõeldud ühe tiimi jaoks, osad mitme tiimi ühistöö jaoks.
Tihti arvatakse, et agiilsus kui üldine kontseptsioon oli olemas varem kui konkreetsed arendusraamistikud, aga tegelikult toimusid sündmused vastupidises järjekorras: suusakuurordis kogunesid juba Scrumi, XP, FDD ja teiste arendusmetoodikate esindajad, kes püüdsid leida kõigi metoodikate ühisosa. Näiteks Scrum tähistas 2020 aastal juba oma 25.aasta sünnipäeva 🥳
Agiilne vihmavari. Autori pilt
Agiilsuse 4 väärtust
Agiilsed väärtused defineeriti ära koos Agiilse manifestiga ja on püsinud samadena kuni tänase päevani. Selleks, et nende sisust õigesti aru saada, tuleb mõista konteksti ja lugeda neid kui tegevuste prioriteete ja mitte kui omavahel vastandatud tegevusi.
Väärtus nr 1: Hindame inimesi ja nendevahelist suhtlust rohkem, kui protsesse ja arendusvahendeid
ehk “Kõigepealt tegele inimeste ja nendevahelise suhtlusega, seejärel otsusta protsesside ja arendusvahendite üle”.
Inimesed on agiilses filosoofias kõige tähtsamad. See ei tähenda, et efektiivne arendusprotsess ja võimsad tööriistad ei oleks olulised – loomulikult on, aga just inimesed ja nende pingutused aitavad tegelikult probleeme lahendada ja väärtust luua.
Väärtus nr 2: Hindame töötavat tarkvara rohkem, kui kõikehõlmavat dokumentatsiooni
ehk “Kõigepealt loo töötav tarkvara, seejärel loo dokumentatsioon”.
Vanasti kirjutati enne arenduse alustamist valmis ülimalt põhjalik dokumentatsioon. Traditsioonilise kose meetodi (waterfall) korral kulus tarkvara ehitamiseks sageli palju aega ja kui lõpuks lahendus valmis sai, ei vastanud see enamasti kasutajate ootustele.
Agiilne lähenemine paneb fookuse kiirele tarnele rohkem kui dokumentatsioonile, et koguda lõppkasutajate tagasisidet ja teha vajalikke muudatusi võimalikult varakult.
Väärtus nr 3: Hindame koostööd kliendiga rohkem, kui läbirääkimisi lepingute üle
ehk “Kõigepealt keskendu kliendiga koostööle, seejärel (tahaksin siin lisada: viimase võimalusena) tõstata lepingulised kokkulepped”.
Nagu öeldud, fikseeriti kose meetodi korral kõigepealt detailne skoop, mis võeti lepinguga tööde aluseks. Tegelikkuses on aga võimatu kõiki lõppkasutajate vajadusi ja tagasisidet ette näha ning muudatused on paratamatud. Kui vanasti algas sellisel juhul kas aeganõudev lepingu muutmise protsess või skoobi vaidlus, siis agiilses arenduses võib lepinguliselt olla fikseeritud eelarve ja tähtaeg, aga skoobi suhtes saab tellija teha muudatusi vastavalt oma vajadustele.
Väärtus nr 4: Hindame reageerimist muutunud oludele rohkem, kui algse plaani järgimist
ehk “Kõigepelt reageeri muutunud oludele, selle asemel et algsest plaanist kõvasti kinni hoida”.
Kui kose meetodil arendades olid kõik tarkvara muudatussoovid projekti käigus arendustiimi õudusunenäoks ja lõid kogu projekti sisuliselt uppi, siis agiilses arenduses on muudatused oodatud ja teretulnud. Plaani kohendatakse kiirelt nii, et ta vastaks uuele olukorrale.
Agiilsed väärtused. Autori pilt
Agiilsuse 12 printsiipi
Lisaks neljale väärtusele sisaldab Agiilne Manifest ka 12 printsiipi, mis kasvasid küll välja tarkvaraarenduse valdkonnast, aga on tänaseks levinud juba kõigisse eluvaldkondadesse.
- Kõige olulisem on tagada kliendi rahulolu, tarnides talle vajalikku tarkvara võimalikult kiiresti ja tihti.
- Mõistame muutuvaid olusid, isegi kui need ilmnevad arenduse lõppjärgus. Agiilsed meetodid pööravad sellised muutused meie kliendi konkurentsieeliseks.
- Tarnime tarkvara nii tihti kui võimalik, soovitavalt iga paari nädala kuni paari kuu tagant.
- Valdkonna spetsialistid ja tarkvaraarendajad peavad töötama igapäevaselt koos kogu projekti vältel.
- Projekti edukuse aluseks on motiveeritud inimesed. Loo neile meeldiv ja toetav töökeskkond ning nad saavad iseseisvalt tööga hakkama.
- Kõige tõhusam ja tulemuslikum viis info jagamiseks arendusmeeskonnas on näost näkku vestlus.
- Edu peamiseks mõõdupuuks on töötav tarkvara.
- Agiilse tarkvaraarenduse protsessid soodustavad jätkusuutlikku arendust. See tähendab, et projektiga saab samas tempos jätkata määramata aja jooksul.
- Tehnilist täiuslikkust ja head disaini pideva tähelepanu all hoides tagatakse tarkvaraarenduse kiirus ja paindlikkus.
- Lihtsus – ebavajaliku töö tegematajätmise kunst – on väga oluline.
- Parimad arhitektuurilised lahendused, nõuded ja disain tekivad iseorganiseeruvates meeskondades.
- Meeskond otsib regulaarselt võimalusi saamaks veelgi tõhusamaks ja muudab end vastavalt vajadusele.
Kiire kontroll – kas järgid agiilset mõtteviisi?
Siin on lühike küsimustik, mis aitab sul analüüsida kui agiilne sa oled ja on piisavalt üldine, sobides eri valdkondade jaoks.
- Sa eelistad inimestega vahetut suhtlemist pika dokumendi lugemise/kirjutamise asemel
- Sa oled valmis muutusteks ja tervitad neid
- Sa hindad lihtsust ja ütled “ei” ebavajalikule tööle
- Sa eelistad vahetut koostööd äripoole ja arendustiimi vahel
- Sa tarnid tarkvara (või muid tulemusi) kiiresti ja tihti, vähemalt korra kuus
- Sinu peamisteks edu mõõdikuteks on kliendi rahulolu ja loodud väärtus
- Sa otsid pidevalt võimalusi kuidas edasi areneda
- Sa töötad iseorganiseeruvas ja multifunktsionaalses tiimis
Kui vastasid enamustele küsimustele “jah”, siis on õnnitlen sind! Sulle on agiilne mõtteviis tuttav ja ilmselt kohaned muudatustega märksa kiiremini kui paljud teised inimesed. See aga loob omakorda suure eelise tänapäevases kiiresti muutuvas maailmas.
*Kuigi Eestis on agiilse arenduse kohta käibel ka termin “välearendus”, siis jään “agiilsuse” kui rohkem levinud termini juurde. Ma usun, et küsimused “Kas te arendate väledalt?” ja “Millist välearendusmetoodikat te kasutate?” jääksid lihtsalt paljudele arusaamatuks. Samadel põhjustel eelistan kasutada sõna “coach” eestikeelse sõna “koots” asemel.
Samal teemal
Mis on RICE mudel tootearenduses?
Tootearenduses ei ole meil kunagi piisavalt aega ega raha, et kõiki soove ellu viia. Tooteomanikud kaaluvad pidevalt, milliseid arendusi teha ja millised tegemata jätta ning õigeid otsuseid ei ole sugugi lihtne teha. RICE mudel aitab meil tööde prioriseerimisel kiiremini õigemaid otsuseid teha.
Tooteomaniku 8 suurimat viga
Tooteomaniku roll on kõige tähtsam roll tarkvaraarenduse meeskonnas. See roll ei ole kaugeltki lihtne, vastutusvaldkond on suur ja kirju, töökoormus tavaliselt samuti ja nii võibki juhtuda, et kuskilt hakkavad “õmblused kärisema”. Olen kokku pannud kaheksa enim levinud tooteomaniku viga, mis on tootearenduses kõige suurema mõjuga.
Agiilne mõtteviis ja müüdid selle ümber
Mõistet “agiilne” on ilmselt paljud inimesed kuulnud erinevates kontekstides – nii koerte treeningutest rääkides, IT ja tarkvaraarenduse juttudes, organisatsiooni juhtimise teemades, ja mujal. Kirjutan lahti 9 müüti, mis mõiste “agiilne” ümber ringlevad ja mida olen oma töö käigus tihti kohanud.
Iga uus kontakt on võimalus uueks ja põnevaks koostööks - kirjuta või helista mulle ja arutame kuidas saaksin Sind aidata.
Esimene konsultatsioon ja pakkumise tegemine on alati tasuta.
[…] Mis on agiilsus? […]
[…] Mis on agiilsus? […]
“Väärtus nr 2: Hindame töötavat tarkvara rohkem, kui kõikehõlmavat dokumentatsiooni” niimoodi saab kirjutada vaid inimene, kes pole kunagi pidanud kellegi teise poolt kirjutatud tarkvarast vigu otsima.. üldiselt väga ohtlik mõtteavaldus
Madis, aitäh mõtte eest!
Olen nõus, et kui seda üksikut lauset lugeda, siis tundub kuidagi väga vale, aga siin tuleb konteksti ja tegeliku mõttega arvestada. Selle agiilse väärtuse juured on ajas, mil tarkvaraprojekti alustati sadade lehekülgede pikkuse detailanalüüsi kirjutamisega, seejärel alustati programmeerimisega, mis kestis kuid ja vahest ka aastaid enne kui lõppkasutajatele midagi testimisse anti (arendus waterfall-stiilis).
Agiilne lähenemine ei väärtusta just seda enne projekti mega-dokumentatsiooni kirjutamist, kus püütakse kogu funktsionaalsus kuni viimse koma ja nupu paigutuseni paika panna.
Õigem on luua alguses visioon ja üldkirjeldus, ning seejärel täpsustada detailid enne iga arendustsükli/sprindi algust. Selline lähenemine annab võimaluse jooksvalt kohaneda uute muudatustega ja luua lõppkokkuvõttes suuremat väärtust.
Aga dokumentatsioon luuakse alati. Korralik pädev dokumentatsioon, mis tekib projekti jooksul ja mida hoitakse koguaeg värskena, on iga tarkvaraprojekti oluline ja vajalik osa. Muidu läheb elu väga raskeks, täpselt nii nagu ütlesid 🙂
[…] Mis on agiilsus? […]