Curs 7 Curs 9

[Curs nr.8]


Alocarea resurselor

Aceasta problema se refera la urmatoarele aspecte ale organizarii echipei:

Intr-o echipa normala apar in general toate rolurile descrise in capitolul precedent, intre ele existand relatii de comunicare. Comunicarea cea mai intensa apare intre managerul de proiect, arhitect, abstractionist si inginerii de aplicatii, adica la nivelul nucleului echipei.

Relatiile intre diversele roluri tind sa duca la formarea unor subgrupe in cadrul echipei. De regula, aceste subgrupe sunt:

Grupul pt. arhitectura

Este format din arhitect si unul sau mai multi abstractionisti. la distribuirea sarcinilor in cadrul acestui grup se va aplica urmatoarea regula: responsabilitatea pt. o categorie de clase va fi alocata unui singur abstractionist, iar responsabilitatea structurii de ansamblu - unui singur arhitect.
Astfel, arhitectura globala a sistemului este controlata de arhitect, iar microarhitectura fiecarei categorii de clase este controlata de un abstractionist (chiar daca acesta poate avea in sarcina mai multe categorii de clase; ideea este ca de aceeasi categorie de clase sa nu se ocupe mai multe persoane).
In cazul proiectelor mari grupul de arhitectura poate fi suplimentat si cu alte roluri, ca: asigurarea calitatii, integrare, analiza.
Grupul de arhitectura trebuie creat la debutul proiectului si va fi mentinut pana la faza de intretinere (chiar daca in acest punct grupul va include alte persoane decat initial).

Grupul de analiza

Se formeaza la inceputul ciclului de viata, cand are loc colectarea cerintelor. De obicei acest grup este format din analisti, la care se adauga eventual controlori de calitate si o parte a grupului de arhitectura (care trebuie sa cunoasca indeaproape toate detaliile privitoare la cerinte).
Rolul echipei de analiza este mai estompat pe durata fazei de proiectare, urmand sa devina mai pregnant in portiunile de inceput ale fiecarei iteratii din faza de evolutie.

Grupul de proiectare

Se formeaza spre sfarsitul fazei de analiza, cand incep sa fie explorate diverse alternative de proiectare.
Acest grup este format din abstractionisti si cativa ingineri de aplicatii, fiind supervizat de arhitect.

Grupul de implementare

Incepe sa se formeze in faza de analiza, dar varful de activitate il va avea pe durata evolutiei.
In cazul proiectelor OO de obicei se intalnesc o multime de grupulete de implementare care se ocupa de:

Grupul de instalare

Este responsabil cu instalarea sistemului la beneficiar. Grupul este condus de un integrator si ocazional, poate fi suplimentat cu abstractionisti sau ingineri de aplicatii si cu redactori de documentatie.
Grupul de instalare se formeaza la inceputul fazei de proiectare astfel incat procesul de instalare sa poata fi pus la punct inainte ca prima versiune sa fie livrata. Varful de activitate al acestui grup se atinge in faza de evolutie.

Echipa de interventie

Are ca scop investigarea unor aspecte neclare ale sistemului, validarea unor alternative de proiectare, depistarea si inlaturarea unor bug-uri. Altfel spus, echipa de interventie asigura managerului de proiect resursele necesare pt. a ataca riscurile neprevazute care pot sa apara.
Echipele de interventie sunt grupuri puternice si adesea solitare. Ele trebuie constituite din persoanele cele mai competente in domeniul problemei de rezolvat, cum ar fi: detectivi abili in cautarea si distrugerea bug-urilor, arheologi software suficient de rabdatori si minutiosi in descifrarea codului unor programe vechi, mostenite, sau programatori hiperactivi, capabili sa incropeasca prototipuri in cateva ore sau zile.
De regula, dimensiunea medie a unei echipe de interventie este de 1-2 persoane, iar durata ei de viata este de 1-2 saptamani. Identificarea rolurilor si a grupurilor care formeaza o echipa de dezvoltare sta la baza conceptului de echipa fluida, adica o echipa in care membrii nu sunt "incremeniti" pe anumite responsabilitati, ci sunt repartizati pe roluri in functie de necesitatile proiectului si de aptitudinile personale. Cu alte cuvinte, pentru un proiect se stabilesc intai rolurile necesare, apoi sunt identificate persoanele potrivite cu rolurile.
Conceptul de echipa fluida poate fi adaptat la orice dimensiune a unui proiect, respectiv a unei echipe. Astfel:

Se observa ca aplicarea unei ierarhii a rolurilor de forma arhitect-abstractionist-inginer de aplicatii permite o diviziune a controlului care face gestionabila complexitatea unui proiect.

In ceea ce priveste distributia in timp a activitatii corespunzatoare diferitelor roluri, se poate spune ca exista 3 etape ("valuri") distincte:


Transferul de tehnologie

Curs 7 Curs 9