agile vs waterfall which is best methodology
cel mai bun program pentru clonarea unui hard disk
Aflați totul despre metodologiile Agile și Waterfall, diferitele tipuri de modele SDLC și diferențele dintre modelele de dezvoltare Waterfall și Agile, precum și testarea:
Citiți acest articol informativ pentru a decide care este cel mai potrivit model pentru proiectul dvs. pe baza avantajelor și dezavantajelor fiecăruia.
Modelul Cascadă și Modelul Agil sunt tipurile de Ciclul de Viață al Dezvoltării Software-ului (SDLC). Acestea sunt procesul utilizat de industria software-ului pentru a proiecta, dezvolta și testa software-ul.
Urmărind SDLC, putem realiza așteptările clienților, finalizăm proiectul în anumite perioade de timp și putem estima costul.
Ce veți învăța:
- Fluxuri de lucru cascadă și model agil
- Modelul cascadei
- Flux de lucru agil
- Diferența dintre modelele Agile Vs Waterfall
- Diferențele dintre testarea agilă și testarea cascadei
- Concluzie
Fluxuri de lucru cascadă și model agil
În limba engleză simplă, Agile înseamnă „capabil să se miște rapid și ușor” și, prin urmare, asta înseamnă ceea ce înseamnă Metodologie de dezvoltare agilă .
Agilitatea este o metodă de gestionare a proiectelor care este reprezentată de împărțirea sarcinilor în segmente mai scurte de lucru cu recenzii frecvente și adaptarea planurilor.
În mod similar, cuvântul cascadă denotă un flux vertical de apă sau fluxul de apă printr-o serie de picături abrupte. Modelul cascadei este un model liniar secvențial în care progresul curge major într-o direcție în jos, prin fazele de colectare a cerințelor, analiză, proiectare, dezvoltare, testare, desfășurare și întreținere.
Aceeași ilustrare se aplică conceptului de management de proiect atunci când vine vorba de model de cascadă . Este o metodă de management al proiectului care este reprezentată de etape seriale și un plan fix de lucru.
(imagine sursă )
Înainte de a discuta despre fluxul de lucru Waterfall și fluxul de lucru Agile, permiteți-ne să aruncăm o privire asupra definiției ciclului de viață al dezvoltării software-ului și a cerințelor sale.
Care este ciclul de viață al dezvoltării software-ului?
Este o procedură pas cu pas pentru a dezvolta software-ul în mod sistematic. Pentru aceasta, selectăm din diferite tipuri de cicluri de viață ale dezvoltării de software în diferite companii. Pe baza cerinței, este selectat un ciclu de viață adecvat.
Modelul cascadei este unul dintre tipurile SDLC și este un vechi proces de dezvoltare a software-ului. Modelul agil este cel mai recent și avansat. Agile este derivat din alte cicluri de viață ale dezvoltării software-ului.
Alte SDLC includ modelul în spirală, modelul V și V, modelul prototip. Pe baza necesității și compatibilității cerințelor de afaceri, vom alege cel mai bun model pentru dezvoltarea aplicației software.
(imagine sursă )
De ce este necesar ciclul de viață al dezvoltării software-ului?
SDLC este necesar pentru a gestiona proiectul într-un mod structurat. Oferă un anumit nivel de control și definește rolurile și responsabilitățile membrilor echipei. Acesta oferă domeniul de aplicare și termenul limită pentru fiecare fază în SDLC.
Este oarecum ca un ghid de utilizare pentru membrii echipei de a urma toți pașii pentru a dezvolta și livra produsul de calitate. Ajută conducerea echipei să definească și să evalueze obiectivele și cerințele. De asemenea, ajută la programarea și estimarea sarcinilor. Face linia de comunicare între client și echipa de dezvoltare și creează rolurile și responsabilitățile pentru fiecare dintre ei.
Tipuri de ciclu de viață pentru dezvoltarea software-ului
Să vedem o scurtă introducere a tipurilor de SDLC utilizate în procesul de dezvoltare software.
# 1) Model de cascadă
După cum sa discutat mai devreme, modelul cascadă este primul ciclu de viață introdus pentru dezvoltarea software-ului. Este modul secvențial de dezvoltare a software-ului. Foarte puține companii urmează această abordare. Când proiectul este foarte simplu și nu există alte modificări ale cerințelor, vom urma această abordare.
Vom discuta mai multe despre modelul cascadei în acest tutorial.
# 2) Model agil
Un flux de lucru agil este o abordare avansată a procesului de dezvoltare software, care este utilizat în majoritatea companiilor. Agile este definit ca ciclul de viață al dezvoltării software bazat pe sprint.
În secțiunile viitoare, putem discuta mai multe despre fluxul de lucru Agile.
# 3) Model în spirală
Este modul de construire și testare a software-ului prin împărțirea și adăugarea cerinței în ordine incrementală. Acest model va ajuta în proiectele în care cerințele continuă să se schimbe. Acest model în spirală este combinația dintre procesul de dezvoltare iterativ și procesul de dezvoltare liniară secvențială.
Această abordare ne va permite lansări incrementale ale produsului. Aici, nu este necesar să așteptați finalizarea tuturor modulelor software-ului pentru lansare.
Modelul liniar secvențial înseamnă că este o abordare sistematică secvențială a dezvoltării software care începe la nivel de sistem și progresează prin analiză, proiectare, codificare, testare și suport.
Modelul iterativ înseamnă că este o implementare specială a unui ciclu de viață al dezvoltării software-ului care se concentrează pe o implementare inițială simplificată, care apoi câștigă progresiv mai multă complexitate și se setează o caracteristică mai largă până când sistemul final este complet.
# 4) Model de prototip
Acest model include procesul de construire și testare a software-ului în așa fel încât, mai întâi să dezvoltăm modelul fals și dacă acesta este fezabil și atinge toate cerințele de afaceri, atunci implementăm modelul de lucru propriu-zis.
Mai întâi aici, am construit și testat prototipul, apoi am construit modelul real cu specificațiile exacte ale sistemului. Prototiparea software-ului este activitatea de creare a prototipurilor aplicațiilor software.
# 5) Modelul V și V
Este modelul de verificare și validare. Aici, în timp ce dezvoltam software-ul, am folosit pentru a verifica și valida totul în fiecare fază a SDLC. Modelul V este considerat ca o extensie a modelului cascadă.
Deci, toate tipurile SDLC au caracteristicile și caracteristicile lor. Pe baza cerințelor proiectului, a nevoilor, a fezabilității, a duratei de timp, putem alege ciclul de viață special al dezvoltării software-ului pentru a dezvolta aplicația software.
Acum, vom discuta în detaliu ciclurile de viață ale dezvoltării software-ului Waterfall și Agile.
Modelul cascadei
În modelul Cascadă, fiecare fază trebuie finalizată înainte de a începe o altă fază. Nu putem opera mai multe faze în același timp. Aceasta a fost introdusă în 1970 de Winston Royce. Modelul cascadei este împărțit în diferite faze.
(imagine sursă )
Modelul cascadei include următoarele faze:
- Colectarea cerințelor
- Studiu de fezabilitate
- Proiecta
- Codificare
- Testarea
- întreținere
# 1) Analiza cerințelor
Aici, analistul de afaceri va primi specificațiile cerințelor. Cerința va fi în formatul CRS (Customer Requirement Specification). CRS explică modul în care ar trebui să meargă fluxul de afaceri și cum ar trebui să funcționeze aplicația conform cerințelor specificate. Analiștii de afaceri vor converti CRS în SRS (Specificația cerințelor software).
Apoi, analistul de afaceri discută în detaliu specificațiile cerințelor cu echipa de dezvoltare și testare și înțelege cerința din punctul de vedere al dezvoltării și testării. Aceasta este faza de a discuta și analiza cerințele pentru a construi aplicația software pe baza cerințelor reale.
Aici, totul ar trebui să fie documentat în documentul cu specificațiile cerințelor software. În modelul cascadă, livrabilul / rezultatul / ieșirea fiecărei faze este sursa de intrare pentru fazele următoare.
Într-o industrie bazată pe servicii, un analist de afaceri poate aduce cerința.
Într-o companie bazată pe produse, analistul de produse aduce cerința.
# 2) Studiu de fezabilitate
Echipa de conducere va face studiul de fezabilitate. Înseamnă că echipa va analiza parametri precum, este această cerință / aplicație care poate fi dezvoltată sau nu în mediul nostru, resursa disponibilă este suficientă sau nu, costul și mulți alți factori sunt sau nu fezabili și pentru a verifica dacă suntem capabili să acoperim toate fluxurile de afaceri sau nu.
În această întâlnire / analiză, managerul de proiect, analistul de afaceri, managerul financiar, resurse umane, conducătorul proiectului vor face parte din discuție.
# 3) Proiectarea sistemului
Aici, arhitectul de proiect va pregăti proiectarea sistemului. El va specifica hardware-ul, cerința sistemului și va proiecta arhitectura aplicației. Există 2 părți în proiectarea sistemului: design la nivel înalt și design la nivel scăzut. În proiectarea la nivel înalt, proiectăm diferitele blocuri ale aplicației. În proiectarea la nivel scăzut, scriem pseudo-codul.
# 4) Codificare
Aici, dezvoltatorii încep codificarea exactă a fiecărei funcții și UI a aplicației utilizând metode diferite și logici diferite. Ei pot folosi orice limbaj de programare, cum ar fi Java, Python sau orice alt limbaj pentru a construi aplicația.
Odată ce codarea este completă pentru fiecare funcționalitate a modulului particular al aplicației, dezvoltatorul va efectua testarea unității. Dacă codul funcționează bine, dezvoltatorul va implementa codul în mediul de testare și va da versiunea testerului pentru testare.
# 5) Testare
De aici începe activitatea de testare. Până la această fază, nu vom avea nicio sarcină în modelul Cascadă. În această fază, facem toate tipurile de testare. Aceste tipuri de testare includ testarea fumului, testarea funcțională, testarea integrării, testarea sistemului, testarea acceptării, testarea regresiei, testarea ad-hoc, testarea exploratorie și testarea cross-browser.
Vom începe să testăm aplicația odată ce obținem versiunea. În primul rând, vom începe cu testarea fumului. Dacă nu se observă probleme de blocare, vom continua testarea detaliată.
În testarea funcțională, vom începe să testăm fiecare componentă a aplicației. Aici verificăm diferitele componente, cum ar fi câmpurile de text, butoanele, linkurile, butoanele radio, butoanele de încărcare, meniurile derulante și linkurile de navigare.
În continuare, vom verifica interfața de utilizare, aspectul și testarea pozitivă și negativă a intrărilor.
Apoi vom începe cu testarea integrării. Aici vom verifica integrarea datelor. Vom verifica dacă aceleași date se reflectă sau nu în diferite pagini respective, vom verifica navigarea prin e-mail către paginile respective. Vom verifica integrarea datelor cu aplicații terțe și vom verifica modificările bazei de date din aplicație.
Apoi, vom face testarea sistemului. Vom verifica întreaga aplicație ca o singură unitate. Vom verifica funcționalitatea, integrarea paginilor, validările câmpului, mesajele de eroare, mesajele de confirmare și multe altele.
În timpul testării aplicației, vom înregistra problemele în instrumentul de urmărire a erorilor. Vom acorda prioritate bugului pe baza problemelor. După crearea bugului, îl vom atribui dezvoltatorului respectiv pentru a remedia problema. Vom verifica erorile odată ce dezvoltatorii le-au atribuit testerelor după remedierea acestora. Dacă funcționează bine, testerul va închide eroarea, altfel testerii vor atribui înapoi dezvoltatorului pentru a remedia problema. Așa se desfășoară ciclul de viață al erorilor.
Apoi trecem la testul de acceptare. Aici testăm aplicația în diferite medii, cum ar fi stagierea și UAT (User Acceptance Testing). Aceasta este cea mai importantă fază pentru a testa temeinic aplicația înainte de a muta codul în mediul de producție.
Odată ce testarea acceptării se face fără erori, atunci clientul va planifica să implementeze codul pe serverul de producție și să planifice lansarea.
# 6) Întreținere
Odată ce implementăm codul aplicației pe serverul de producție, ar trebui să oferim asistență / întreținere aplicației client. Această fază de întreținere este de a observa și remedia problemele de producție în timp real, de a verifica problemele de memorie, de a îmbunătăți aplicația și de a dezvolta noile modificări ale cerințelor.
În ce cazuri putem opta pentru modelul cascadei?
- Când nu sunt necesare modificări.
- Când proiectul este mic și simplu.
- Când nu există complexitate în tehnologie.
- Când există mai multe resurse disponibile.
Pro cascadă:
- Înainte înapoi planificarea și implementarea sunt ușoare .
- Modelul cascadei este simplu de utilizat și ușor de înțeles. Nu necesită nicio pregătire specială pentru managerii de proiect sau angajații. Are un curba de învățare ușoară .
- Fiind rigid în natură, este ușor de gestionat ciclul cascadei. Fiecare fază are livrabile fixe și un proces de revizuire.
- Mai puțină complexitate deoarece fazele nu se suprapun. Fazele sunt urmate una după alta. Folosește o structură clară în comparație cu celelalte metodologii de dezvoltare software. Proiectul parcurge etape secvențiale fixe începând de la colectarea cerințelor și, în cele din urmă, ajunge la întreținere.
- Datorită dezvoltării treptate, disciplina este impusă , iar intervalele de timp pot fi păstrate cu ușurință.
- Lucrări bine pentru proiecte mici unde avem cerințe clare și cristaline.
- Procesele și rezultatele sunt bine documentat .
- Aranjarea sarcinilor este ușoară.
- Este ușor de măsurat progresul deoarece punctele inițiale și finale ale fiecărei faze sunt predeterminate.
- Nu există aproape nicio modificare a cerințelor pe tot parcursul proiectului, de unde și sarcinile rămân stabile pentru dezvoltatori. De asemenea, este ușor pentru orice nou dezvoltator pentru a învăța rapid și începe lucrarea.
- Sunt fără surprize financiare . Odată ce cerințele sunt fixate, costul final poate fi calculat înainte de a începe dezvoltarea.
- Se adresează unui model de finanțare secvențială .
- Este design detaliat face ca rezultatul final așteptat să fie foarte clar pentru toată lumea.
- Specificația funcțională a cerințelor documentată în faza de colectare a cerințelor oferă suficiente detalii testerilor pentru a proiecta scenarii de testare și cazuri de testare. Prin urmare, procesul de testare devine ușor în modelul cascadei.
Contra cascadei:
- Deoarece toate cerințele trebuie cunoscute în mod clar înainte de a începe dezvoltarea, aceasta întârzie proiectul .
- Necesită cercetări ample în nevoile utilizatorului.
- În faza inițială a proiectului, este o provocare pentru un client să își definească și să conceptualizeze în mod clar cerințele sub formă de specificații funcționale. Prin urmare, există o mare posibilitate ca aceștia să se răzgândească după ce au văzut produsul final. Această modificare poate apărea și din cauza unui plan de afaceri sau a influenței pieței. Flexibilitatea redusă în acest model îl face dificil de adaptat la astfel de modificări , mai ales atunci când produsul trebuie reproiectat în mare măsură.
- Fără model de lucru se produce până la mai tarziu etapă în timpul ciclului de viață al cascadei.
- Timp de livrare lent . Clientul nu poate vedea produsul până când nu este complet finalizat.
- Clientul nu are nicio ocazie să se familiarizeze cu sistemul în avans. Modelul cascadei este mai degrabă un proces intern și păstrează utilizatorul final exclus .
- clientul nu este informat despre sănătatea proiectului.
- Termenele limită pot fi ratate dacă nu se păstrează un management strict și o monitorizare regulată.
- Există fără loc pentru schimbări chiar dacă este vizibil în timpul dezvoltării, deoarece produsul nu va satisface cerințele pieței.
- Întârzie testarea până după finalizare. De asemenea, reviziile mari sunt foarte costisitoare în acest moment.
- Risc ridicat și incertitudine sunt implicați în modelul cascadei, deoarece există prea mult spațiu pentru ca problemele să rămână neobservate până când proiectul se apropie de finalizare.
- Nu este un model potrivit pentru proiecte lungi, complexe și în desfășurare.
- Este greu sa măsurați progresul în cadrul fiecărei faze.
- Testerii vor sta în repaus în timpul multor etape ale proiectului.
Flux de lucru agil
Acum vom vedea ciclul de viață al dezvoltării software-ului Agile. Agilitatea este procesul de a lucra rapid și ușor cu mai multă acuratețe.
Acest model este legat de o metodă de management de proiect, utilizată în special pentru dezvoltarea de software. Se caracterizează prin împărțirea sarcinilor în faze scurte de lucru și reevaluare frecventă și adaptarea planurilor. Fiecare membru al echipei ar trebui să aibă ideea fluxurilor de afaceri de bază.
(imagine sursă )
În Agile, dezvoltatorii și testerii lucrează în paralel pentru a dezvolta și testa software-ul aplicației. Dezvoltarea se face în mod iterativ. Fiecare povestire a utilizatorilor de iterație necesită analiză, proiectare, codificare și testare.
Testăm cerința într-un mod detaliat pentru a verifica dacă cerința este lipsită de erori și se poate implementa sau nu. Treceți la următoarea iterație după sfârșitul fiecărei iterații și urmăm același proces la noile / alte cerințe.
Astfel, acest proces de dezvoltare și testare a blocului de software se realizează într-o perioadă scurtă de timp, cu mai multă precizie și flexibilitate. Deci, mai multe industrii urmează și adoptă acest proces.
În primul rând, proprietarul produsului va adăuga toate cerințele la restanța produsului. Cartea de produs conține toate poveștile utilizatorilor. Să spunem, 100 până la 150 de povești ale utilizatorilor sunt legate de proiectul complet. Acum adăugați poveștile utilizatorilor în backlog-ul sprint pe care trebuie să le implementăm. Apoi, toți dezvoltatorii, QA, BA vor lucra la elementele sprint. Așa funcționează fluxul Agile.
Terminologii cheie utilizate în Agile
Care este restanța sprintului?
implementarea unui stack c ++
Este lista poveștilor utilizatorilor pe care trebuie să le implementăm în iterația curentă sau în sprint.
De exemplu, există 20 până la 30 de povești ale utilizatorilor în restul sprintului. Atunci acestea sunt poveștile utilizatorilor pe care trebuie să le implementăm în sprintul curent.
(imagine sursă )
Ce este un Sprint?
Sprint este durata mică în care trebuie să implementăm poveștile utilizatorului selectat într-o anumită durată. Durata sprintului va fi de aproximativ 2 până la 3 săptămâni. Durata sa variază de la companie la companie.
În această durată sprint, echipa trebuie să analizeze cerința, să proiecteze cerințele, să efectueze codificare, testare, rezolvarea problemei, re-testare, testare de regresie, demo și multe alte activități.
Întâlnire zilnică Standup Scrum
Business Analyst, Developer, Tester, Managerul de proiect fac parte din întâlnirile zilnice de stand up scrum. Se face zilnic. Nu ar trebui să se extindă mai mult de 15 până la 30 de minute.
Aici toți membrii echipei vor împărtăși starea de lucru zilnică. Principalele lucruri pe care le discutăm aici sunt: care sunt lucrurile finalizate ieri, planul pentru munca de astăzi și orice provocări sau dependențe cu care se confruntă în proiect.
Dacă un membru al echipei se confruntă cu provocări sau obstacole în timpul proiectului, persoana în cauză va lucra la el pentru a-l face.
Diagrama Burndown
Este o reprezentare grafică a timpului și a muncii. Axa x reprezintă munca rămasă, axa y reprezintă timpul de sprint rămas. Echipa trebuie să creeze sarcinile de lucru referitoare la timpul disponibil în sprintul special. Echipa va arde zilnic orele de activitate în funcție de munca pe care au lucrat-o și au terminat-o.
(imagine sursă )
Diagrama Kanban
Este o diagramă / instrument de management al proiectelor. Cu aceasta, putem gestiona sarcinile întregului proiect. Putem verifica starea de progres a proiectului și starea de lucru a indivizilor. Acesta prezintă reprezentarea digitală picturală a elementelor de progres, a elementelor în așteptare, a articolelor finite.
(imagine sursă )
cum să obțineți quickbooks gratuit
Planificarea activității de poker
Este un joc între membrii echipei de sprint pentru a estima poveștile utilizatorilor. Aici întreaga echipă va juca activitatea de poker. Fiecare membru al echipei oferă estimarea pe baza punctului de poveste al utilizatorului. Pe baza voturilor estimative majoritare, echipa va decide și aloca intervalul de timp.
De exemplu , un membru al echipei pentru povestea utilizatorului va da o estimare precum 3, 5, 8, 3, 1, 3. Apoi echipa va alege 3 ca estimare. Cardul de activitate Poker conține 0, 1, 3, 5, 8, 13, 20, 100, pauză, dubii? carduri. Pe baza acestei echipe membrii vor sugera orice card de estimare. Astfel, vom estima toate poveștile utilizatorilor care sunt legate de sprintul particular.
(imagine sursă )
- 0 număr de poker reprezintă: nicio sarcină în acel articol / povestea utilizatorului
- 1, 3 numere reprezintă: sarcina este mai mică
- 5, 8 numere reprezintă: sarcini de nivel mediu
- Numărul 13, 20 reprezintă: sarcini de nivel mare
- Numărul 100 reprezintă: sarcini foarte mari
- Infinitul reprezintă: Sarcina este imensă, trebuie împărțită în mai multe sarcini și povestiri ale utilizatorilor
- Pauza reprezintă: am nevoie de o pauza
- ? Reprezintă: Îndoieli
Scrum Master
El este persoana care ajută echipa să urmeze procesul agil și să îndeplinească cerințele proiectului. El va conduce întâlnirea ori de câte ori este necesar și ajută la discutarea nevoilor proiectului.
Scrum master acționează ca o punte către toți membrii echipei pentru a rezolva provocările și dependențele care apar în proiect. El va urmări progresul proiectului referitor la fiecare sprint.
El este implicat în reuniunea standup, reuniunea retrospectivă, inspecția, revizuirea, demo-ul. El este cel care conduce ședințele zilnice de stand up și ia actualizarea membrilor echipei.
Proprietarul produsului
El este persoana care conduce și monitorizează produsul / proiectul din punct de vedere al afacerii. Continuă să urmărească ca și cum produsul este dezvoltat conform cerințelor afacerii sau nu. El este cel care prioritizează poveștile utilizatorilor și a mutat cerințele din restanța produsului în restul sprintului. El va estima termenele limită ale proiectului.
El se uită întotdeauna la produs din punctul de vedere al utilizatorului. Proprietarul produsului are cunoștințe complete despre modul în care ar trebui să funcționeze aplicația.
Povestea utilizatorului
Este un bloc de cerințe. Conține setul de cazuri / cerințe de utilizare care sunt legate de același modul. Aici definim cum ar trebui să funcționeze fiecare componentă a unei aplicații și cum ar trebui să arate interfața de utilizare. Domeniul de aplicare al fiecărei componente este definit în povestea utilizatorului.
Sarcini
Membrii echipei vor crea sarcina pentru povestea utilizatorului care le este atribuită. Ei trebuie să creeze sarcina pe baza diferitelor sarcini, cum ar fi sarcina de dezvoltare, sarcina de testare, sarcina de analiză a povestii utilizatorului. Durata activității ar trebui să depindă de punctele povestirii utilizatorului
În calitate de tester, vom crea sarcinile pentru analiza povestii utilizatorului, pregătirea cazurilor de testare, execuția, testarea de regresie și multe altele.
Îngrijirea restantei
Această parte implică gestionarea articolelor restante. Activitățile pe care le desfășurăm aici sunt prioritizarea articolelor restante, divizarea în elemente mai mici, crearea sarcinii și actualizarea criteriilor de acceptare.
Repetare
Iterarea este dezvoltarea și testarea unor module / părți ale aplicației software. Fiecare iterație constă în analiza produsului, proiectarea produsului, dezvoltarea produsului, testarea produsului și demo-ul produsului.
Factori cheie pentru adoptarea metodologiei agile
- Observare: Examinați periodic lucrarea și produsul și planificați activitățile în consecință. Deci, procesul de dezvoltare a produsului și calitatea produsului vor fi bune.
- Modificări de bun venit: Modificările sunt gestionate foarte ușor. Nu afectează prea mult produsul, deoarece modulele software-ului sunt dezvoltate separat și integrate ulterior. Deci, nu va exista nicio reprelucrare dacă cerința s-a schimbat în viitor.
- Interval de timp: Ni se oferă intervalul de timp pentru fiecare unitate a aplicației. Deci, estimarea va fi corectă față de estimările timpului proiectului.
- Satisfacția clientului: Satisfacția clienților este mai mare deoarece interacționăm cu clientul și acționarul pe tot parcursul proiectului și vom oferi o demonstrație pe fiecare nivel de dezvoltare a produsului. Prin aceasta, primim în mod regulat feedback-ul clienților / clienților cu privire la fluxurile de afaceri și progresul muncii. Astfel, munca și dezvoltarea aplicației se fac în consecință.
Tipuri de metodologii agile
- Metodologia Agrum Scrum
- Dezvoltare software Lean
- Kanban
- Programare extremă (XP)
- Cristal
- Metoda de dezvoltare a sistemelor dinamice (DSDM)
- Dezvoltare bazată pe funcții (FDD)
Pro Agile:
- Unul dintre cele mai mari avantaje ale modelului agil este mare adaptabilitate . Adaptabilitatea înseamnă „a răspunde la schimbare”. Agile este foarte flexibil în abordarea schimbărilor în nevoile și prioritățile clienților.
- Permite rafinați constant și acordați prioritate restantei generale a produselor restante fără a afecta iterația curentă în care echipa este concentrată pe livrarea MVP. Modificările pot fi planificate pentru următoarea iterație, oferind astfel posibilitatea de a aduce modificările doar în câteva săptămâni.
- Metodologia agilă oferă un grad mare de implicarea părților interesate . Clientul și echipa de proiect se întâlnesc înainte, în timpul și după fiecare sprint. Deoarece clientul este implicat în mod constant pe tot parcursul proiectului, există mai multe oportunități pentru echipă de a înțelege clar viziunea clientului.
- Software-ul de lucru este livrat devreme și frecvent. Acest lucru crește încrederea părților interesate în echipă și încurajează echipa să rămâneți foarte angajat la proiect.
- Acest model oferă transparenţă . Atât părțile interesate, cât și echipa știu bine despre ceea ce se întâmplă. Clientul poate vedea lucrările în curs.
- Sprinturile programate fixe de la una la patru săptămâni permit acest lucru livrare timpurie și previzibilă . Funcțiile noi sunt lansate rapid și frecvent într-un mod temporizat.
- Agil este centrată pe client . Nu oferă doar funcționalitate, ci se concentrează și pe livrarea funcției care are o anumită valoare pentru utilizator. Fiecare poveste de utilizator are un criteriu de acceptare axat pe afaceri.
- Valoros feedback-ul clienților este câștigat din timp în proiect și modificările produsului pot fi făcute după cum este necesar.
- Accentul este pus pe valoarea afacerii . Mai întâi oferă ceea ce este cel mai important pentru client.
- Îmbunătățește calitatea livrabilelor . Spre deosebire de cascadă, testarea se face în mod continuu și frecvent într-un proiect Agile și care, la rândul său, ajută la detectarea și rezolvarea timpurie a problemelor.
- Agil acceptă abordarea TDD (Test Driven Development) care oferă suficient timp pentru a crea teste unitare pentru caracteristicile care urmează să fie lansate prin MVP.
- De asemenea, producând construiri frecvente , orice nealiniere cu cerințele clientului poate fi, de asemenea, detectată și remediată devreme.
- Pe măsură ce ajungem feedback imediat al utilizatorilor după fiecare lansare MVP, riscul eșecului proiectului este redus, când lucrezi într-un mod Agil.
- Agil promovează munca în echipă . Există o mare colaborare, interacțiune, armonie și entuziasm în rândul membrilor echipei Agile.
- Costurile și programul estimărilor fiecărui sprint sunt comunicate clientului înainte de începerea sprintului. Acest îmbunătățește luarea deciziilor deoarece utilizatorul poate înțelege costul fiecărei caracteristici și poate acorda prioritate în consecință.
- Într-un proiect agil, este loc pentru imbunatatire continua . Lecțiile învățate din sprinturile anterioare pot fi aplicate în sprinturile viitoare.
- Se concentrează asupra sarcinii particulare în fiecare etapă a proiectului.
Contra Agile:
- Se vede adesea că echipele Agile au un tendința de a neglija documentația . Acest lucru se datorează faptului că manifestul Agile se concentrează mai mult pe software-ul de lucru decât pe documentația cuprinzătoare. Cu toate acestea, echipele ar trebui să mențină echilibrul corect între cod și documentație.
- Deoarece necesită un grad ridicat de implicare a clienților, poate uneori să fie problematică pentru clienți care nu au mult timp și interes să participe la proiect.
- Nu funcționează bine dacă echipei îi lipsește angajamentul și devotamentul. Cascada necesită implicare, cu toate acestea, Agile necesită angajament.
- Dacă arhitectura și designul inițial sunt slabe, atunci refactorizare frecventă este necesară.
- Comparativ cu cascada, Agile este greu de practicat . Membrii echipei trebuie să fie bine versați în conceptele Agile. Este nevoie de multă disciplină și angajament pentru a practica Agile.
- Datorită re-prioritizării, este mai puțin previzibil decât ceea ce va fi livrat la sfârșitul sprintului.
- Datorită livrării în timp și a priorităților frecvente, există șanse ca câteva caracteristici să nu fie livrate în cronologia alocată. Acest lucru poate duce la sprinturi suplimentare și costuri suplimentare . Acest lucru poate duce, de asemenea, la problema cronologii nebuloase .
- Lipsa structurii în comparație cu cascada solicită echipe autodisciplinate, extrem de competente și cu competențe încrucișate . Fără aceasta, proiectul poate fi într-adevăr unul provocator.
- Disponibilitatea este mai puțin un plan al livrabilului final .
- Uneori părțile interesate externe nu pot rezista să urmeze abordarea Agile . În astfel de cazuri, instruirea și educația despre Agile sunt necesare unui public larg.
- Toți membrii echipei trebuie să fie implicați în gestionarea proiectului.
- Documentația este mai puțin detaliată.
Diferența dintre modelele Agile Vs Waterfall
Diferențele dintre ciclurile de viață Waterfall și Agile Software Development sunt prezentate mai jos.
Cascadă | Agil |
---|---|
Procesul este tratat ca un singur proiect care este împărțit în mai multe etape. | Procesul este împărțit în mai multe proiecte și fiecare proiect are o iterație a diferitelor etape. |
Metodologia cascadei este un model în care fiecare etapă a ciclului de viață al produsului are loc într-o succesiune. Progresul proiectului curge treptat în jos prin aceste faze asemănătoare unei cascade. | Metodologia agilă este un model care urmează o abordare iterativă. |
Acest model crede într-o singură livrare masivă. Produsul este livrat la sfârșitul SDLC. | Acest model crede în mai multe bucăți mici de livrare la intervale de timp definite. Un MVP (Produs Minim Viabil) este livrat la sfârșitul fiecărui sprint. |
Este o abordare tradițională și de modă veche. | Este o abordare nouă și modernă. |
Un singur ciclu și o singură eliberare. | Număr repetitiv de iterații și versiuni multiple. |
Împarte ciclul de viață al dezvoltării software-ului în diferite faze. | Împarte ciclul de viață al dezvoltării software-ului în sprinturi. |
![]() | ![]() |
Model structurat și rigid. Este dificil să modificați descrierea, specificațiile și proiectul proiectului. | Acest model este cunoscut pentru flexibilitatea sa. Putem face modificări în orice fază a proiectului în orice moment. |
Scară de planificare pe termen lung. | Scara de planificare pe termen scurt. |
Există o distanță mare între client și dezvoltator. | Există o distanță scurtă între client și dezvoltator. |
Mult timp între specificații și implementare. Analistul de afaceri colectează și pregătește cerința înainte de începerea proiectului. | Timp scurt între specificații și implementare. Proprietarul produsului pregătește cerințele și actualizările pentru echipă în fiecare sprint. |
Durează mult timp pentru a descoperi probleme. | Problemele sunt descoperite rapid. |
Risc ridicat de programare a proiectului. | Risc scăzut pentru programul proiectului. |
Capacitate mai mică de a răspunde rapid la schimbări. | Capacitate ridicată de a răspunde rapid la schimbări. |
Faza de testare are loc numai după finalizarea fazei de dezvoltare. | Testarea se efectuează în general în paralel cu dezvoltarea pentru a asigura calitatea continuă. |
Clientul este implicat numai în faza de colectare a cerințelor și, după aceea, nu există nicio implicare a clientului. El intră în imagine doar în momentul livrării produsului. | Clientul este implicat pe tot parcursul proiectului și feedback-ul este preluat din când în când pentru a asigura satisfacția clientului. |
Potrivit pentru proiectele care au cerințe clar definite și pentru cele care nu așteaptă modificări. | Potrivit pentru proiectele care trebuie să evolueze și pentru cele care implică schimbarea cerințelor. |
Proces strict secvențial. | Procesul de dezvoltare software foarte colaborativ duce la eforturi mai bune ale echipei și la rezolvarea rapidă a problemelor. |
Prezintă o mentalitate de proiect. | Prezintă o mentalitate a produsului și, prin urmare, este mai orientată către client. Cererile și modificările fac parte din proces |
Formal și ierarhic. Managerul de proiect este factorul de decizie. | Este informal. Întreaga echipă este responsabilă pentru luarea deciziilor. |
Acest model anticipează că nu vor exista modificări ale cerințelor pe tot parcursul proiectului. | Acest model se bazează pe adaptare și cuprinde schimbări. |
Trebuie să creați documente manuale pentru a verifica starea muncii individuale și progresul proiectului. | Urmează graficul Kanban și graficul Burn Down pentru a verifica progresul proiectului și starea de lucru a individului. |
Am avut suficiente discuții despre diferențele dintre metodologiile Agile & Waterfall și beneficiile și provocările fiecăruia. Să explorăm acum diferențele dintre testarea agilă și testarea cascadei.
Diferențele dintre testarea agilă și testarea cascadei
Din perspectiva testării software, este important pentru noi să avem o idee corectă despre diferențierea testării Agile de testarea Waterfall.
Testarea cascadei | Testare agilă |
---|---|
Echipele de testare și echipele de dezvoltare sunt separate printr-o graniță clară și există o comunicare strictă și formală între ele. | Echipa de testare și echipele de dezvoltare sunt integrate ca o singură echipă și există un flux liber de comunicare între ele. |
Testarea începe după finalizarea dezvoltării și construiește faze. | Testarea începe concomitent cu faza de dezvoltare. |
Planificarea se face doar o dată înainte de faza de testare. | Planificarea se face înainte de începerea proiectului și se face adesea în timpul proiectului. |
Planul de testare este rar revizuit în timpul proiectului. | Planul de testare este revizuit după fiecare sprint. |
Este o provocare liniștită pentru echipa de testare să propună orice modificare a cerințelor. | Echipa de testare participă activ la procesul de colectare și schimbare a cerințelor. |
Testele sunt create o singură dată pentru toate funcționalitățile. | Testele sunt create sprint cu sprint pentru funcționalitățile care trebuie eliberate în fiecare sprint. |
Testarea acceptării este efectuată o singură dată de către client după eliberare. | Testarea acceptării se poate face după fiecare iterație și înainte de livrare de către un analist de afaceri sau echipa de testare. Ulterior, acesta este realizat de client după fiecare lansare. |
Documentație de testare detaliată și extinsă. | Documentația de testare se face doar atât cât este necesar. |
Estimările și sarcinile testelor sunt adesea responsabilitatea managerului de testare. | Estimările și sarcinile de testare sunt responsabilitatea comună a echipei și a inginerilor de testare care sunt implicați în furnizarea estimărilor și alegerea sarcinilor lor. |
Testarea de regresie se face rar și implică executarea tuturor cazurilor de testare. | Testarea de regresie se face după fiecare iterație și implică doar acele cazuri de testare care sunt necesare. |
Concluzie
În acest articol, am aflat diferențele exacte dintre abordarea Agile modernă și metoda tradițională Waterfall de dezvoltare și testare software cu un tabel de comparație care acoperă avantajele și dezavantajele fiecărui model.
Luând în considerare toți factorii enumerați în acest articol, putem selecta modelul corect al ciclului de viață al dezvoltării software-ului pentru a dezvolta aplicația software. Nu există nicio îndoială în a spune că metodele Agile sunt preferate în comparație cu modelul Waterfall. 90% dintre companii preferă și urmează fluxul de lucru Agile pentru a dezvolta aplicația software.
Metodologia agilă este bună pentru tot felul de proiecte. Foarte puține companii urmează metodologia cascadei. Această metodologie este adecvată numai dacă aplicația este mică, simplă și nu există modificări în cerință.
În unele cazuri, optăm și pentru alte abordări numite Spiral, V și V și Prototype, pe baza nevoilor.
Sper că aceste informații vă vor fi de ajutor pentru a decide care este cel mai bun model pentru proiectul dvs. De asemenea, puteți alege pentru model hibrid care elimină dezavantajele fiecărei metode - discutat aici.
Lectură recomandată
- Studiu de caz: Cum se elimină defectele cascadei și procesele de dezvoltare agile folosind un model hibrid
- Ce este modelul de cascadă SDLC?
- Zephyr Enterprise Test Management Tool Review - Cum se utilizează activele modelului cascadă în instrumentul Agile
- Tutorial VersionOne: Ghid pentru instrumentul de gestionare a proiectelor Agile all-in-one
- Jira Portfolio Tutorial: Plugin de gestionare a portofoliului de proiecte Agile pentru JIRA (Review)
- TOP 10 Cele mai bune instrumente de gestionare a proiectelor Agile în 2021
- Tehnici de estimare agilă: o estimare adevărată într-un proiect agil
- 4 pași către dezvoltarea mentalității de testare agilă pentru tranziția de succes la procesul agil