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.

Väleda tarkvaraarenduse kolme faasi jooksul – projekti alustamine, sprindi planeerimine ja demosessioonid – on kasutajatel võimalus teha muudatusi vastavalt ärikontekstile ja klientide nõudluse muutustele. See parandab arendajate ja kasutajate vahelist vastastikust mõistmist, hinnates lahenduse mooduleid, et kindlaks teha, kas ärivajadused on täidetud, tagades seeläbi kvaliteetsed tulemused.

Selle arendusviisi puhul leitakse, et muutused tulevad ette niikuinii ning neid tuleb hallata, mitte vältida. Projektijuhtimine rõhutab planeerimise, disaini ja dokumentatsiooni vajalikkust. Keskendutakse 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.

Mõiste hakkas levima, kui avaldati "The Manifesto for Agile Software Development", mis määratleb selle väärtused ja põhimõtted.

## 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
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.

## Välearenduse põhimõtted
**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

## Põhiprintsiibid
**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

## Välearenduse ja traditsioonilise projektijuhtimise erinevused
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

## Viited