METODOLOGII DE DEZVOLTARE SOFTWARE. METODA AGILE. GENERALI TĂȚI. METODA SCRUM. METODA XP. DIFERENȚE. EXEMPLE.
Ciobanu Monica
Apăvălaoe Alin Constantin Marius
E214A
METODOLOGI I DE DEZVOL METODOLOGII DE ZVOLTTARE A PRODUSELOR SOFTWARE
Ramură a disciplinei Ingineria software , care se ocupă cu definirea, structurarea și cont rolul procesului de dezvoltare a aplicațiilor software.
Acest framework este utilizat pentru structurarea, planificarea si controlul procesului de dezvoltare a unui sistem software, care include rezutate specifice predefinite, artefacte care sunt create si completate de catre echipa de proiect pentru a dezvolta sau de a intretine un sistem software.
CLASIFICAREA METODOLOGIILOR
Dezvoltare incrementală Dezvoltare iterativă
DEZVOLTAREA INCREMENTALĂ Livrare
accelerată de servicii clienților în funcție de priorități
Implicarea
utilizatorului pentru a obține un rezultate care să se muleze cât mai bine pe cerințele acestuia
DEZVOLTARE ITERATIVĂ Incurajează
comunicarea cu clientul
Sistemul
evoluează prin adăugarea de noi funcționalități în cadrul fiecărei iterații
Pentru
cele dintâi iterații cele mai importante elemente sunt funcționalitățile critice
CRITERII PENTRU SELECTAREA UNEI ANUMITE METODOLOGII
Buget: rol cheie în alegerea metodologiei
Dimensiunile echipei (pentru metodologia agile este nevoie de
o echipă mică)
Tehnologiile util izate
Unelte și tehnici
Natura proiectului
Procese existente în companie
DEZAVANTAJELE METODELOR CLASICE FOLOSITE ÎNAINTE
Numar mare de resurse folosite pentru modi ficarea cerintelor tehnice intr-un mediu in continua schimbare
Personalul este considerat ca si factor de productie
Se creaza haos datorita schimbarilor cerintelor – atât în faza de design, cât și în cea de implementare și de lansare
Estimările făcute asupra timpului, costului și calității proiectelor sunt nerealiste
METODA AGILE
MANIFESTUL AGILE 2001 MOTTO Descoperim incontinuu metode mai bune pentru dezvoltarea de software prin aplicarea acestora si prin ajutorul acordat altora pentru a le aplica. Astfel, am ajuns sa pretuim: .
PRINCIPII AGILE 1. Livrări neîntâriziate și continue de software valoros 2. Schimbarea cerințelor în decursul procesului de dezvoltare 3. Intervale mai scurte de timp 4. Oamenii de afaceri și dezvoltatorii lucrează împreună 5. Proiectele sunt construite în jurul persoanelor motivate 6. Comunicare eficientă către și în interiorul echipei de dezvoltare
PRINCIPII AGILE 7. Software funcțional 8. Ritm constant pe timp nedefinit 9. Superioritate tehnică și proiectare bună 10.Simplitate 11.Echipe organizate propriu 12.Brainstorm- ing pentru evoluția internă a echipei
AVANTAJELE METODEI AGILE o iterație se desfășuară pe parcursul a 1 -4 săptămâni, fiind livrate anumite funcționalități ale proiectului la sfârșitul acestei perioade
Iterativ –
Bazat pe timp
Deschis către client – un rezultat provizoriu este prezentat
– durata unei iterații este fixă și se stabilește la începutul proiectului, fără a se mai inter veni ulterior asupra ei clientului la sfârșitul fiecărei iterații
– la sfțrșitul fiecărei iterații, task -urile completate în cadrul ei vor duce la o versiune funcțională a aplicației solicitate Bazat pe livrări de ver siuni intermediare ale produsului
DEZAVANTAJELE METODEI AGILE
Interesul clienților implic ați în proces poate fi dificil de păstrat Prioritizarea schimbărilor poate fi dificilă când există clienți multipli Menținerea simplității poate implica un fir de muncă suplimentar Contractele pot reprezenta o problemă ca și în cazul celorlalte abordări de dezvoltare iterativă
MODELE DE METODOLOGII AGILE
Scrum (1995)
Crystal Clear
Extreme Programming (1996) – XP
Adaptive Software Development
Feature Driven Development
Dynamic Systems Development (1995) – DSDM
METODA SCRUM
CE ESTE “SCRUM”?
O metoda Agile pentru management de proiect
-Inventata de Jeff Sutherland la Easel, in 1993 -Formalizata de Ken Schwaber in 1995
ETIMOLOGIE
Termenul de SCRUM provinde din rugby unde reprezinta o strategie de a readuce o minge „ pierduta ” inapoi si joc folosind munca de echipa.
CARACTERISTICI
Scrum este o metoda iterativa si incrementala a carei scop este de a ajuta echipele de dezvoltatori sa isi concentreze atentia asupra obiectivelor stabilite si sa minimizeze munca depusa. Aceasta nu ofera o solutie la nivel de implementare ci se axeaza pe modul in care membrii echipei de dezvoltarea a produsului software interactioneaza pentru a produce un sistem flexibil,adaptabil si productiv intr-un mediu in care totul se sc himba permanent.
ETAPELE METODEI
Sprint
Sprint planning
Daily standup
Backlog
Sprint Review Meeting
Sprint Retrospective
Diagrama BurnDown
SPRINT
Unitatea de bază a dezvoltării 1- 3 săptămâni
Se încheie printr-un incre ment livrabil al produsului
Cerinţe fixe
SPRINT PLANNING
Selectarea caracteristicilor care vor fi dezvoltate
Pregătirea Backlog - ului cu întreaga echipă
Scopul: definirea unui angajament pentru Sprint
DAILY SRAND-UP
Oră exactă, durata de 15 minute
Întreaga echipă
Ce ai facut ieri?
Ce palnuieşti sa faci azi?
Ai întâmpinat probleme?
BACKLOG
Product backlog: lista a ceea ce va fi construit, ordonat dupa importanţă Sprint backlog: task-urile din sprint
SPRINT BOARD
SPRINT REVIEW MEETINGS
Revizuirea muncii care a fost facută sau nu
Demo
Membri echipei aşteaptă feedback
SPRINT RETROSPECTIVE
Echipa reflectă asupra sprintului trecut
Îmbunatăţirea continuă a procesului
Ce a mers bine sprintul trecut?
Ce poate fi imbunatăţit?
DIAGRAMA BURNDOWN
CATEGORII DE ROLURI
Porcii ( ) – cei direct implicați în procesul de dezvoltare, angajați să construiască proiectul și care sunt trași la răspundere
Conducătorul Scrum Deţinătorul de produs
Echipa
Puii -Chickens - cei care nu sunt implicaţi direct în dezvoltarea proiectului, dar de a căror părere trebuie să se ţină cont. În abordarea agilă un aspect foarte important îl reprezintă implicarea utilizatorilor, clienţilor, oamenilor de afaceri în procesul de dezvoltare . Utilizatorii Clienţii Managerii
CONDUCĂTORUL SCRUM– SCRUM MASTER
Elimină impedimente le
Imbunătăţeşte productivitatea echipei
Promovează un mediu sănătos
Se asigură că rezultatele sunt vizibile pentru Product Owner
Facilitează comunicarea între echipă şi Product Owner
Poate fi oricine
DEŢINĂTORUL DE PRODUS – PRODUCT OWNER
vocea,interesele clientului. responsabil de proiectarea, administrarea, controlul şi prezentarea produsului nerezolvat; ia decizia finală cu privire la sarcinile din produsului nerezolvat şi le asociază priorităţi .
este ales conducere.
de
către
Conducătorul Scrum,
client
şi
ECHIPA – SCRUM TEAM
este responsabilă cu dezvoltarea produsului; are autoritatea de a decide ce măsuri trebuie luate pentru a rezolva sarcina asociată fiecărui sprint şi are dreptul de a se auto- organiza tot în acelaşi scop. l ucrează pentru a oferi ceea ce solicita Product Owner. alcatuita din 5-10 persoane cu abilităţiile necesare: UI, Devs, QA, DBA.
m embri echipei sunt responsabili pentru a atinge ţintele propuse .
CELALALTE CATEGORII Utilizatorii – cei
care vor folosi produsul software
Clienţii
– cei care stabilesc scopul proiectului; sunt implicaţi în procesul de dezvoltare doar când are loc evaluarea unui sprint
Managerii – cei
responsabili de luarea deciziilor finale.
Participă de asemenea în stabilirea obiectivelor şi a condiţiilor de lucru
REZULTATE VIZIBILE
Productivitate
Stres diminuat
Feedback rapid
Reduce “ deseurile ”
Reduce perioadele de aşteptare
Metodă participativă: fiecare membru al echipei este invitat să îşi exprime părerea şi poate contribui la toate deciziile luate în cadrul proiectului, fiind deci 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 în mod facil ş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 Pentalog 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 sau formalizarea excesivă, SCRUM facilitează creşterea productivităţi i echipei.
DEZAVANTAJE:
impactul emoţional al eşecului pe membrii echipei în cazul în care proiectul nu reuşeşte
mărimea echipei e limitata
bazarea pe experienţă
potrivită pentru dezvoltarea de noi produse, şi nu pentru îmbunătăţirea unui produs existent
EXTREME PROGRAMMING XP
o modalitate noua de organizare a ser viciilor de dezvoltare software si, implicit, a af acerii in domeniul IT, avand ca scop antrenarea tuturor elementelor participante la dezvoltarea unui proiect.
o extrem de facila, eficienta, cu risc scazut, flexibila, stiintifica , predictibila si amuzanta metoda de dezvoltare a unui proiect software.
CARACTERISTICI
forma simpla de planificare si urmarire a rezultatelor echipele XP sunt constituite din doi sau grupuri cu design-uri simple, cod test obsesiv
programatorii scriu codul pentru aplicatie in perechi si toti lucreaza impreuna mereu programatorii folosesc un stil consistent pentru ca toata lumea sa poata intelege si imbunatatii codul dupa cum se doreste
Costul : Cat costa realizarea proiectului, resursele (cati programatori,echipament , etc) de care dispunem depind de aceste variabile. Timpul : Determina cand produsul va fi finalizat. Calitatea: Corectit udinea sistemului (definit de client) si cat de bine testat va fi. Scopul : Descrie ce si cat anume va fi facut (functionalitate)
CE CONTEAZĂ PENTRU ACEASTĂ METODĂ?
Codarea.La sfarsitul unei zile de munca , daca programul nu merge si nu face bani pentru client , nu ai realizat nimic. Testarea. Trebuie sa stii cand ai terminat. Testele iti spun acest lucru . Daca esti destept vei scrie testele primele ca sa stii instant cand ai terminat . Altfel , te vei bloca gandindu-te ca poate ai terminat , dar probabil si tu stii ca nu este asa. C u toate astea nu stii cat de aproape de final esti. Ascultarea.Trebuie sa te obisnuiesti sa inveti care este problema de la inceput , astfel incat sa inveti ce teste sa aplici programelor. Probabil nu vei stii , as a ca va trebuii sa devii un bun ascultator al clientilor – userilor , managerilor si persoanelor de afaceri ..
Continuitatea si promtitudinea raspunsurilor de testare a produsului in lucru Posibilitatea de planificare exacta a termenilor de livrare Abilitatea de a oferi un program flexibil al implementarii in functionare a produsului Testarea permanen ta in timp real al produsului si modificarea sau corectarea "din mers" Posibilitatea utilizarii unui sistem de design revolutionar, maleabil, conform necesitatilor clientului si nu conform dorintei impuse de programator Contactul permanent, in timp real, cu utilizatorul final.
Termenele limita de li vrare - acestea vin inevitabil si, de foarte multe ori, suntem pusi in situatia de a cere un extratimp pentru a finaliza
Anularea proiectului - d upa multe teste si discutii proiectul se anuleaza fara ca acesta sa intre in functionare.
Produsul functioneaza, este livrat clientului, insa dupa 2-3 ani acesta devine atat de greu de intretin ut si modificat incat necesita inlocuirea sa completa Produsul este introdus in functionare insa defectiunile sale sunt atat de mari incat se abandoneaza Produsul este introdus in functionare dar acesta nu rezolva problema pentru care clientul cauta solutii Acumularea problemelor in timp face ca, in maximum 2 ani, programatorii cu experienta care au lucrat in cadrul acest ui proiect sa inceapa sa-si urasca propriul produs si sa paraseasca echipa.
?
Fixarea de termene limita de livrare intermediare, pentru module intermediare, care se testeaza in timp real.
Anularea proiectului nu mai este o problema prin faptul ca dezvoltarea sa este supervizata in timp real de client
Intretinerea produsului este mult mai facila datorita interactiunii directe in timp real cu clientul
?
Defectiuni ale produsului nu mai apar datorita testarii permanente de catre client al fazelor intermediare de dezvoltare a produsului Datorita comunicarii permanente cu clientul nu mai este posibila aparitia neintelegerilor asupra scopului urmarit de client XP-ul incurajeaza permanent contactul direct intre echipele de programatori si clienti. In ace st mod produsul final se bucura de imbuntatiri permanente care il fac atrac tiv si la foarte mult timp de la lansarea sa pe piata atat pentru clienti cat si pentru programatori.
AVANTAJE/DEZAVANTAJE XP
Punctul forte a XP-ului consta in cooperarea diferitelor reguli si practici . Programarea extrema este folosita in echipe de lucru mici sau medii pentru o dezvoltare rapida si eficienta , cu o durata si un cost predictibil. Xp functioneaza foarte bine intr-un mediu in care cerintele sunt vagi sau chiar necunoscute. Cea mai mare problema a XP sunt pretentiile proiectate asupra persoanei cu rolul de client in echipa .
IMPLEMENTARI XP DE SUCCES
Ford Motor: Echipa : Aplicatie: Timp :
combinatie unica de agilitate si calitate. 12 programatori, 17 total. sistem de analiza a costurilor 6 ani
Sistemul financiar al Ford Motor a dezvoltat Vehicle Costing and Profit System ( VCAPS) – Sistemul de profit si cost al vehiculelor ,un instrument de analiza care produce rapoarte privind veniturile din productie , cheltuieli , venitul net si profit.
Cele doua metode Scrum si XP sunt foarte as emanatoare astfel incat daca te inscrii intr-o e chipa care se ocupa de una dintre aceste metode o sa iti fie foarte greu sa iti dai seama in ce fel de echipa ai intrat ; Scrum sau XP . Diferentele in general sunt foarte mici dar totodata foarte importante. Sunt 4 diferente importante intre aceste doua metode.
DIFERENTE
Echipele Scrum de obicei lucreaza in iteratii numite sprinturi care se deruleaza pe perioada 2 saptamani – 1 luna . Echipele Xp de obicei lucreaza in iteratii care se deruleaza pe perioada a 1 -2 saptamani. Echipele Scrum nu admit modificari in timpul “ sprinturilor ” , in timp ce echipele XP sunt mult mai flexibile in legatura cu asta.Cat timp echipa nu a inceput sa lucreze la o particularitate a proiectului anume se pot face modificari asupra acestuia.
Echipele de Extreme Programming lucreaza intr-o ordine foarte stricta taskurile proiectului , ele avand prioritate in functie de preferintele clientului. In echipele Scrum , membrii echipei decid ordinea in care se vor des fasura taskurile.
Scrum nu descrie nicio practica inginereasca in timp ce XP face acest lucru.
CONCLUZIE
Principiile lini de ghidare ale programarii extreme sunt : simplitatea , concentrarea asupra zilei de azi , lasand la o parte tentatiile de a face ceva in plus , deoarece mai tarziu acestea s-ar putea sa aduca numai probleme ; replanificarea repetata a intregului proiect sau a unor parti din acesta pentru a putea redistribui optim resursele : productivitatea maxima ; disponibilitatea permanenta a clientului pentru o reactie rapida ; eliminarea orelor de lucru peste program si nu in cele din urma , schimbarea regulilor daca acestea dau gres
BIBLIOGRAFIE