Model Agil
Metodologia flexibilă (agilă) ajută la reducerea riscului în dezvoltarea software-ului prin mutarea fluxului de lucru în mai multe cicluri mici. Aceste cicluri se numesc iterații și durează de obicei două până la trei săptămâni.
O iterație este ca un mic proiect software care constă din sarcini, fiecare dintre ele îmbunătățește funcționalitatea. Acestea includ: elaborarea unui plan, evaluarea cerințelor, convenirea asupra unui proiect, scrierea codului, testarea și crearea documentației tehnice.
O iterație nu este de obicei suficientă pentru o lansare de software cu drepturi depline. Cu toate acestea, lucrul bun despre Agile este că părți mici ale proiectului sunt gata pentru evaluare la sfârșitul fiecărei iterații. Acest lucru permite membrilor echipei să schimbe prioritățile pentru lucrări ulterioare fără a aștepta lansarea finală.
Aplicând o metodologie de dezvoltare „agilă”, puteți vedea un rezultat concret după fiecare iterație. Adică, dezvoltatorul poate înțelege dacă rezultatul muncii sale îndeplinește cerințele sau nu. Acesta este unul dintre avantajele importante ale modelului flexibil.
În ceea ce privește contra, atunci când utilizați Agile, uneori este dificil să estimați costul resurselor de muncă și bugetul proiectului. Dacă luăm opțiunile pentru aplicarea practică a modelului flexibil, atunci cea mai cunoscută dintre ele este Extreme Programming (XP).
XP se bazează pe întâlniri scurte ale membrilor echipei care au loc în fiecare zi și întâlniri regulate (o dată pe săptămână sau mai puțin). La mitingurile zilnice ( standup zilnic) se discută de obicei:
- rezultatele curente ale muncii;
- o listă de sarcini care trebuie îndeplinite de fiecare membru al echipei;
- dificultăţile întâmpinate şi modalităţile de rezolvare a acestora.
Manifest
Agile este o întreagă direcție în dezvoltare, așa că regulile de lucru la ea sunt declarate într-un document special - Agile Manifesto. Aceasta include atât practicile, cât și principiile după care echipa ar trebui să lucreze.
Agile Manifesto constă din 4 idei fundamentale și 12 principii.
Idei cheie:
- colaborarea între dezvoltatori este mai importantă decât instrumentele;
- versiunea de lucru a produsului are prioritate față de documentație;
- înțelegerea reciprocă între echipă și client este mai importantă decât termenii contractului;
- Planul inițial poate fi întotdeauna schimbat dacă este necesar.
În ceea ce privește cele 12 principii ale Agile, iată-le:
- prioritatea principală este conformitatea programului finalizat cu așteptările clientului;
- schimbarea condițiilor este permisă în orice etapă, chiar și în etapa finală de dezvoltare (dacă aceasta poate îmbunătăți calitatea și competitivitatea software-ului);
- livrarea regulată a versiunilor de lucru ale produsului software (la fiecare 14 zile, lună sau trimestrial);
- cheia succesului este interacțiunea regulată între client și dezvoltatori (de preferință zilnic);
- proiectele ar trebui să fie construite în rândul celor care sunt interesați de ele, astfel de oameni să li se asigure condițiile necesare pentru muncă și tot felul de sprijin;
- cea mai bună modalitate de a împărtăși informații într-o echipă este o întâlnire personală;
- versiunea de lucru a software-ului este cel mai bun indicator al progresului;
- toate părțile interesate trebuie să fie capabile să mențină ritmul de lucru dorit pe tot parcursul procesului de dezvoltare software;
- îmbunătățirea tehnică și designul bun îmbunătățesc flexibilitatea;
- este important să-l păstrați simplu și să nu creați în exces;
- cele mai bune rezultate se obțin de la acele echipe care sunt capabile să se autoorganizeze;
- membrii echipei ar trebui să se gândească în mod regulat la modalități de a-și îmbunătăți eficiența prin schimbarea fluxului de lucru.
Potrivit manifestului Agile, un proces bun de dezvoltare software depinde direct de oamenii care sunt implicați în acest proces. Pentru a face acest lucru, trebuie să organizați interacțiunea lor cât mai eficient posibil, să creați cea mai organizată echipă.
Metodologii
Există, de asemenea, mai multe metodologii în Manifestul Agile care explică valorile și principiile:
- Modelare agilă;
- Proces unificat Agile;
- Metoda agilă a datelor
- Dezvoltare rapidă a aplicațiilor (DSDM);
- Proces unificat esențial;
- programare extremă;
- dezvoltare bazată pe caracteristici;
- Devenirea reală;
- Deschide;
- Scrum.
Agile Modeling este o colecție de principii, termeni și practici care accelerează și simplifică dezvoltarea modelelor software și a documentației.
Scopul Agile Modeling este de a îmbunătăți modelarea și documentarea. Este important să rețineți că aceasta nu include codificarea, testarea sau problemele legate de controlul, implementarea și suportul proiectului. Cu toate acestea, această metodologie include revizuirea codului.
Agile Unified Process este o metodologie care facilitează aproximarea (modelul) de către utilizatori. De obicei folosit pentru a dezvolta software comercial.
Agile Data Method - câteva metodologii similare în care condițiile clienților sunt realizate prin cooperarea mai multor echipe.
DSDM - această abordare diferă de celelalte prin faptul că, împreună cu dezvoltatorii, utilizatorii viitorului produs iau parte activ la ea.
Dezvoltarea bazată pe caracteristici este o metodologie de dezvoltare care are o limită de timp: „fiecare caracteristică trebuie implementată nu mai mult de două săptămâni”.
Merită să luați în considerare faptul că, dacă cazul de utilizare este mic, acesta poate fi considerat o caracteristică. Dacă este semnificativ, atunci trebuie împărțit în mai multe funcții.
Getting Real este o metodologie iterativă în care interfața programului este dezvoltată mai întâi și abia apoi este dezvoltată funcționalitatea acesteia.
OpenUP este o metodă de dezvoltare care împarte ciclul proiectului în patru etape: inițiere, rafinare, construcție și predare.
Conform principiilor Agile, indiferent de durata muncii, este necesar să se ofere tuturor părților interesate și membrilor echipei o modalitate de a se familiariza și de a lua decizii. Datorită acestui fapt, este posibil să se controleze eficient situația și să se evalueze rezultatele intermediare în timp. Planul proiectului definește ciclul de viață, iar rezultatul final ar trebui considerat o lansare stabilă a aplicației.
În ceea ce privește Scrum, acesta reglementează regulile de gestionare a procesului de dezvoltare și vă permite să aplicați practicile de codificare existente cu posibilitatea de a ajusta condițiile sau de a face modificări. Utilizarea acestei metodologii vă permite să vedeți și să eliminați abaterile de la rezultatul așteptat în primele etape de dezvoltare.
Să aruncăm o privire la asta mai detaliat...