Välearendus
Välearendus (kohati käibiv "agiilne" on naiivne poolkeelne laen;[1] inglise keeles Agile Software Development) on kiire tarkvaraarendus, kus kasutatakse agiilseid metoodikaid. Selle järgi peetakse projekti läbikukkumist tarkvara arendamise kõige kulukamaks aspektiks ning seetõttu on seda tüüpi tarkvaraarenduse eesmärk korraldada tööd viisil, mis suurendaks edu saavutamise tõenäosust. Tähtsustatakse võimet muudatustele reageerida, et olla edukas ebakindlas ja muutuvas keskkonnas[2].
Selle arendusviisi puhul leitakse, et muutused tulevad ette niikuinii ning neid tuleb hallata, mitte vältida. Projektijuhtimine rõhutab planeerimist, disaini ja dokumentatsiooni vajalikkust. See keskendub sellele, et saaks edastada kliendile kõik töötavad funktsioonid võimalikult kiiresti ning et oleks tagatud töötavad tugisüsteemid, et üleantud funktsioone oleks võimalik pidevalt toetada.[3]
Termin "agiilne" hakkas levima, kui avaldati The Manifesto for Agile Software Development[4], mis määratleb selle termini väärtused ja põhimõtted.
Agiilsed metoodikad
[muuda | muuda lähteteksti]- Pikemalt artiklis Agiilsed metoodikad
Agiilsed metoodikad on näiteks
- Scrum
- Extreme Programming (XP)
- Adaptive Software Development (ASD)
- Dynamic Systems Development Method (DSDM)
- Crystal
- Feature Driven Development (FDD)
- Lean Software Development (LSD)
- Agile Modeling (AM)
- Agile Unified Process (AUP)
Ajalugu
[muuda | muuda lähteteksti]Esimesed kirjeldused kiirest ehk väledast arendusest pärinevad aastatest 1980–1990.
2001. aastal kogunes USA Utah' osariigi Snowbirdi kuurordis arendusmeetodeid arutama 17 tarkvaraarendajat, kelle seas olid näiteks Jeff Sutherland, Ken Schwaber ja Alistair Cockburn. Põhiline põhjus oli rahulolematus tarkvara arendusega kaasnevate lisakuludega ja vajadus leida paremaid viise, kuidas tarkvara luua. Tulemusena pandi kirja üldised tarkvaraarenduse põhimõtted ehk Manifesto for Agile Software Development[5].[4]
Välearenduse meetodite puhul arvatud, et need on paremini ennustatavad, rohkem inimestele orienteeritud ning keskenduvad pigem lõpptulemusele kui töö bürokraatlikule iseloomule.[6]
2005. aastal kirjutas Alistair Cockburni ja Jim Highsmithi juhitud grupp projektijuhtimise põhimõtete, vastastikuse sõltuvuse deklaratsiooni (Declaration of Interdependence)[7], et juhtida tarkvaraprojektide juhtimist vastavalt välearenduse meetoditele.
2011. aastal lõi Agile Alliance juhendi välearenduse tavadele (2016. aastal nimetati see ümber agiilseks erialasõnastikuks)[8], mis on arenev avatud lähtekoodiga töökindlate agiilsete tavade, terminite ja elementide määratlustest, koos tõlgendustest ja kogemuste suunistest maailma agiilsetelt praktikutelt.
Välearenduse põhimõtted
[muuda | muuda lähteteksti]Agiilse tarkvaraarenduse põhimõtted [5]
- Hindame enam inimesi ja nende suhtlemist kui protsesse ja arendusvahendeid
- Hindame enam töötavat tarkvara kui täiuslikku dokumentatsiooni
- Hindame enam koostööd kliendiga, kui läbirääkimisi lepingute üle
- Hindame enam muudatustega hakkamasaamist kui algse plaani järgimist
Põhiprintsiibid
[muuda | muuda lähteteksti]Agiilse arenduse 12 põhiprintsiipi [9]
- Oluline on tagada kliendi rahulolu, vajaliku tarkvara kiire ja tihe tarnimine
- Muutuvate oludega arvestamine
- Viia muudatused kiiresti tootmisse ehk tarnida nii tihti kui võimalik
- Koostöö kliendiga, meeskond peab töötama koos kogu projekti vältel
- Töö edukuse aluseks on motiveeritud inimesed. Usalda ja toeta!
- Näost-näkku suhtlemine on kõige tõhusam viis info jagamiseks arendusmeeskonnas
- Töötav tarkvara on peamine mõõdupuu
- Jätkusuutlik arendus
- Pidev tähelepanu tehnilisel täiuslikkusel ja heal disainil
- Lihtsuse säilitamine ehk ebavajaliku töö tegemata jätmine
- Iseorganiseeruvad meeskonnad
- Muutustega kaasas käimine ja veelgi tõhusamaks muutumine
Välearenduse ja traditsioonilise projektijuhtimise erinevused
[muuda | muuda lähteteksti]Projektijuhtimise vaimse hoiaku erinevused[10]
Traditsiooniline projektijuhtimine | Välearendus |
---|---|
Projekti teostamist saab standardiseerida | Ükski projekti ei ole kunagi sama |
Klientide kaasamine on ebatõenäoline | Klientide kaasamine on kriitiline |
Nõuded peavad olema eelnevalt suures osas määratletud | Ainul arhitektuurilised nõuded peavad eelnevalt täielikult teada olema |
Kulub aega, et teha midagi, mille pealt saab klient teha tuleviku otsuseid | Tehakse esimesena seda, mis võimaldab kliendil teha tuleviku otsuseid |
Projektijuhtimise põhimõtete erinevused[10]
Traditsiooniline projektijuhtimine | Agiilne projektijuhtimine |
---|---|
Juhtimisele orienteeritud | Tehnoloogiale orienteeritud |
Tähtaegadele keskendumine | Tulemustele ja kvaliteedile keskendumine |
Üksikisikute summa | Meeskond |
Koostöö koosolekute kaudu | Pidev töö meeskonnas |
Vastutus protsesside eest | Vastutus ülesannete eest |
Teabevahetus dokumentide kaudu | Teabevahetus näost näkku |
Muutusi tõrjuv | Muutusi salliv |
Keskenduda kaitsemeetmetele | Keskendumine lihtsusele |
Tee, tee, tee | Tagasiside, tagasiside, tagasiside |
Välearenduse puhul on projektijuhtimise eelised projektipõhises organisatsioonis, maatriks organisatsiooni ees:[11]
- Äri- ja projektide otsustusprotsess on paremini integreeritud kui maatriks
- Projektimeeskondade ainus eesmärk on saavutada ettevõtte eesmärgid
- Maatriks organisatsioonis olevaid mitut, eraldi ja sageli vastuolulist eesmärki pole olemas
- Kinnine mõtteviis, mis tihtipeale takistab projekti edenemist, eriti siis, kui see hõlmab muutuvaid nõudeid, on elimineeritud
- Teie unikaalseid ja võtmeisikuid saab luua oma kõige olulisemate projektide juhtimiseks, mis määravad teie ettevõtte, ilma konkureeriva funktsionaalse juhtimise takistusteta
Viited
[muuda | muuda lähteteksti]- ↑ välearendus = agile development
- ↑ "What is Agile?".
- ↑ Kent Beck "Extreme Programming Explained", Reading, MA: Addison Wesley, 2000.
- ↑ 4,0 4,1 Kent Beck, James Grenning, Robert C. Martin, Mike Beedle, Jim Highsmith, Steve Mellor, Arie van Bennekum, Andrew Hunt, Ken Schwaber, Alistair Cockburn, Ron Jeffries, Jeff Sutherland, Ward Cunningham, Jon Kern, Dave Thomas, Martin Fowler, Brian Marick (2001) ""Manifesto for Agile Software Development"". Agile Alliance (inglise). Vaadatud 26.11.2017.
- ↑ 5,0 5,1 https://agilemanifesto.org/iso/et/manifesto.html
- ↑ Malik Jaibeer "Agile Project Management with GreenHopper 6 Blueprints", Birmingham, UK : Packt Publishing, 2013.
- ↑ David Anderson, Sanjiv Augustine, Christopher Avery, Alistair Cockburn, Mike Cohn, Doug DeCarlo, Donna Fitzgerald, Jim Highsmith, Ole Jepsen, Lowell Lindstrom, Todd Little, Kent McDonald, Pollyanna Pixton, Preston Smith, Robert Wysocki (2005) ""Declaration of Interdependence"". pmdoi.org (inglise). Originaali arhiivikoopia seisuga 27.01.2018. Vaadatud 26.11.2017.
- ↑ Kent McDonald(2016) ""How You Can Help Agile Alliance Help You"". Agile Alliance Blogi (inglise). Vaadatud 26.11.2017.
- ↑ https://agilemanifesto.org/iso/et/principles.html
- ↑ 10,0 10,1 Karol Frühauf ""Agile project management"" (PDF). INFOGEM AG (inglise). Originaali (PDF) arhiivikoopia seisuga 28.02.2020. Vaadatud 26.11.2017.
- ↑ Gary Chin "Agile Projekt Management (lk 33-34)", New York, NY: Amacom, 2004.