400 likes | 724 Views
Elaborat: Valentina Jardan. Metodologia Agile – SCRUM. Dezavantajele metodelor clasice de management a proiectelor. Forțe uriaşe în timpul etapei de planificare; Resurse enorme pentru modificarea cerinţele tehnice într-un mediu ce se schimbă rapid;
E N D
Elaborat: Valentina Jardan Metodologia Agile – SCRUM
Dezavantajele metodelor clasice de management a proiectelor • Forțe uriaşe în timpul etapei de planificare; • Resurse enorme pentru modificarea cerinţele tehnice într-un mediu ce se schimbă rapid; • Tratarea personalului ca factor de producţie;
Rezultatul metodelor clasice implementate în IDSI* • Haos datorită schimbării cerinţelor - cerinţele unui proiect pot să se schimbeîn faza de design, implementare şi chiar lansare. În mai toate metodologiile de dezvoltare, analiza este făcutăîn partea de început a proiectului, şi nicio schimbare nu mai este permisă pînă spre final. • Estimări nerealiste de timp, cost şi calitate a proiectelor - managerul de proiect şi dezvoltatorii tind să subestimeze cît timp şi resurse sunt necesare pentru un proiect, şi cîte funcţionalităţi pot fi livrate. Acestea nu pot fi niciodată prevazute 100% în faza de început a ciclului de dezvoltare.
Soluţia? • Agile Software Development – nume preluat de la sportul de Rugby unde toată echipa acţionează împreună - analogie se face la dezvoltarea software unde echipa lucrează împreună pentru a dezvolta cu succes produse de calitate.
Ce este Agile? • Metodologie de management a proiectelor ce încearcă să micşoreze riscurile de dezvoltare şitimpul de execuţie prin implementarea proiectelor înformă foarte flexibilăşi interactivă.
Caracteristicile Agile • Este iterativ: o iteraţie are între 1-4 saptămîni,în rezultat sunt livrate anumite funcţionalităţi ale proiectului. • Este bazat pe timp:durata iteraţiei e fixă şi nu poate fi modificată pe parcursul proiectului. În acest fel există întotdeauna un rezultat productiv la finalul iteraţiei. • Deschis către client:la finalul fiecărei iteraţii există un rezultat care poate fi prezentat clientului. • Bazat pe livrarea de versiuni intermediare ale produsului: fiecare iteraţie va implementa complet toate “task-urile” cuprinse în acea iteraţie
Metodologii care derivează din Agile • AGILE existăîn mai multe feluri: • XP • SCRUM • DSDM, • Crystal, • Feature Driven • Lean Development • etc. Toate folosesc principii de baza ale filozofiei AGILE, dar o implementeazăîn moduri diferite.
Sunt AGILE! • Prioritatea este satisfacerea nevoilor clientului prin livrarea în timp asoft-ului; • Cererile de schimbare sunt binevenite, chiar şi în stadiile avansate ale dezvoltării; • Livrăm frecvent soft funcţional, cu o frecvenţă săptămînală spre lunară, cu preferinţă pentru termenii mai scurţi;
Principiul Agile:YAGNI • "You Aren't Going To Need It... unless the businesssays so!". Prin acest principiu suntem încurajaţi să implementămdoar acele elemente pe care le solicităclientul şi nimicmai mult!
Principiul metodologiei SCRUM • dezvoltarea incrementală a aplicaţiei software; • livrări frecvente - de regulă au loc o dată la 4 săptămâni; • clientul primeşte de fiecare dată o aplicaţie ce conţine un număr tot mai mare de funcţionalităţi şi care se află în perfectă stare de funcţionare.
Reguli în Scrum • Această metodă necesită patru tipuri de şedinţe : • Şedinţele zilnice: echipa se reuneşte în fiecare zi şi petrece circa 15 minute, în picioare, pentru a răspunde la următoarele trei întrebări: ce am făcut ieri? Ce voi face azi? Cu ce obstacole mă confrunt azi? • Şedinţele de planificare: întreaga echipă se adună pentru a decide care sunt funcţionalităţile care vor alcătui următorul sprint, şi pentru a actualiza lista generală. • Şedinţele de revizuire a activităţii: în timpul acestei şedinţe, fiecare membru prezintă ceea ce a făcut pe durata sprintului. Se organizează o demonstraţie a noilor funcţionalităţi şi o prezentare a arhitecturii. Aceasta este o şedinţă informală, de două ore, la care participă toată echipa. • Şedinţele retrospective: la finalul fiecărui sprint, echipa analizează aspectele care au funcţionat bine, precum şi pe cele care au funcţionat mai puţin bine. În timpul acestei şedinţe de 15–30 de minute, se organizează un vot de încredere pentru a decide ce îmbunătăţiri trebuie implementate.
Avantaje • reducerea documentaţiei la minimul cu scopul sporirii productivităţii; • evitarea „efectului de tunel", adică faptul de a obţine rezultatul abia la livrarea finală şi de a nu întrezări nimic concret pe durata întregii faze de dezvoltare; • compunerea secvenţială a conţinutului sprint-urilor permite efectuarea unei modificări sau adăugarea unei funcţionalităţi care nu era prevăzută iniţial. Acesta este principalul aspect care face ca această metodă să fie „agilă“; • metodă participativă: fiecare membru al echipei este invitat să îşi exprime părerea şi poate contribui la toate deciziile luate în cadrul proiectului, fiind astfel mai implicat şi mai motivat; • facilitarea comunicării: lucrînd în aceeaşi sală de dezvoltare sau fiind conectată prin intermediul diferitelor mijloace de comunicare, echipa poate comunica uşor şi poate schimba informaţii despre impedimentele întâlnite în scopul eliminării cât mai rapide a acestora; • ameliorarea cooperării: comunicarea zilnică dintre client şi echipa face posibilă o colaborare mai strânsă între cele două părţi; • creşterea productivităţii: prin eliminarea anumitor „exigenţe" specifice metodelor clasice, precum documentaţia; • timpul de livrare a produsului final se reduce semnificativ.
Riscuri şi soluţii • Dimensiunea echipei: fiind limitată la 7 -10 persoane, dimensiunea echipei se poate transforma într-un obstacol dacă se depăşeşte numărul de membri recomandat. În acest caz, organizarea de şedinţe devine imposibilă. Soluţia constă în realizarea unui „Scrum of Scrums“ - împărţirea proiectului în echipe de dimensiuni standard şi adăugarea unei instanţe superioare care să grupeze ScrumMasterii fiecărui Scrum; • Cereri multiple: cererile pot proveni din mai multe surse în cadrul unui proiect şi pot uneori să fie dificil de gestionat datorită aspectului lor contradictoriu. Pentru a remedia această problemă, trebuie să se utilizeze în mod obligatoriu o aplicaţie de gestiune a cererilor; • Calitatea produsului realizat: cu cât numărul echipelor este mai mare, cu atât calitatea este mai greu de controlat. Pentru aceasta, este important să existe o politică de calitate riguroasă şi un plan de calitate a proiectului. Verificarea frecventă a codului şi introducerea unor indicatori pentru măsurarea performanţei programatorilor permit reducerea la minimum a acestui risc.
Organizare Scrum • Metodologia SCRUM implică intervenţia a trei protagonişti : • Product owner: responsabilul de produs şi coordonatorul echipei clientului. El este cel care defineşte şi stabileşte funcţionalităţile prioritare şi alege data şi conţinutul fiecărui sprint pe baza volumelor de lucru comunicate de echipă. • ScrumMaster: acesta facilitează buna desfăşurare a proiectului, are grijă ca fiecare membru să poată lucra la capacitate maximă eliminând impedimentele şi protejând echipa de perturbările exterioare. De asemenea, acordă o atenţie specială respectării diferitelor faze SCRUM. • Echipa: fiind de regulă alcătuită din circa 4-10 persoane, echipa adună la un loc specialiştii necesari în cadrul unui proiect, şi anume: arhitectul, designerul, programatorul, testerul etc. Echipa se organizează singură şi rămâne neschimbată pe toată durata sprintului.
Restricţii şi recomandări pentru tabla Scrum • Cît mai puţine sarcini mici în Sprint per persoană cu atît mai bine; • Modificaţi tabla Scrum conform necesităţilor echipei şi a proiectului; • Sarcini curente în realizare maxim 2; • Numărul de sarcini plasate pe tabla trebuie să fie realizate la finisarea Sprint-ului; • Nu se acceptă sarcini noi în Sprint-ul care este în proces de realizare. • Soluţie: Înlocuirea sarcinilor;
Cui se adresează acest tip de organizare? • Acest tip de organizare poate fi utilizat în majoritatea proiectelor; • Metodologia Agile – SCRUM este destinată în special proiectelor care nu au un cadru bine conturat; • Enevoie o echipă cu iniţiativă care cuprinde oamenicărora le place să experimenteze, să schimbe şi să seadapteze cerinţelor; • Echipe care stiu sa se organizeze;
Este IDSI o echipa Agile-Scrum? • Numărul foarte mare de studenţi (70%) cu un orar de lucru part-time; • Cele 4 tipuri de şedinţe Scrum nu pot fi organizate; • Categorii de vîrstă şi mod de percepere diferit a procesului de lucru; • Nu toţi membrii echipei vor să fie Agile; • Dimensiunea echipei este mare şi nu se regasesc în ea posturile necesare unei echipe Scrum; • Numărul mare de proiecte la mentenanţă; • Fiecare membru al echipei este implicat în mai mult de 1 proiect în Sprint; • Nu pot fi planificate şi estimate corect sarcinile pentru Sprint; • Sarcini neplanificate se soluţionează în timpul Sprint-ului; • Nu este posibil de estimat corect timpul la sarcini de către echipă; • Nu se face livrarea proiectului la finisarea fiecărui Sprint; • etc
Link-uri utile • http://www.agilemoldova.com/ • http://agilemanifesto.org/