Välearendus

Välearendus (kohati käibiv "agiilne" on naiivne poolkeelne laen; 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. 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. Termin "agiilne" hakkas levima, kui avaldati The Manifesto for Agile Software Development, mis määratleb selle termini väärtused ja põhimõtted.  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) 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. Välearenduse meetodite puhul arvatud, et need on paremini ennustatavad, rohkem inimestele orienteeritud ning keskenduvad pigem lõpptulemusele kui töö bürokraatlikule iseloomule. 2005. aastal kirjutas Alistair Cockburni ja Jim Highsmithi juhitud grupp projektijuhtimise põhimõtete, vastastikuse sõltuvuse deklaratsiooni (Declaration of Interdependence), 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), mis on arenev avatud lähtekoodiga töökindlate agiilsete tavade, terminite ja elementide määratlustest, koos tõlgendustest ja kogemuste suunistest maailma agiilsetelt praktikutelt. Agiilse tarkvaraarenduse põhimõtted 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 Agiilse arenduse 12 põhiprintsiipi 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 Projektijuhtimise vaimse hoiaku erinevused Projektijuhtimise põhimõtete erinevused Välearenduse puhul on projektijuhtimise eelised projektipõhises organisatsioonis, maatriks organisatsiooni ees: Ä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 välearendus = agile development "What is Agile?". Kent Beck "Extreme Programming Explained", Reading, MA: Addison Wesley, 2000. 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. 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 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.