Agile programinės įrangos kūrimas yra a programinės įrangos kūrimo metodika kuri vertina lankstumą, bendradarbiavimą ir klientų pasitenkinimą. Jis pagrįstas Agile Manifesto – programinės įrangos kūrimo principų rinkiniu, kuriame pirmenybė teikiama asmenims ir sąveikai, veikiančiai programinei įrangai, bendradarbiavimui su klientais ir reagavimui į pokyčius.
Judrus programinės įrangos kūrimas yra pasikartojantis ir laipsniškas požiūris į programinės įrangos kūrimas pabrėžiama, kaip svarbu greitai ir dažnai pristatyti veikiantį produktą. Tai apima glaudų kūrėjų komandos ir kliento bendradarbiavimą, siekiant užtikrinti, kad produktas atitiktų jų poreikius ir lūkesčius.
Turinys
- Kodėl naudojamas Agile?
- 4 pagrindinės judrios programinės įrangos kūrimo vertybės
- 12 Agilios programinės įrangos kūrimo metodikos principai
- Agile programinės įrangos kūrimo procesas:
- Agile programinės įrangos kūrimo ciklas:
- Agile programinės įrangos kūrimo projektavimo procesas:
- Agile programinės įrangos kūrimo pavyzdys:
- Agile programinės įrangos kūrimo pranašumai:
- Agile programinės įrangos kūrimo trūkumai:
- Agile programinės įrangos kūrimo praktika:
- Agile programinės įrangos kūrimo pranašumai, palyginti su tradiciniais programinės įrangos kūrimo metodais:
Kodėl naudojamas Agile?
- Apčiuopiamos vertės kūrimas: „Agile“ teikia didelį prioritetą tam, kad projekte kuo greičiau sukurtų apčiuopiamą vertę. Klientai gali pasinaudoti ankstyvu pažadėtų pranašumų pristatymu ir galimybe greitai pateikti atsiliepimus bei pakeitimus.
- Susikoncentruokite į pridėtinės vertės darbą : Agile metodika skatina komandas sutelkti dėmesį į funkcinių ir pridėtinės vertės produktų gaminimą, taip sumažinant laiką ir energiją, skiriamą neesminėms užduotims atlikti.
- Judrus kaip mąstymas: Agile yra kultūros pokytis, kuriame vertinamas prisitaikymas, bendradarbiavimas ir kliento laimės. Tai suteikia komandos nariams daugiau autoriteto ir skatina bendradarbiauti bei optimistišką darbo atmosferą.
- Greitas reagavimas į pokyčius: Agile skatina kultūrą, leidžiančią komandoms greitai reaguoti į nuolat besikeičiančius prioritetus ir reikalavimus. Šis prisitaikymas ypač naudingas ekonomikos ar technologijų sektoriuose, kuriuose vyksta greiti pokyčiai.
- Reguliarūs demonstracijos: Agile technika daug dėmesio skiria reguliariems projekto progreso demonstravimui. Dėl šio skaidrumo suinteresuotosios šalys gali aiškiai matyti projekto būseną, būsimas problemas ir naujas funkcijas.
- Daugiafunkcinės komandos: Agile skatina savarankiškai besiorganizuojančias, įvairias funkcijas atliekančias komandas, kurios efektyviai dalijasi informacija, efektyviau bendrauja ir jaučiasi labiau kaip vienetas.
4 pagrindinės judrios programinės įrangos kūrimo vertybės
Agile programinės įrangos kūrimo metodologijos manifeste aprašomos keturios pagrindinės Agile vertybės kuriant programinę įrangą.

4 Agile vertybės
- Asmenys ir sąveika su procesais ir įrankiais
- Darbinė programinė įranga per išsamią dokumentaciją
- Bendradarbiavimas su klientais derantis dėl sutarties
- Reagavimas į pokyčius, o ne laikantis plano
12 Agile programinės įrangos kūrimo principai
Agile Manifestas remiasi keturiomis vertybėmis ir dvylika principų, kurie sudaro metodikų pagrindą.

12 Agiliosios metodikos principai
Šie principai apima:
- Klientų pasitenkinimo užtikrinimas ankstyvu programinės įrangos pristatymu.
- Būti atviram besikeičiantiems reikalavimams kūrimo etapuose.
- Dažnai pristatoma veikianti programinė įranga, daugiausia dėmesio skiriant laikotarpiams.
- Bendradarbiavimo tarp verslo suinteresuotųjų šalių ir kūrėjų skatinimas kaip elementas.
- Projektų struktūrizavimas aplink asmenis. Suteikti jiems reikiamą aplinką ir paramą.
- Pirmenybę teikite bendravimui akis į akį, kai tik reikia.
- Darbo programinę įrangą vertinant kaip pažangos matą.
- Tobulėjimo skatinimas leidžiant komandoms išlaikyti tempą neribotą laiką.
- Atkreipti dėmesį į meistriškumą ir gerą projektavimo praktiką.
- Paprastumo pripažinimas esminiu veiksniu, siekiant maksimaliai padidinti produktyvumą sumažinant darbą.
- Savaime besiorganizuojančių komandų skatinimas kaip požiūris į sistemų projektavimą ir kūrimą.
- Reguliariai apsvarstykite, kaip padidinti efektyvumą ir atitinkamai koreguoti.
Judrus programinės įrangos kūrimo procesas

Agile programinės įrangos kūrimas
avl medis
- Reikalavimų surinkimas : Surenkami kliento reikalavimai programinei įrangai ir nustatomi prioritetai.
- Planavimas: Kūrimo komanda sukuria programinės įrangos pristatymo planą, įskaitant funkcijas, kurios bus pristatytos kiekvienoje iteracijoje.
- Vystymas: Kūrimo komanda dirba kurdama programinę įrangą, naudodama dažnas ir greitas iteracijas.
- Testavimas: Programinė įranga yra kruopščiai išbandyta, siekiant užtikrinti, kad ji atitinka kliento reikalavimus ir yra aukštos kokybės.
- Diegimas: Programinė įranga yra įdiegta ir pradėta naudoti.
- Priežiūra: Programinė įranga prižiūrima siekiant užtikrinti, kad ji ir toliau atitiktų kliento poreikius ir lūkesčius.
Agile programinės įrangos kūrimas yra plačiai naudojamas programinės įrangos kūrimo komandos ir yra laikomas lanksčiu ir pritaikomu požiūriu į programinės įrangos kūrimą, kuris puikiai atitinka kintančius reikalavimus ir greitą programinės įrangos kūrimo tempą.
„Agile“ – tai tam tikrą laiką apribotas, pasikartojantis programinės įrangos pristatymo metodas, kuris palaipsniui kuria programinę įrangą nuo projekto pradžios, o ne bando pateikti visą iš karto.
Agile programinės įrangos kūrimo ciklas
Pažiūrėkime trumpą apžvalgą, kaip vystymasis vyksta Agile filosofijoje.
- koncepcija
- pradžia
- iteracija / konstravimas
- paleisti
- gamyba
- išėjimas į pensiją

Agile programinės įrangos kūrimo ciklas
- Žingsnis 1: Pirmame žingsnyje nustatoma kiekvieno galimo projekto koncepcija ir verslo galimybės bei įvertinama, kiek laiko ir darbo reikės projektui užbaigti. Remiantis jų techniniu ir finansiniu gyvybingumu, projektams gali būti teikiama pirmenybė ir nustatoma, kuriuos iš jų verta tęsti.
- Žingsnis 2: Antrajame etape, vadinamame pradžia, klientas konsultuojamas dėl pradinių reikalavimų, parenkami komandos nariai ir užtikrinamas finansavimas. Be to, turėtų būti sudarytas tvarkaraštis, kuriame būtų nurodytos kiekvienos komandos pareigos ir tikslus laikas, per kurį turėtų būti baigtas kiekvieno sprinto darbas.
- Žingsnis 3: komandos pradeda kurti funkcinę programinę įrangą trečiuoju žingsniu, iteracija / konstravimu, remdamosi reikalavimais ir nuolatiniu grįžtamuoju ryšiu. Iteracijos, taip pat žinomos kaip pavieniai kūrimo ciklai, yra Agile programinės įrangos kūrimo ciklo pagrindas.
Agile programinės įrangos kūrimo projektavimo procesas
- Agile kūrime projektavimas ir diegimas laikomi pagrindine programinės įrangos proceso veikla.
- Projektavimo ir įgyvendinimo fazė taip pat apima kitą veiklą, pvz., reikalavimų nustatymą ir testavimą.
- Taikant judrų metodą, iteracija vyksta įvairiose veiklose. Todėl reikalavimai ir dizainas kuriami kartu, o ne atskirai.
- Reikalavimų paskirstymas ir dizaino planavimas bei plėtra, atliekama palaipsniui. Priešingai nei įprastas modelis, kai reikia surinkti reikalavimus, kad pereitumėte į projektavimo ir kūrimo etapą, tai suteikia Agile plėtrai papildomo lankstumo.
- Judrus procesas daugiau dėmesio skiria kodo kūrimui, o ne dokumentavimui.
Agile programinės įrangos kūrimo pavyzdys
Panagrinėkime pavyzdį, kad aiškiai suprastume, kaip veikia judrus. Programinės įrangos įmonė, pavadinta ABC nori sukurti naują žiniatinklio naršyklę naujausiam savo operacinės sistemos leidimui. Užduoties terminas – 10 mėnesių. Įmonės vadovas paskyrė dvi komandas A komanda ir B komanda šiai užduočiai. Siekdamas motyvuoti komandas, įmonės vadovas sako, kad pirmajai komandai, kuriai naršyklę, bus padidintas atlyginimas ir savaitės visiškai remiamas kelionių planas. Su savo laukinių kelionių fantazijų svajonėmis abi komandos leidosi į interneto naršyklės kelionę. A komanda nusprendė žaisti pagal knygą ir kūrimui nusprendė pasirinkti krioklio modelį. Komanda B po sunkių diskusijų nusprendė žengti tikėjimo šuolį ir pasirinkti Agile kaip savo plėtros modelį. A komandos plėtros planas yra toks:
- Reikalavimų analizė ir Susibūrimas – 1,5 mėn
- Sistemos projektavimas – 2 mėn
- Kodavimo etapas – 4 mėn
- Sistemos integravimas ir testavimas – 2 mėn
- Vartotojo priėmimo testas – 5 savaitės
B komandos plėtros planas yra toks:
- Kadangi tai buvo „Agile“, projektas buvo suskaidytas į keletą iteracijų.
- Iteracijos yra vienodos trukmės.
- Kiekvienos iteracijos pabaigoje turi būti pristatytas veikiantis produktas su nauja funkcija.
- Užuot skyrę 1,5 mėnesio reikalavimams rinkti, jie nuspręs, kokias pagrindines produkto savybes reikia atlikti, ir nuspręs, kurias iš šių funkcijų galima sukurti per pirmąją iteraciją.
- Visos likusios funkcijos, kurių negalima pateikti per pirmąją iteraciją, bus pateiktos kitoje paskesnėje iteracijoje, atsižvelgiant į prioritetą.
- Pirmųjų iteracijų pabaigoje komanda pateiks veikiančią programinę įrangą su pagrindinėmis pagrindinėmis funkcijomis.
Komanda dėjo visas pastangas, kad produktas būtų užbaigtas. Tačiau staiga, dėl greitai besikeičiančios aplinkos, įmonės vadovas sugalvojo visiškai naują funkcijų rinkinį, kurį norėjosi įdiegti kuo greičiau ir norėjo išstumti veikiantį modelį per 2 dienas. A komanda dabar buvo taisoma, jie vis dar buvo projektavimo etape ir dar nepradėjo koduoti ir neturėjo veikiančio modelio, kurį būtų galima rodyti. Be to, jiems praktiškai nebuvo įmanoma įdiegti naujų funkcijų, nes krioklio modelis negrįžtama į seną etapą, kai pereinate į kitą etapą, o tai reiškia, kad jie vėl turės pradėti nuo pirmojo. Tai pareikalautų didelių išlaidų ir daug viršvalandžių. B komanda daugeliu aspektų lenkė komandą A, visa tai dėka Agile Development. Jie taip pat turėjo veikiantį produktą, atitinkantį daugumą pagrindinių reikalavimų nuo pat pirmojo padidinimo. Ir tai buvo paprastas dalykas jiems pridėti naujus reikalavimus. Jiems tereikėjo suplanuoti šiuos reikalavimus kitam žingsniui ir tada juos įgyvendinti.
Privalumai Agile programinės įrangos kūrimas
- Programinės įrangos diegimas yra greitesnis ir taip padeda didinti kliento pasitikėjimą.
- Gali geriau prisitaikyti prie greitai kintančių reikalavimų ir greičiau reaguoti.
- Padeda gauti tiesioginį grįžtamąjį ryšį, kuris gali būti panaudotas tobulinant programinę įrangą kitame žingsnyje.
- Žmonės – ne procesas. Žmonėms ir sąveikai teikiamas didesnis prioritetas nei procesams ir įrankiams.
- Nuolatinis dėmesys techninei kompetencijai ir geram dizainui.
- Padidėjęs bendradarbiavimas ir bendravimas: Agile programinės įrangos kūrimo metodika pabrėžti bendradarbiavimą ir bendravimą tarp komandos narių, suinteresuotųjų šalių ir klientų. Tai leidžia geriau suprasti, geriau suderinti ir padidinti visų dalyvaujančių asmenų dalyvavimą.
- Lankstumas ir prisitaikymas: Agile metodikos sukurtos taip, kad būtų lanksčios ir pritaikomos, kad būtų lengviau reaguoti į reikalavimų, prioritetų ar rinkos sąlygų pokyčius. Tai leidžia komandoms greitai pakoreguoti savo požiūrį ir sutelkti dėmesį į vertės teikimą.
- Pagerinta kokybė ir patikimumas: Agile metodikose didelis dėmesys skiriamas testavimui, kokybės užtikrinimui ir nuolatiniam tobulėjimui. Tai padeda užtikrinti, kad programinė įranga būtų teikiama kokybiškai ir patikimai, sumažinant defektų ar problemų, galinčių turėti įtakos vartotojo patirčiai, riziką.
- Padidėjęs klientų pasitenkinimas: Agile metodika teikia pirmenybę klientų pasitenkinimui ir sutelkia dėmesį į vertės teikimą klientui. Įtraukdamos klientus į visą kūrimo procesą, komandos gali užtikrinti, kad programinė įranga atitiks jų poreikius ir lūkesčius.
- Padidėjusi komandos moralė ir motyvacija: Judrios metodikos skatina bendradarbiauti, palaikančią ir pozityvią darbo aplinką. Tai gali padidinti komandos moralę, motyvaciją ir įsitraukimą, o tai savo ruožtu gali lemti didesnį produktyvumą, aukštesnę darbo kokybę ir geresnius rezultatus.
Trūkumai Agile programinės įrangos kūrimas
- Didelių programinės įrangos projektų atveju sunku įvertinti pastangų, reikalingų pradiniuose programinės įrangos kūrimo ciklo etapuose.
- Agile Development yra labiau orientuota į kodą ir sukuria mažiau dokumentų.
- Judrus vystymasis labai priklauso nuo kliento indėlio. Jei kliento rezultato vizija yra dviprasmiška, labai tikėtina, kad projektas nukryps nuo vėžių.
- Didelėse organizacijose sunkesnis bendravimas akis į akį.
- Tik vyresni programuotojai gali priimti tokius sprendimus, kurių reikia kūrimo proceso metu. Vadinasi, naujiems programuotojams sudėtinga prisitaikyti prie aplinkos.
- Nuspėjamumo trūkumas: Agile Development labai priklauso nuo klientų atsiliepimų ir nuolatinės iteracijos, todėl gali būti sunku numatyti projekto rezultatus, terminus ir biudžetus.
- Ribotos apimties valdymas: „Agile Development“ sukurta taip, kad būtų lanksti ir pritaikoma, o tai reiškia, kad apimties pakeitimus galima lengvai pritaikyti. Tačiau tai taip pat gali sukelti apimties šliaužimą ir projekto apimties kontrolės stoką.
- Trūksta dėmesio bandymams: Agile Development daugiau dėmesio skiria greitam veikiančio kodo pristatymui, todėl gali trūkti dėmesio testavimui ir kokybės užtikrinimui. Dėl to gali atsirasti klaidų ir kitų problemų, kurios gali likti nepastebėtos iki vėlesnių projekto etapų.
- Komandos perdegimo rizika: Judrus vystymasis gali būti intensyvus ir greitas, su dažnais sprintais ir terminais. Tai gali sukelti didelį spaudimą komandos nariams ir sukelti perdegimą, ypač jei komandai neskiriama pakankamai laiko poilsiui ir atsigavimui.
- Trūksta struktūros ir valdymo: Agile Development dažnai yra mažiau formalus ir struktūrizuotas nei kitos plėtros metodikos, todėl gali trūkti valdymo ir priežiūros. Tai gali sukelti nenuoseklius procesus ir praktiką, o tai gali turėti įtakos projekto kokybei ir rezultatams.
Agile yra sistema, apibrėžianti, kaip turi būti kuriama programinė įranga. Agile nėra vienas metodas, jis reprezentuoja įvairius metodų ir praktikų rinkinius, kurie vadovaujasi manifeste pateiktais vertybių teiginiais. Judrūs metodai ir praktika nežada išspręsti visų programinės įrangos pramonės problemų (joks programinės įrangos modelis niekada negali). Tačiau jie tikrai padeda sukurti kultūrą ir aplinką, kurioje atsiranda sprendimai.
Judrus programinės įrangos kūrimas yra kartotinis ir laipsniškas programinės įrangos kūrimo metodas. Jame akcentuojamas kūrėjų komandos ir kliento bendradarbiavimas, lankstumas ir prisitaikymas prie besikeičiančių reikalavimų bei veikiančios programinės įrangos pristatymas trumpomis iteracijomis.
Agile Manifesto, kuriame išdėstyti judrios plėtros principai, vertina individus ir sąveiką, veikiančią programinę įrangą, klientų bendradarbiavimą ir reakciją į pokyčius.
Praktikos iš Agile programinės įrangos kūrimas
- Scrum: „Scrum“ yra judrios programinės įrangos kūrimo sistema, apimanti pasikartojančius ciklus, vadinamus sprintais, kasdieniais susitikimais ir produkto atsilikimu, kuriam klientas teikia pirmenybę.
- Kanban: Kanban yra vaizdinė sistema, padedanti komandoms valdyti savo darbą ir tobulinti procesus. Tai apima lentos su stulpeliais, skirtų skirtingiems kūrimo proceso etapams, naudojimą, o kortelių ar lipnių lapelių - darbo elementams.
- Nuolatinis integravimas: Nuolatinis integravimas – tai dažno kodo pakeitimų sujungimo į bendrą saugyklą praktika, kuri padeda nustatyti ir išspręsti konfliktus ankstyvame kūrimo proceso etape.
- Bandymu pagrįstas kūrimas: Test-Driven Development (TDD) yra kūrimo praktika, kuri apima automatinių testų rašymą prieš rašant kodą. Tai padeda užtikrinti, kad kodas atitiktų reikalavimus ir sumažintų defektų tikimybę.
- P Oro programavimas: Porinis programavimas apima du kūrėjus, kurie dirba kartu su tuo pačiu kodu. Tai padeda pagerinti kodo kokybę, dalytis žiniomis ir sumažinti defektų tikimybę.
Agile programinės įrangos kūrimo pranašumai, palyginti su tradiciniais programinės įrangos kūrimo metodais
- Padidėjęs klientų pasitenkinimas: Agile plėtra apima glaudų bendradarbiavimą su klientu, kuris padeda užtikrinti, kad programinė įranga atitiktų jo poreikius ir lūkesčius.
- Greitesnis pateikimas į rinką: Agile plėtra pabrėžia veikiančios programinės įrangos pristatymą trumpomis iteracijomis, o tai padeda greičiau patekti į rinką.
- Sumažėjusi rizika: Judrus kūrimas apima dažną testavimą ir grįžtamąjį ryšį, kuris padeda nustatyti ir išspręsti problemas ankstyvame kūrimo proceso etape.
- Patobulintas komandos bendradarbiavimas: Agile plėtra pabrėžia bendradarbiavimą ir bendravimą tarp komandos narių, o tai padeda pagerinti produktyvumą ir moralę.
- Pritaikymas pokyčiams: „Agile Development“ sukurta taip, kad būtų lanksti ir pritaikoma, o tai reiškia, kad projekto apimties, reikalavimų ir laiko juostos pakeitimus galima lengvai pritaikyti. Tai gali padėti komandai greitai reaguoti į kintančius verslo poreikius ir rinkos poreikius.
- Geresnės kokybės programinė įranga: Agile Development pabrėžia nuolatinį testavimą ir grįžtamąjį ryšį, kuris padeda nustatyti ir išspręsti problemas ankstyvame kūrimo proceso etape. Tai gali lemti aukštesnės kokybės programinę įrangą, kuri yra patikimesnė ir mažiau linkusi į klaidas.
- Padidėjęs skaidrumas: Agile Development apima dažną komandos ir kliento bendravimą ir bendradarbiavimą, o tai padeda pagerinti projekto būsenos ir progreso skaidrumą ir matomumą. Tai gali padėti sukurti klientų ir kitų suinteresuotųjų šalių pasitikėjimą.
- Didesnis našumas: Agile Development pabrėžia komandinį darbą ir bendradarbiavimą, o tai padeda pagerinti produktyvumą ir sumažinti atliekų kiekį. Tai gali padėti greičiau pristatyti veikiančią programinę įrangą su mažiau defektų ir perdaryti.
- Patobulinta projekto kontrolė: Agile Development akcentuoja nuolatinį projektų metrikų stebėjimą ir matavimą, o tai padeda pagerinti projektų kontrolę ir sprendimų priėmimą. Tai gali padėti komandai nenutrūkti ir priimti duomenimis pagrįstus sprendimus viso kūrimo proceso metu.
Apibendrinant galima pasakyti, kad „Agile“ programinės įrangos kūrimas yra populiarus programinės įrangos kūrimo metodas, pabrėžiantis bendradarbiavimą, lankstumą ir veikiančios programinės įrangos pristatymą trumpomis iteracijomis. Jis turi keletą pranašumų, palyginti su tradiciniais programinės įrangos kūrimo metodais, įskaitant didesnį klientų pasitenkinimą, greitesnį pateikimą į rinką ir mažesnę riziką.
Susiję įrašai:
- Agile programinės įrangos kūrimo metodika | Sistema, principai ir privalumai
- 50 geriausių judrios programinės įrangos kūrimo interviu klausimų