CodeGym /Blog Java /Aleatoriu /Metodologii de dezvoltare software
John Squirrels
Nivel
San Francisco

Metodologii de dezvoltare software

Publicat în grup
La multe interviuri, probabil vei fi întrebat despre metodologii. Aceasta nu este cea mai importantă sau dificilă întrebare, dar ar fi bine să ai o foaie de cheat. În acest articol, vom încerca să transmitem ce este o metodologie de dezvoltare și să le comparăm. O metodologie de dezvoltare software este un proces folosit pentru a dezvolta un anumit produs, adică este o modalitate de a organiza dezvoltarea de către o echipă de dezvoltatori. Există multe modele de dezvoltare diferite, fiecare dintre ele își definește propria abordare. Nu se poate spune că oricare dintre ele ar trebui să fie folosit pentru fiecare proiect. Abordarea corectă depinde în întregime de situație. Intenționez să iau în considerare trei dintre ele mai detaliat.

Cascadă

Metodologia cascadei este una dintre cele mai vechi și presupune o implementare strict secvențială: fiecare etapă trebuie finalizată înainte de a începe următoarea. Cu alte cuvinte, o tranziție la următoarea etapă înseamnă că munca din etapa anterioară este 100% finalizată. Imaginea arată cum funcționează: mai întâi, analizăm problema (documentăm sarcinile, discutăm provocările), apoi proiectăm (structura proiectului ia contur în această etapă), apoi codificăm și testăm. Revenirea la etapele anterioare nu este permisă. Această abordare este recomandată pentru proiectele mici în care cerințele sunt cunoscute în avans și este puțin probabil să se schimbe. Metodologii de dezvoltare software - 2Avantaje:
  • Documentație completă și consecventă în fiecare etapă
  • Ușurință în utilizare
  • Cerințe stabile
  • Bugetele și termenele limită sunt predefinite
Dezavantaje:
  • O cantitate mare de documentație
  • Nu foarte flexibil
  • Clientul nu poate vedea o versiune demo a produsului
  • Nicio opțiune de a trece înapoi

Scrum

Scrum este o metodologie de dezvoltare software care împarte întregul proces în iterații. La sfârșitul fiecărei interacțiuni, echipa este pregătită să ofere o versiune demo a produsului. Imaginea arată că echipa trece prin toate etapele de dezvoltare în paralel, făcând posibilă o parte a proiectului finalizată la sfârșitul fiecărei iterații. Metodologii de dezvoltare software - 3Voi încerca să explic pe scurt esența metodologiei folosind cuvinte simple, dar există multă terminologie. Cred că cel mai important lucru este să înțelegem esența. Vă veți aminti terminologia cu experiență. Toată dezvoltarea este împărțită în sprinturi (deseori 2-3 săptămâni). Există un întârziere(lista de sarcini) pentru întreaga perioadă de dezvoltare și pentru fiecare sprint separat. Fiecare sarcină are propriul punct de poveste (evaluarea dificultății). Fiecare participant la proces are un rol:
  • Echipa Scrum este formată din profesioniști (dezvoltatori, testeri, designeri) care lucrează la un proiect.
  • Scrum Master este persoana care se asigură că principiile scrumului sunt respectate.
  • Proprietarul produsului este clientul.
Această metodologie se bazează pe comunicare, așa că există un număr mare de întâlniri:
  • Stand-up – Aceasta este o întâlnire scurtă, organizată în fiecare zi, la care participă toți membrii echipei. Fiecare participant răspunde la 3 întrebări: Ce am făcut? Ce voi face? Și ce probleme de blocare există?
  • Întâlnire de planificare – Această întâlnire are loc la începutul sprintului. Sarcinile care trebuie îndeplinite în următorul sprint sunt identificate la această întâlnire.
  • Retrospectivă - Această întâlnire are loc la sfârșitul sprintului și are scopul de a identifica ceea ce s-a făcut bine și ce ar putea fi îmbunătățit.
Avantaje:
  • Clientul poate vedea rezultatele în timpul procesului de dezvoltare
  • Monitorizarea zilnică a procesului de dezvoltare
  • Abilitatea de a face ajustări în timpul dezvoltării
  • Am stabilit comunicarea cu toti membrii echipei
  • O cantitate mică de documentație
Dezavantaje:
  • Este dificil de evaluat forța de muncă și alte costuri necesare dezvoltării
  • Este dificil de identificat blocajele înainte de începerea dezvoltării
  • Necesitatea de a implica pe toată lumea în munca celorlalți membri ai echipei.

Kanban

Kanban este o metodă bazată pe vizualizarea progresului realizat în îndeplinirea sarcinilor echipei. Ideea principală este reducerea numărului de sarcini care sunt efectuate în prezent (în coloana „În desfășurare”). În scrum, echipa este concentrată pe finalizarea cu succes a sprinturilor. În Kanban, sarcina ocupă poziția preeminentă. Acest lucru este bun pentru proiectele aflate în etapa de întreținere, în care funcționalitatea de bază a fost deja implementată și rămân îmbunătățiri minime și remedierea erorilor. În Kanban, sarcinile sunt atribuite individual. O sarcină parcurge toate etapele de pe tablă, independent de celelalte sarcini, iar odată ce este finalizată poate fi arătată clientului. Un panou Kanban este format din coloane, fiecare dintre acestea reprezentând un proces de dezvoltare separat. Unele coloane (de exemplu, „În curs” ) limitează numărul de sarcini pe care le pot deține. Acest lucru ajută la găsirea rapidă și ușoară a zonelor cu probleme în distribuirea sarcinilor. Imaginea arată un exemplu de o astfel de placă. Numărul de coloane și numele acestora pot varia. Voi prezenta cele mai comune: Metodologii de dezvoltare software - 4
  • De făcut – Lista sarcinilor care trebuie efectuate
  • În curs – Sarcini la care se lucrează în prezent
  • Revizuirea codului – Sarcini care au fost efectuate și care au fost trimise spre revizuire
  • În testare – Sarcini pregătite pentru testare
  • Terminat – Sarcini finalizate
Avantaje:
  • Ușurință în utilizare
  • Vizibilitate (ajută la localizarea blocajelor, simplifică înțelegerea)
  • Implicare mare a echipei în procesul în sine
  • Dezvoltare foarte flexibilă
Dezavantaje:
  • O listă de sarcini instabilă
  • Este dificil de aplicat la proiecte pe termen lung
  • Lipsa termenelor limită grele

Un ultim cuvânt despre metodologiile de dezvoltare software

Oamenii care ocupă sau aspiră la funcții de conducere trebuie să înțeleagă temeinic metodologiile de dezvoltare software, dar toată lumea trebuie să înțeleagă cel puțin elementele de bază. Metodologiile sunt o parte integrantă a procesului de dezvoltare și sunt utilizate nu numai în sfera IT. Vă mulțumesc pentru timpul acordat citirii articolului meu. Sper că ți-a fost de ajutor. Am încercat să descriu doar punctele cheie cât mai accesibil și concis posibil. Ca urmare, acest articol nu este exhaustiv. M-aș bucura să aud părerea dvs. despre asta și să vă răspund la întrebări. Toate cele bune!
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION