Kasutaja:Georgros/Väle tarkvaraarendus

Allikas: Vikipeedia

Väle tarkvaraarendus (ingl.k Agile Software development) on tarkvaraarenduse metoodika, kus vajadused ja lahendused arenevad välja tiimitöö käigus. See hõlmab endas mitmeid erinevaid lähenemisi tarkvaraarenduses, mille kaudu nõuded ja nende lahendused kujunevad välja iseorganiseeruvate ja ristfunktsionaalsete meeskondade ja nende klientide või lõppkasutajate ühise pingutuste abil. See propageerib kohanemisvõimelist planeerimist, varajast tarnet ja jätkuvat arendamist. Väledad meetodid on paremini ennustatavad ja rohkematele inimestele orienteeritud, mis on parem ka arendajatele selles valdkonnas.[1]

Mõiste väle populariseeriti sellises kontekstis tänu Manifesto for Agile Software Development[2](eesti.k Väleda tarkvaraarenduse manifest) väljaandele. Väärtused ja printsiibid, mida selles manifestis pooldatakse, toetavad paljusid tarkvaraarenduse raamistikke.

Kuigi on palju päris elul põhinevaid tõendeid, Et väledate tarkvaraarenduste kasutuselevõtt aitab suurendada jaksu ja kiirust tarkvaraarendajate seas, tiimides ja organisatsioonides, ütlevad teised uuringud jälle vastupidist.[3]

Ajalugu[muuda | muuda lähteteksti]

Iteratiivseid meetodeid saab näha alates 1957ndast aastast ja kohanemisvõimelist tarkvaraarendust alates 1970ndate algusest[4]. 1990ndatel hakkas ilmuma mitmeid lihtsaid tarkvaraarenduse meetodeid, sest traditsionaalsed rasked meetodid said palju pahameelt, olles liiga reguleeritud, planeeritud ja hõlmates liiga palju mikromajandust.[5] 2001. aastal said kokku 17 tarkvaraarendajat Snowbird, Utah-is, et arutada lihtsaid tarkvaraarenduse meetodeid. (Kent Beck, Ward Cunningham, Dave Thomas, Jeff Sutherland, Ken Schwaber, Jim Highsmith, Alistair Cockburn, Robert C. Martin, Mike Beedle, Arie van Bennekum, Martin Fowler, James Grenning, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, ja Steve Mellor). Koos lõid nad Väleda tarkvaraarenduse manifesti.

2011 andis Agile Allience (eesti.k väle liit) välja Guide to Agile Practices (eesti.k juhend väledale tavale/praktikale). See on alati kasvav avaliku lähtekoodiga kogumik, kus on sees kõik definitsioonid, tavad, mõisted ja elemendid väledast tarvaraarendusest. [6]

Väleda tarkvaraarenduse manifest[muuda | muuda lähteteksti]

Väleda tarkvaraarenduse väärtused[muuda | muuda lähteteksti]

Võttes alustalaks nende ühise kogemuse tarkvaraarenduses ja teiste aitamises, võtsid manifesti allkirjastajad eelnevalt järgnevalt mainitud omadused manifesti põhiväärtusteks põhiväärtusteks.

1. Inimesi ja nendevahelist suhtlust rohkem, kui protsesse ja arendusvahendeid

2. Töötavat tarkvara rohkem, kui kõikehõlmavat dokumentatsiooni

3. Koostööd kliendiga rohkem, kui läbirääkimisi lepingute üle

4. Reageerimist muutunud oludele rohkem, kui algse plaani järgimist

Väleda tarkvaraarenduse printsiibid[muuda | muuda lähteteksti]

Väleda tarkvaraarenduse manifest on baseeritud 12-l põhimõttel.[7]

1. Kliendi rahulolu hea, aegsa ja pideva tarkvara edastamisega

2. Valmisolek teha tarkvaras muutusi, ka protsessi lõpusirgel

3. Tarkvara edastamine nädalatega, mitte kuudega

4. Lähedane, igapäevane koostöö firmade, individuaalide ja arendajate vahel

5. Projektide alustalaks on motiveeritud indiviidid, keda saab usaldada

6. Näost näkku suhtlus on kõige parem viis infovahetuseks

7. Töötav tarkvara on peamine viis mõõtmaks edusamme

8. Jätkusuutlik arendamine, võime hoida pidevat tempot

9. Pidev tähelepanu täiuslikkusele ja heale disainile

10. Lihtsus on hädavajalik

11. Parimad tarkvarad ja disainid tulevad iseorganiseeruvatest tiimidest

12. Tiim vaatab regulaarselt, kuidas olla efektiivsem ning on kohanemisaldis

Ülevaade[muuda | muuda lähteteksti]

Põhilised omadused[muuda | muuda lähteteksti]

Enamus väledad tarkvaraarendusviisid muudavad projektid väiksemateks osadeks, mis vähendavad algset planeerimist ja disaini. Sprindid on ajavahemikud, tüüpiliselt 1 kuni 4 nädalat, millal tehakse intensiivset tööd. Iga sprindi taga on ristfunktsionaalne tiim mis tegeleb kõige vajalikuga: planeerimise, analüüsi, disaini, koodimise ja tarkvaratestimisega. Iga sprindi lõpus näidatakse tarkvara kliendile, mis vähendab riski ja muuda tootmisprotsessi liohtsasti kohandatavaks. Sprint üksi ei taga aga toote väljalaskmist, kuid eesmärgiks on võimalik väljastus, võimalikult väheste bugidega, pärast iga sprindi lõppu. Tavaliselt on vaja mitmeid sprinte, et toode lõplikult valmiks.[8]

Tõhus ja näost näkku suhtlus[muuda | muuda lähteteksti]

Väleda tarkvaraarenduse üheks põhimõtteks on näost näkku suhtlus ja selleks on ka kõik kolleegid samas kohas, et paremini luua koostöö erinevate tiimide vahel.[9] See aitab ka vähendada küsimustele ja vastustele kuluvat aega, mis tüüpiliselt käib kas telefoni või meili teel.[10]

Väledas terkvaraarenduses on paljudel juhtudel kasutusel informatsiooniradiaator, mis on arendajate tiimi lähedal, seal saavad möödakõndijad näha projekti staatust.[11]

Fookus kvaliteedile[muuda | muuda lähteteksti]

Paarisprogrammeerimine

Kasutusel on spetsiifilised tehnikad, näiteks pidev integratsioon, automatiseeritud tootetestimine, paarisprogrammeerimine ja ka teised. See on tarvilik, et projekt oleks juba algstaadiumis hea disainiga ja seda saaks demonstreerida kliendile vastavalt vajadusel kogu protsessi vältel või vähemalt sprindi lõpus.[12]


Filosoofia[muuda | muuda lähteteksti]

Võrreldes teiste tradisiooniliste tarkvaraarendusmeetoditega, üritab väle meetod komplekseid probleeme lahendada dünaamilise ja mittelineaarsete lähenemisega. Täpseid hinnanguid, stabiilseid plaane ja ennustusi on algstaadiumis tihti raske saada ja nende peale ei taskuks ka lootma jääda. Väle tarkvaraarendus on tekkinud tänu laialdastele kogemustele ning tugineb nii varasematel õnnestumistel kui ka ebaõnnestumistel.[13]


Kriitika[muuda | muuda lähteteksti]

Väle tarkvaraarendus võib olla suurtes firmades ja teatud arendamistüüpides ebaefektiivne. Mitmed firmad arvavad, et väleda arenduse metoodikad on liiga ekstreemsed ja võtavad hübriidse lähenemise vanapärase ja väleda arendustüüpide vahel.[14]

Suurenevat omaksvõttu väledale meetodile on ka kritiseeritud, sest arvatakse, et seda kasutatakse vaid trendi järgimiseks ning meetod põhineb juba valjakujunenud teadmistele”

Väle liikumine on mõnes mõttes nagu teismeline, väga eneseteadlik, vaatab ennast kogu aeg peeglist, võtab vastu natuke kriitikat, huvitub ainult oma eakaaslastest, ei kuula vanemate nõu minevikust, sest see on ju minevikust, võtab omaks moehulluse ja uue kõnepruugi, mõneti ka ülbe. Aga mul ei ole kahtlustki, et ta areneb edasi, saab olema rohkem avatud ülejäänud maailmale, rohkem mõtlik ja sealhulgas ka efektiivsem

Philippe Kruchten
20. juuni 2011

Lisalugeminee[muuda | muuda lähteteksti]

Ristfunktsionaalne Teisi arenduse viise

Viited[muuda | muuda lähteteksti]

  1. https://www.agilealliance.org/agile101/, (Juuni 2013)
  2. http://agilemanifesto.org/. 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)
  3. https://www.semanticscholar.org/paper/Toward-Agile%3A-An-Integrated-Analysis-of-and-Field-Lee-Xia/576219e9d47fe9a582aafdaf8ecbccc8a00b28cf, Lee, Gwanhoo; Xia, Weidong (2010)
  4. https://dl.acm.org/doi/10.1145/1010865.1010868, Gilb, Tom (1 April 1981) ACM SIGSOFT Software Engineering Notes.
  5. Presley, A., J. Mills and D. Liles (1995). "Agile Aerospace Manufacturing". Nepcon East 1995, Boston.
  6. https://www.agilealliance.org/how-you-can-help-the-agile-alliance-help-you/, McDonald, Kent (1 November 2016)
  7. http://agilemanifesto.org/principles.html,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).
  8. Moran, A. (2014). Agile Risk Management.
  9. https://www.infoq.com/news/collaborative-team-space-study/, Preuss, Deborah Hartmann (13 Oktooober 2006).
  10. https://www.pearson.com/us/higher-education/program/Cockburn-Agile-Software-Development-The-Cooperative-Game-2nd-Edition/PGM38838.html, Cockburn, Alistair (2007).
  11. https://www.agilealliance.org/glossary/information-radiators/
  12. https://archive.org/details/extremeprogrammi00jeff/page/72, Jeffries, Ron; Anderson, Ann; Hendrickson, Chet (2001)
  13. Mitchell, Ian (2016). Agile Development in Practice. Tamare House
  14. http://www.informit.com/articles/article.aspx?p=1380615, Larman, Craig; Bas Vodde (13 August 2009)