Välearendus

tarkvaraarenduse metoodika
(Ümber suunatud leheküljelt Agiilne projektijuhtimine)

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

  Pikemalt artiklis Agiilsed metoodikad

Agiilsed metoodikad on näiteks

Ajalugu muuda

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

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

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

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

  1. välearendus = agile development
  2. "What is Agile?".
  3. Kent Beck "Extreme Programming Explained", Reading, MA: Addison Wesley, 2000.
  4. 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. 5,0 5,1 https://agilemanifesto.org/iso/et/manifesto.html
  6. Malik Jaibeer "Agile Project Management with GreenHopper 6 Blueprints", Birmingham, UK : Packt Publishing, 2013.
  7. 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.
  8. Kent McDonald(2016) ""How You Can Help Agile Alliance Help You"". Agile Alliance Blogi (inglise). Vaadatud 26.11.2017.
  9. https://agilemanifesto.org/iso/et/principles.html
  10. 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.
  11. Gary Chin "Agile Projekt Management (lk 33-34)", New York, NY: Amacom, 2004.