Sunteți pe pagina 1din 4

80

Revista Informatica Economic, nr.3(31)/2004

Extreme Programming - a Challange for Software Developers


Prof.dr.ing. Cornelia NOVAC Universitatea Dunrea de Jos, Galai, cornelia.novac@ugal.ro The paper aims to describe a new development and achievement methodology for software products, particularly focusing on Extreme Programming-XP. The author examined the specific outcomes derived from this methodologys implementation, with a view to projecting real informatics systems. Since the technique used throughout the paper was Pair-Programming, the results obtained by means of applying it are specifically presented for illustration purposes. Keywords: software engineering, extreme programming, pair-programming. ntroducere Lansat n 1996 de ctre Kent Beck, programarea extrem este o metodologie nou care propune rezolvri originale n dezvoltarea aplicaiilor informatice, fiind creat totodat ca o soluie pentru problemele supuse permanent schimbrilor. Programarea Extrem (XP - Extreme Programming) reprezint de fapt o alt filosofie de realizare a sistemelor software concretizat printr-un un set de reguli i practici folosite n dezvoltarea aplicaiilor. Se consider c realizarea produselor software nu nseamn numai ierarhii, responsabiliti i termene limit, aa cum se afl acestea pe masa administratorului, ci nseamn colaborarea oamenilor din care este format echip. Accentul n dezvoltarea de aplicaii se pune n primul rnd pe scrierea de programe. Comunicarea, simplitatea, feedback-ul i curajul sunt cele patru obiective urmrite de programatorii XP [1]. Programarea extrema a fost de asemenea creat i pentru a ine cont de riscurile proiectului. Practicile XP sunt pregtite s tempereze, s micoreze riscul si s mreasc probabilitatea unui succes de durata. XP se adreseaz unui grup mic de programatori, ntre 2 si 10 programatori. Pregtirea lor poate fi una obinuit, i nu este necesar prezena majoritar a seniorilor sau experilor. Programarea extrem nu trebuie aplicat pe un numr mare de angajai. Se remarc faptul ca pentru un proiect cu cerine dinamice sau risc ridicat, este mai eficient o echip redus numeric de programatori XP, dect o echip

numeroas. Se consider ca membri ai echipei nu numai informaticienii, ci i managerii i utilizatorii sistemului, toi lucrnd mpreun, pentru a pune ntrebri, a negocia i a crea teste funcionale. Schematic, programarea extrem se prezint n figura 1. Filosofia de baz n practica XP [2] o reprezint planul de activiti care arat c un proiect poate fi cuantificat i evaluat pe baza a patru variabile: scop, resurse, timp, calitate. Scopul reprezint ce i ct de mult se poate realiza. Resursele indic ct de muli oameni sunt disponibili pentru a fi implicai n proiect. Timpul este durata afectat realizrii proiectului. Calitatea este indicatorul cunoscut n ingineria software care permite aprecierea i evaluarea oricrui produs. Echipa managerial poate decide doar pentru trei dintre cele patru variabile. Echipa de programatori va decide ntotdeauna asupra variabilei rmase. De remarcat, c scderea calitii sub excelent provoac schimbri i pentru celelalte trei variabile. Programarea extrem pune accentul pe a testa eficient. Testele ofer securitate i ncredere att programatorilor ct clienilor. Testele sunt create nainte de a scrie programele, n timp ce sunt scrise programele i dup ce s-a terminat faza de implementare. Pe msur ce se descoper erori, sunt adugate alte noi teste. n practic, pentru a ncepe aplicarea programrii extreme cel mai bun moment este debutul unui nou proiect. Cteva sptmni sunt dedicate scrierii cerinelor utilizator i evaluarea soluiilor de prob pentru proble-

Revista Informatica Economic, nr.3(31)/2004

81

mele cu un risc ridicat. Apoi se organizeaz o edin de planificarea a activitii la care sunt invitai clienii, programatorii i conducerea pentru a se pune cu toii de acord. Fie-

care iteraie ncepe cu o edin de planificare a iteraiei. Din acest moment activitatea este demarat.

Fig.1. Fluxul activitilor n programarea extrem n concluzie, dei noua metodologie de programare presupune folosirea multor practici simple i intuitive, totui, include reguli i tehnici care sunt mpotriva obinuinelor i instinctelor programatorilor. Programarea n perechi O alt practic de succes n programarea extrem este programarea n perechi. Acesta nseamn c la aceeai staie de lucru (calculator) lucreaz doi oameni. Unul are tastatura i este cel care scrie codul, iar cellalt, observ codul cutnd erori sau mbuntiri [4]. Rolurile se schimb frecvent (cel puin o dat pe or). Cei doi programatori interacioneaz intens. Se mai practic schimbarea echipei de doi dezvolttori cel puin o dat pe zi, pentru a asigura o omogenizare ct mai mare a colectivului de realizatori. Este foarte important de subliniat ca cei doi programatori sunt amndoi autorii codului rezultat. Nu sunt autori fiecare pe jumtate din cod, sunt amndoi coautorii ntregului cod i au dreptul fiecare la jumtate din beneficii. Aceast metod de programare determin o cretere spectaculoas n rspndirea cunotinelor n cadrul echipei care lucreaz la proiect. Astfel, la o adic, orice specialist poate s fie suplinit dac situaia este critic. n plus, avantajele majore din punctul de vedere al dezvolttorilor, este c programul rezultat este mult mai lizibil (dat fiind faptul ca particip doi oameni la elaborarea lui), mai puin predispus la erori i este scris cu o viteza mai mare. Programarea n perechi este un stil de programare n care cei doi programatori lucreaz unul lng altul la un singur calculator i colaboreaz mereu pentru elaborarea aceluiai algoritm, program sau test. Aceast practic a demonstrat c sporete productivitatea i calitatea produselor software. De asemenea, cei care au folosit acest stil de programare sunt 100% de acord ca au mai mult ncredere n soluiile obinute atunci cnd programeaz n doi, iar 90% gsesc mult mai plcut munca dect atunci cnd programeaz singuri. Dac avem n vedere aspectele psihologice ale nvrii [3], fiinele umane pot s rein i s nvee n limite reduse. Ei trebuie s se consulte cu alii pentru a depi aceste limite. Cnd se lucreaz n pereche, fiecare are propriul set de cunotine i deprinderi. Sunt colaborativi cei care ntrevd o posibilitate i recunosc c doar propriile lor puncte de vedere, perspective sau talente nu sunt suficiente pentru a le transforma n realitate. Programarea n perechi a condus la descoperirea eficienei educaionale a metodei nvrii n perechi. Astfel, metodica pedagogic poate profita de o nou metod de nvare i anume nvarea n perechi. Impactul acestei metode const n faptul c partenerii nva unul de la altul. Aceasta se asociaz cu o alt metod extrem de eficient pentru nvare, i anume metoda profesorului. Metoda profesorului este apreciat ca cea mai buna metod de nvare, deoarece atunci

82

Revista Informatica Economic, nr.3(31)/2004

cnd eti pus n situaia de a nva pe altcineva, de a explica anumite noiuni trebuie s gseti argumente puternice pentru a-l convinge. Pentru nvarea limbajelor de programare numrul optim de studeni care s lucreze la acelai calculator este de doi. Un student care lucreaz singur la calculator nva mai greu dect atunci cnd are un partener de lucru. Cnd unul dintre partenerii de programare nu tie sau nu nelege ceva, atunci cel de-al doilea este pus n situaia de a explica. O practic pentru studeni este ca, cel care nu este driver s caute n documentaie o cale de rezolvare pentru problemele care apar. Nivelul erorilor nregistrate scade substanial. Pe piaa muncii, diferenele ntre nivelele de cunotine sunt tot mai mari. Informatica ca tiin, evolueaz foarte rapid i pe ramuri diferite. Informaticienii trebuie s-i refac bagajul de cunotine la intervale foarte scurte. Nu sunt permise vacanele prea lungi! Un transfer al informaiilor la locul de munca este benefic att pentru angajai ct i pentru angajator. mprtirea experienelor acumulate ntre parteneri este cheia economisirii resurselor de timp, dar i financiare dac ne referim la cursurile de formare, respecializare, seminarii etc. Atunci cnd o nou informaie important este nvat de cineva din echip este ca i cum ai pune o pictur colorat ntr-un vas cu ap. Deoarece perechile se schimb tot timpul, informaia este difuzat rapid n cadrul echipei, aa cum culoare se rspndete n vas. Totui, spre deosebire de culoare, informaia devine din ce in ce mai intens i mai bun calitativ, pe msur ce se rspndete, fiind mbogit de experiena i aportul propriu al membrilor. Studiu comparativ S-a fcut urmtorul experiment: Am propus spre rezolvare patru probleme (aplicaii informatice) scrise toate n acelai limbaj (Java). Am selectat apoi 8 programatori fr nici un criteriu suplimentar dect acela de a cunoate limbajul de programare Java. Pe patru dintre ei i-am lsat s lucreze individual iar pe ceilali patru i-am organizat ntr-o echip constituind dou perechi pe care le-am

schimbat permanent. Rezultatele au fost urmtoarele: Programele realizate n perechi au avut cu 15% mai puine erori (figura 2). Dup perioada iniial de acomodare, timpului total de programare irosit pe fiecare sarcin scade drastic (figura 3). mpreun, perechile irosesc doar cu 15% mai mult timp dect programatorii individuali. n plus, dup primul program, diferena de timp ntre programatorii individuali i programatorii n perechi devine nesemnificativ statistic.
Rezultatele testarii
100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% Programul 1 Programul 2 Programul 3 Programul 4

Programare individuala Programare in perechi

Fig.2. Numrul de erori


Timpul necesar programarii
100% 80% 60% 40% 20% 0% Programul 1 Programul 2 Programul 3 Programare individuala Programare in perechi

Programele lucrate in paralel de cele doua grupe

Fig.3. Timpul necesar programrii Implementarea programrii n perechi a crescut satisfacia muncii i a oferit o mai mare ncredere n proiectul n ansamblu i n contribuia proprie, n timp ce calitatea i eficiena au crescut. Aceste afirmaii sunt susinute statistic de urmtoarele dou diagrame (figura 4, figura 5), care au fost elaborate n ase etape de pregtire a studenilor, prin aplicare de chestionare. Raportndu-ne la ncrederea i fiabilitatea produselor software, persoanele chestionate au relevat un rezultat ncurajator (figura 5). Programarea n perechi creeaz sentimentul de siguran, de garanie c sursa programului este una dintre cele mai bune variante i c erorile au fost eliminate eficient. Aceste aspecte se datoreaz prezenei partenerului care supravegheaz mereu modul de evoluie al programului i are posibilitatea s furnizeze alternative i s verifice corectitudinea ncepnd cu sintaxa i pn la artificiile

Revista Informatica Economic, nr.3(31)/2004

83

de programare.
Munca este mai placuta datorita programarii in perechi
10 0 % 90% 80% 70 % 60% 50 % 40% 30% 20% 10 % 0% Pr o g r amat o r i p r o f esi o ni st i St ud ent i 1 St ud ent i 2 St ud ent i 3 St ud ent i 4 St ud ent i 5 St ud ent i 6

De acord

Dezaproba

Fig.4. Aprecieri legate de lucrul cu un partener


Increderea in produsele obtinute folosind programarea in perechi
100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% Programatori profesionisti Studenti 1 Studenti 2 Studenti 3 Studenti 4 Studenti 5 Studenti 6

De acord

Dezaproba

Fig.5. Diagrama de ncredere Simplitatea i eficiena programelor obinute se cuantific i n funcie de numrul de linii de cod scrise pentru rezolvarea problemei (figura 6). n industria de software este bine cunoscut tendina de elaborare a strategiilor care conduc la un cod de ntreinere ct mai sczut care nseamn de fapt reducerea dimensiunii codului surs. Programarea n perechi sprijin acest deziderat.
Numarul liniilor de cod rezultate 120% 100% 80% 60% 40% 20% 0% Programul 1 Programul 2 Programul 3 Programe realizate in paralel de cele doua grupe Programare individuala Programare in perechi

nuu, ei inspecteaz munca celuilalt pentru depistarea i eliminarea erorilor ct mai rapid i eficient. n plus, are loc o meninere a nivelului concentrrii n mod reciproc, de ctre parteneri. De-a lungul timpului, programatorii au fost obligai s realizeze o munca solitar, strns legai de un sistem de nvmnt al evalurii individuale, uneori, excluznd posibilitatea de nvare. Fcnd tranziia ctre programarea n perechi, trebuie s se drme anumite bariere personale, ncepnd cu nelegerea faptului c prin comunicare se obin progrese. Programatorii trebuie sa fie contieni de beneficiile intercomunicrii, mai eficient dect preferina comun (uneori nnscut) de a munci singuri i nederanjai. n al doilea rnd, ei trebuie s-i mpart cu ncredere munca, acceptnd instruciuni i sugestii de mbuntire, cu scopul extinderii propriilor deprinderi. Ei trebuie s accepte c nu sunt infailibili i c partenerii lor le pot oferi posibilitatea de a-i mbunti munca. n final, un programator care lucreaz n perechi trebuie s accepte dreptul de proprietate n comun al produsului i, uneori, criticile sau sugestiile de mbuntire. Tranziia spre programarea n perechi l duce pe programatorul solitar n exteriorul zonei sale de confort, dar posibilitatea de a obine rezultate care ar fi imposibil de atins de unul singur, face acest drum s-i merite efortul. Lucrarea reprezint o parte dintre rezultatele obinute n urma aplicrii tehnicilor XP n proiectarea i realizarea unor sisteme cum sunt : aplicaie pentru gestionarea sistemelor proiectate cu ajutorul metodologiei XP i realizarea unei aplicaii Web pentru vnzarea produselor unei edituri (cri, reviste, CD-uri.). Bibliografie
1. J.D.Wells: www.extremeprogramming.org 2. Programarea n perechi: www.pairprogramming.com 3. Elemente psihologice referitoare la programarea calculatoarelor: www.ppig.org 4. http://www.xprogramming.com 5. http://industriallogic.com 6. http://www.agilemanifesto.org 7. http://www.agileuniverse.com

Fig.6. Numrul de linii de cod surs Concluzii Statisticile indic faptul ca programarea n perechi este o tehnica de impact pentru generarea productiv a produselor software de calitate. Perechile lucreaz i mprtesc ideile pentru rezolvarea problemelor complexe aprute n dezvoltarea proiectelor. n mod conti-

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