Sunteți pe pagina 1din 14

ACADEMIA DE STUDII ECONOMICE, BUCUREȘTI

Facultatea de Cibernetică, Statistică și Informatică Economică

Agile methods and BI

Profesor coordonator: Student:

Corbea Alexandra Stoica Maria Georgiana


CUPRINS

I. Introducere 2
II. Descrierea metodologiei Agile în BI 3
III. Principiile pe care se bazează Agile Business Intelligence 4
➔ Programarea Extrema(XP) 5
➔ Scrum 6
➔ Proces unificat Agile (AUP) 7
➔ Dezvoltarea bazată pe caracteristici (FDD) 8
➔ Crystal 10
➔ Kanban 11
IV. Concluzie 12

Bibliografie

1
I. Introducere

Având în vedere că în zilele de astăzi se folosesc din ce în ce mai des metodele agile,
majoritatea organizațiilor iau decizia de a se folosi de acestea, în scopul unei mai bune
organizări.

De obicei, aceste metode se folosesc pentru dezvoltarea de programe sau proiecte în


cadrul organizațiilor, folosindu-le, de obicei, project managerii. Ceea ce stă la baza dezvoltării
agile este segmentarea task-urilor și a sarcinilor, dezvoltarea progresivă a acestora și care are ca
scop secundar crearea unor mai bune relații cu clientul prin ședințe și acordări de feedback
periodic în urma unei prezentări, pe parcursul dezvoltării proiectului, în stadiul în care se află la
momentul respectiv.

Pentru a revoluționa procesele tradiționale (spre exemplu dezvoltarea software), Agile a


venit în sprijinul dezvoltării și inovării acestor procese de dezvoltare tocmai prin modul său unic
de organizare și dezvoltare incrementată. Dacă se va alege o metodă de dezvoltare din cele
tradiționale, se va avea în vedere în primul rând realizarea documentației în urma cerințelor
clientului, ca mai apoi mock-up-ul sau schema arhitecturală a proiectului să se realizeze într-un
mod detaliat, cuprinzând toate cazurile și problemele ce ar putea apărea.

Metodele Agile au apărut datorită faptului că trăim într-o societate care este într-o perpetuă
dezvoltare, care evoluează tot timpul și care se adaptează noilor cerințe ale mediului, satisfăcând
cerințele clienților care întotdeauna își doresc din ce în ce mai mult. Ca reacție la aceasta, mai
multe companii și-au realizat propriile metode prin care se adaptau schimbărilor mediului si care
se confruntau cu eventualele probleme origanizaționale. Astfel, putem afirma faptul că metodele
Agile sunt în fapt o grupare de tehnici care diferă între ele și care împărțesc principii de bază
asemănătoare, ca în final scopul comun fiind rezolvarea unei probleme comune din cadrul
organizației.

Majoritatea acestor tehnici nu sunt în fapt niște practici noi. Ceea ce face diferența dintre
metodele Agile şi cele tradiționale este timpul și munca. Fiecare eșec și fiecare succes are la bază
o evoluţie în dezvoltarea proiectelor în cadrul unei organizații, reprezentând astfel o îmbunătățire
în procesul de dezvoltare.

2
II. Descrierea metodologiei Agile în BI

Mai exact, metodologia aceasta este bazată pe împărțirea problemei ce se caută a fi


rezolvată în probleme mai mici urmând să fie planificate pe durate scurte, de obicei una-două
săptămâni.

Agile Business Intelligence se referă la utilizarea dezvoltării de software Agile pentru


proiecte de BI în scopul de a reduce timpul necesar pentru BI-ul tradițional, pentru a arăta
valoarea organizației și pentru a ajuta la adaptarea rapidă la nevoile afacerii în schimbare. Agile
BI permite echipei și managerilor să ia decizii de afaceri mai bune și într-un timp scurt.

Ca urmare a întârzierilor datorate


schimbărilor și detalierii cerințelor clientului
întâlnite în mediul de dezvoltarea software, nu
se recomandă să se planifice un proiect în
detaliu pe o perioadă de timp mai lungă.
Această metodologie are la bază ideea ca la
finalul unui ciclu de dezvoltate (iterație a
procesului) să existe o versiune a aplicației ce
funcționează și poate fi testată cu un număr cât
mai mic bug-uri, care să fie prezentată
clientului. Cu toate că aceasta nu este
terminată, clientul trebuie să o evalueze pentru
a putea să își facă o imagine a nivelului de
dezvoltare a proiectului. După acesta el poate
sa adauge noi cerințe sau sa ceara anumite
modificări și pentru care se pot determina costuri suplimentare ce acesta va trebuie să le suporte
și să își asume faptul că și termenul de finalizare se poate modifica.

Noile cerințe ale clientului vor fi luate în considerare in planificarea următoarei iterații,
astfel nu se vor creea modificări la planificarea dezvoltării aplicației.

Cea mai importantă caracteristică a acestui proces de dezvoltare este dată de comunicarea
frecventă în cadrul membrilor din echipa ce se ocupă de proiect ce se efectuează cu cate o scurtă
ședință ce are loc de obicei în fiecare dimineață în care fiecare membru își prezintă evoluția si
contribuția sa din ultima zi dar și problemele ce au apărut în ziua precedentă întâlnirii . De obicei
la această ședință ia parte și clientul.

3
În acest mod, toți participanții echipei de dezvoltare a proiectului cunosc toate noutățile
de dezvoltare aplicației și prin această metodă pot lua locul oricărui membru din echipă și să
continue munca acestuia sau să ajute un coleg sa rezolve o problema apărută.

Procesul de dezvoltare a unui proiect bazat pe metode Agile folosește ca șablon principal,
atunci când vine vorba de a face modificări periodice ale aplicației, feedback-ul dat de către
client. Astfel, nu se riscă să apară momentul ca un client sa fie nemulțumit de rezultatul
proiectului și să ceară modificarea acestuia în ultima etapă a procesului ce ar putea duce la
prelungirea termenului de finalizare, costuri suplimentare date de modificările ce trebuiesc făcute
pentru a îndeplini noile cerințe aduse de client sau chiar pierderea contractului din cauza
neputinței recreeri proiectului în timp util.

Nu trebuie așteptat prea mult timp pentru a-ti da seama că un lucru nu merge așa cum ar
trebui, ceva ce este oarecum simplu de modificat. Dezvoltarea continua indiferent de probleme și
este cea mai întâlnită în fiecare iterație din procesul agile. Fiecare parte din proiect ce este
amânată în procesul de implementare, mai tarziu se va realiza prost, sau poate deloc . Asta, în
cele mai multe cazuri, va evolua într-o problemă foarte dificilă de controlat.

În mare parte din proiectele în care apare o schimbare survenită în procesul de


implementare sau un bug găsit ceva mai târziu nu duce la consecințe grave sau fatale.

III. Principiile pe care se bazează Agile Business Inteligence


● Frecvent se păstrează versiuni anterioare și funcționale ale aplicației pentru a se putea
vedea progresul, noile modificări sau pentru a se putea întoarce la versiune funcțională atunci
cand apare un bug (perioada pe care se țin versiuni ulterioare este de câteva săptămâni sau
până se finalizează o nouă versiune stabilă )
● Clientul este satisfăcut continuu prin livrarea rapidă a unei soluții software ce se mulează
pe cerințele sale și îndeplinește nevoia acestuia.
● Progresul într-un proiect este dat o nouă versiune funcțională a aplicației.
● Este binevenită orice nouă modificare furnizată de client în legătură cu aplicația.
● Se manifestează zilnic o colaborare strânsă între client și dezvoltatori
● Ședințele de comunicare față în față cu clientul sunt foarte benefice pentru ambele părți.
● În echipele de dezvoltare sunt doar indivizi ce își doresc să lucreze cu adevărat în aceste
proiecte fiind bine motivați.
● Există o deosebită atenție pentru arhitectura pe care se dezvoltată aplicația.
● Se urmărește mereu perfecționarea tehnicilor de programare.
● Echipele sunt mereu bine organizate.
● Este necesar ca echipa să se adapteze rapid la noile circumstanțe.

4
Ca o concluzie putem desprinde că filosofia Agile folosită pentru BI ajută la o mai bună
colaborare între clienți și dezvoltatori susținută de buna comunicare dintre aceștia. Procesele de
învățare și de analiză a proceselor sunt într-o balanță perfect echilibrată cu procesele de
dezvoltare.

Putem spune că în acest moment este unul dintre cele ai bune modele de dezvoltare în
industriile non-critice și care ne permite implementarea rapidă a software-ului.

Pe baza acestor principii, în ultimii ani au fost create, dezvoltate și perfecționate mai
multe metode de lucru ce fac parte din familia metodelor Agile. cele mai întâlnite dinte el sunt:

1. Programarea Extrema(XP)

Programarea Extrema este o metodă unică care se impune prin găsirea de soluții originale
pentru dezvoltarea de proiecte sau aplicații în cadrul organizației, reprezentând în acest mod o
soluție pentru rezolvarea și soluționarea noilor probleme.

Cele patru mari obiective pe care le are în vedere programarea extremă, dar si pe care le
urmăresc programatorii XP le reprezintă simplitatea, acordarea de feedback necesar produsului,
realizarea de relații de prietenie între colegii de echipa în urma unei bune comunicări, dar și
curajul de care oamnenii din proiect dau dovadă. Acest tip de programare s-a dezvoltat și datorită
faptului că se luau în considerare anumite riscuri pe care le-ar fi putut întâmpina proiectuli,
aceste metodologii fiind menite să împiedice orice fel de risc, sa îl minimizeze cât mai mult si sa
maximizeze succesul pe o perioadă de timp .

Programarea extremă vizează un număr mic de oameni , undeva la doi, maxim 10


oameni, cu o experiență nu foarte mare, unde nu se ține cont de prezența tuturor seniorilor sau a
celor cu un grad mare de experiență. În acest sens, pentru un proiect ce are anumite cerințe
dinamice sau care prezintă, de asemenea, un grad ridicat al riscului, se sugerează crearea unei
echipe formate din mai puțini oameni(implicit dacă este vorba de software, un număr redus de
programatori XP).

Ceea ce este esențial la programarea extremă îl reprezintă desfășurătorul de task-uri care


pare a semăna cu un proiect și prin acest mod acesta este estimat conform celor 4 variabile:

- obiectiv (ce anume și care este procentul care poate fi realizabil)


- resursa umană (alocarea oamenilor disponibili în cadrul proiectului)
- durata (timpul care este alocat pentru realizarea proiectului)
- calitate (însușirea care vizează estimarea și feedback-ul pozitiv asupra a ceea ce s-a
implementat în urma proiectului).

2. Scrum

5
Scrum este o metoda agilă de gestiune a proiectelor, care are drept caracteristică formarea
unor echipe mai mici. Elementele de bază ale acestei metodologii și caracteristicile acesteia sunt:

● Anumite cerințe care nu sunt implementate sau care nu au fost rezolvate și care
detaliază ce ar trebui să se facă și care este ordinea cronologică a acestora.
● Implementarea anumitor cerințe care sunt fixate in succesiuni scurte ce poartă
denumirea de „sprinturi”.
● Stabilirea unei ședințe scurte de maxim 10 minute numită “scrum” unde se discută
ce modificări au avut loc, stadiul în care se află proiectul, ceea ce urmează a fi implementat și
posibilele riscuri pe care le-ar putea întâmpina.
● O scurta sesiune de programare și organizare a sprinturilor unde vor fi descrise
sarcinile nerezolvate task-urile ce nu au fost rezolvate și care automat se vor include si acestea in
sprint.
● O discuție asupra sprintului care a fost finalizat, unde membrii proiectului oferă
feedback pe ceea ce a fost implementat cu succes.

Metoda Scrum prezintă o anumită terminologie:

- Srum Master-ul care este acea persoana desemnată să coordoneze activitatea zilnică a
ședințelor și care este întotdeauna la curent cu stadiul curent al proiectului.
- Porci (Pigs) sunt acele persoane care au rolul să reprezinte membrii cărora le sunt
asociate cerințele nerezolvate.
- Găini (Chickens) sunt acei membrii care, pe lângă cerințele atribuite acestora, mai au și
alte sarcini suplimentare.
- Butuc (Back log) este un task care nu a fost rezolvat.
- Sprint-ul face referință la o perioadă de timp între două și șase săptămâni in care se
dorște să fie finalizat cerințele fixate.
- Burn Down simbolizează evoluția zilnică care se raportează la lungimea sprintului.
- Scrum Toon este un grafic care este utilizat la prima implementare a Scrum-ului și are
rolul de a indica echipei implicațiile acesteia.

Un element caracteristic și de bază al metodei Scrum este faptul că adevăratele provocări


care sunt întâmpinate pe parcursul proiectului nu se pot trata într-un mod tradițional, pornind de
la elemente cunoscute. Luând în considerare acestea, Scrum are o abordare empirică, și anume se
focalizează pe maximizarea abilității întregii echipe de a livra rapid și a răspunde eficient la
sarcinile noi.

O schemă reprezentativă a metodei Scrum, care se diferențiază de modelul clasic


Waterfall, este :

6
3. Proces unificat Agile (AUP)

Procesul Unificat Agile este o abordare simplă și ușor de înțeles care este utilizată pentru
dezvoltarea de aplicații folosind tehnicile și conceptele Agile. AUP include concepte cum ar fi :
test driven development(TDD), agile model driven development(AMDD), agile change
management și datebase refactoring pentru a putea crește productivitatea și calitatea soluțiilor
software realizate.

Etapele de proiect cu Agile Unified Process (AUP)

Inception. După cum îi spune și numele, aceasta este faza inițială a proiectului. Scopul
este reprezentat de înțelegerea sarcinilor proiectului, ceea ce se dorește a se implementa și
elaborarea și determinarea unei potențiale arhitecturi a soluției software.

Elaboration. La această etapă se va alege o arhitectura optimă pentru soluția software ce


face obiectul proiectului.

Construction. În această fază se realizează periodic software-ul funcțional,


implementând progresiv funcționalitățile pentru a fi în beneficiul clientului.

Transition. Aici se validează și se pune în producție software-ul livrat către client.

4. Proces unificat esential (EssUP)

Unified Process(EssUP) este un proces iterativ și incremental folosit pentru dezvoltarea


de software.

7
Etapele de Elaborare, Deconstrucție și de Tranzitie sunt grupate în iterații ce poartă
denumirea de “timeboxed”. Etapa de initiere poate fi împărțită într-un grup de iteratii, în cazul în
care este vorba despre un proiect pe o perioadă de timp destul de mare. Orice îmbunătățire adusă
proiectului va genera o nouă versiune a acestuia.

Majoritatea iterațiilor vor presupune lucrul in cele mai multe discipline de proces, efortul
relativ si accentul schimbându-se pe parcursul implementării proiectului.

Arhitectura pentru Unified Process este realizată de membrii echipei proiectului printr-un
proces de modelare. Fiind vorba despre un sistem, Unified Process ia în considerare mai multe
modele arhitecturale.

O etapă esențială în cadrul acestui proces o reprezintă arhitectura executabilă care este
implementată în timpul fazei de elaborare. Fundamentul dezvoltării este dat de punerea in
aplicare parțială a sistemului, servind la validarea arhitecturii sistemului.

Unified Process se bazează foarte mult pe găsirea si abordarea celor mai importante
riscuri la începutul ciclului de viata al proiectului. Se va face o selecție privind părțile care sunt
livrate la fiecare iterație, mai ales în etapa de elaborare pentru a se asigura ca cele mai mari
riscuri sunt abordate mai întâi.

5. Dezvoltarea bazată pe caracteristici (FDD)

Această metodă din familia Agile este un proces de dezvoltare software iterativ și
incremental . FDD este combinația mai multor caracteristici folosite și apreciate în industria
programării ce formează un ansamblu coerent și bine fixat. Scopul acesteia este de a da un
produs software tangibil într-un mod repetat și în cel mai bun timp fără să poată interveni
probleme neașteptate acestea fiind anticipate și rezolvate de la început.

Prin FDD înțelegem un proces de iterații scurt ce este condus pe baza unui model ce este
format prin cinci activități principale. În primele două activități se stabilește un model de
ansamblu, o arhitectură potrivită pentru respectivul proiect, se analizează tema, cerințele și
funcționalitățile ce va trebui sa le îndeplinească aplicația și se caută soluții eficiente pentru
problemele așteptate.

Restul de trei activități sunt organizate pe iterații astfel încât să se dezvolte fiecare
caracteristică la rând fără să fie combinate pe aceeași iterație. Pentru a se raporta și urmării mai
ușor proiectul de dezvoltare de software fiecare caracteristică este definită pe câte un reper ce
marchează progresul. Astfel se oferă clientului o privire în ansamblu de la un nivel înalt asupra
proiectului fiind la curent cu toate noutățile din sfera de dezvoltare.

8
1) Elaborarea modelului de ansamblu

Începerea unui proiect urmând metoda FDD se face printr-un nivel ridicat de studiu al
domeniului în care se aplică sistemul și contextul proiectului. Se continuă cu crearea de modele a
domeniilor de modelare a grupurilor mici de caracteristici cu scopul de a fi evaluate într-o
adunare de o comisie formată din specialiștii echipei de dezvoltare și clienți. Unul din aceste
modele, sau o combinație formată din mai multe, va fi selectat cu scopul de a deveni model
principal pentru toate domeniile. Modelele din aceeași zonă de activitate se imbină constant pe
baza progresului de dezvoltare într-un singur model principal.

2) Construirea listei de facilități

Cu ajutorul cunoștințelor acumulate în activitatea de modelare se identifică lista


caracteristicilor funcționale. Printre subiectele analizate în vederea realizări unei liste bine
organizate pe clasificări se găsesc activitățile comerciale împărțite pe categorii și pe etape din
construirea fiecărei activități.

Pentru implementarea unei funcționalități nu se recomandă să se depășească o durată mai


mare de două săptămâni, astfel înseamnă că aceasta nu a fost bine structurată și va urma să fie
separată pe criterii mai detaliate.

3) Planul de caracteristici

În urma finalizării listei de caracteristici se va trece la producerea planului de dezvoltare


sistemului informațional și atribuirea pachetelor de funcționalități în echipa de dezvoltare după
cunoștințele fiecărui programator și a specializării acestuia.

4) Design pentru facilități

Este conceput câte un pachet de design corespunzător fiecărei funcționalități. Șeful


echipei de programatori are sarcina de a face câte un grup de caracteristici mici ce trebuie
implementate în maxim două săptămâni.

Responsabilul proiectului se consultă cu specialiști în diagrame ai echipei pentru a detalia


diagramele de secvență în funcție de caracteristica fiecărei activități.

5) Construirea prin caracteristici

După ce s-a încheiat cu succes inspecția de proiectare se demarează implementarea unei


prime versiuni executabilă pentru client. Fiecare programator dezvoltă codul clasei ce ii
corespunde. La final, când toți au terminat sarcinile, codul se unește și se testează întreaga
aplicație pentru ca riscul de nefuncționalitate să fie minim.

9
Dacă sistemul informatic a trecut cu succes de toate testele acesta este lansat pe piață și
începe a fi promovat.

6. Crystal

Metodele Crystal sunt considerate și descrise ca "metodologii ușoare". Folosirea


cuvântului Crystal vine de la piatra prețioasă cu același nume, unde, în termeni de software,
fețele cristalului sunt o vedere diferită asupra "nucleului subiacent, care este plasat dedesubt" al
principiilor și valorilor. Totodată, fețele pot fi și o reprezentare a tehnicilor, a instrumentelor, a
standardelor și a rolurilor.

Deoarece echipele pot avea sarcini similare în diferite moduri, familia de metodologii
Crystal este foarte tolerantă la aceasta, ceea ce face ca metoda Crystal să fie una dintre cele mai
simple metodologii agile care se aplică.

Dintre toate metodele din familia Crystal, există șapte proprietăți comune predominante,
și anume:

● Livrare frecventă
● Îmbunătățiri prudente
● Comunicare prietenoasă sau osmotică
● Siguranță personală
● Accentul
● Acces facil la utilizatorii experți
● Mediul tehnic cu teste automate, gestionarea configurației și integrare frecventă

Echipa trebuie să fie în aceeași cameră pentru ca aceasta să funcționeze. Acest lucru se
datorează faptului că, dacă dezvoltatorul trebuie să întrerupă activitatea pentru a chema echipa să
adreseze o întrebare, procesul lor de gândire va fi probabil pierdut.

Folosind acest tip de comunicare, fluxul informațional se scurge rapid în întreaga echipă.
Întrebările pot fi răspunse rapid și toți membrii echipei știu ce se întâmplă, precum și capacitatea
de a corecta orice idei greșite care ar putea apărea.

Siguranță personală. Acest lucru are legătură cu problema libertății de vorbire în cadrul
unui grup de oameni. Dacă o persoană este ridicolă de fiecare dată când pune o întrebare, atunci
va fi mai puțin probabil să vorbească data viitoare. Oamenii din echipă trebuie să aibă încredere
reciprocă și să se simtă liberi să vorbească despre probleme sau orice ar putea apărea.

10
Accentul în Crystal se referă la două lucruri: în primul rând, să se concentreze pe o
sarcină individuală într-un proiect într-un timp în care să a se realizeze progrese și, în al doilea
rând, se referă la direcția în care se îndreaptă proiectul.

7. Kanban

Kanban este o metodă de învățare pentru a gestiona și a îmbunătăți activitatea în


sistemele umane. Această abordare are scopul de a gestiona munca prin echilibrarea cerințelor cu
capacitate disponibilă și îmbunătățirea gestionării blocajelor la nivel de sistem. Elemente de
lucru sunt vizualizate pentru a oferi participanților o privire de progres și de proces, de la început
până la sfârșit, de obicei, printr-o Kanban board.

Această metodă este o abordare a procesului de schimbare pentru organizațiile care


utilizează vizualizarea cu o tăbliță Kanban, care să permită o mai bună înțelegere a muncii și a
fluxului de lucru. Ea sfatuieste limitarea în curs de execuție, care reduce cantitatea de deșeuri de
multitasking și de comutare context, expune probleme operaționale și stimulează colaborarea
pentru a îmbunătăți sistemul.

Kanban se concentrează pe clienți și pe munca necesară să răspundă nevoilor lor. Aceasta


are șase practici generale:

- vizualizare,
- limitarea în curs de execuție,
- gestionarea fluxului,
- politici explicite,
- bucle de feedback,
- evoluția în colaborare sau experimentale.

Ele presupun ca văzând activitatea, procesul și evoluția acestuia să păstreze și să


amplifice schimbările utile și să învețe din greșeli și tehnicile ineficiente.

IV. Concluzie

11
Prin adoptarea agilă, organizațiile înregistrează o rentabilitate mai rapidă a investițiilor în
BI și sunt capabile să se adapteze rapid nevoilor de afaceri în schimbare. De asemenea oferă un
cadru simplu de promovare a comunicării și reflecției cu privire la munca în rândul membrilor
echipei.

Dezvoltarea de soluții de BI stabilește timpul, calitatea și resursele ideale de la început.


Menționarea resurselor fixe poate fi una dificilă, mai ales când dezvoltatorii sunt trași de la
sarcini de către incidentele apărute în timpul producției, în timp ce domeniul de aplicare rămâne
variabil.

Principala diferență între dezvoltarea agilă și dezvoltarea iterativă este că metodele agile
completează mici porțiuni ale livrabilului în fiecare ciclu de iterație, în timp ce metodele iterative
evoluează întregul set de rezultate în timp, completându-le aproape la sfârșitul proiectului.

La finalul celor spuse mai sus despre toate metodele Agile enumerate putem trage
concluzia că această suită a ajutat mult la dezvoltarea organizațională a modului de lucru în
companiile de dezvoltare software datorită ideilor și principiilor innovative aduse.

BIBLIOGRAFIE

12
1. http://revistaie.ase.ro/content/31/novac.pdf , consultat în noiembrie 2019.
2. https://ro.wikipedia.org/wiki/Scrum_(programare) , consultat în noiembrie 2019.
3. http://www.trilex.ro/Metodologii/IT-Agile-AUP-RUP.htm , consultat în
noiembrie 2019.
4. https://en.wikipedia.org/wiki/Unified_Process , consultat în noiembrie 2019.
5. https://en.wikipedia.org/wiki/Feature-driven_development , consultat în
noiembrie 2019.
6. https://en.wikipedia.org/wiki/Kanban_(development) , consultat în noiembrie
2019.
7. https://www.datapine.com/blog/introduction-to-agile-business-intelligence/ ,
consultat în noiembrie 2019.

13

S-ar putea să vă placă și