Documente Academic
Documente Profesional
Documente Cultură
Aspecte
Procesul de realizare a unui produs program devine un proces deosebit de complex odat cu
cresterea dimensiunii produselor program (de regul formate din mai multe componente
intercorelate),
COSTURI
CRETE
CALITATE
SCADE
TERMENE
LUNGIRE
CRETE
8-22
SCURTARE
De remarcat ns c pe axa costurilor i termenelor variaia este invers dect de obicei i invers celei
de pe axa pe care reprezentm nivelul calitii. De exemplu pentru creterea calitii se fac cheltuieli
(costuri) suplimentare i/sau este necesar un timp mai mare de realizare a produsului software.
Mrimea suprafeei triunghiului depinde de stadiul tehnologic din unitatea elaboratoare de software
precum i de nivelul i experiena grupei de analiz-proiectare-programare.
Pentru desfurarea n bune condiii a procesului de realizare a produsului program, se exercit
funciile cunoscute ale conducerii de: previziune, organizare, coordonare, antrenare i controlevaluare, cu adaptrile specifice procesului condus.
Importana conducerii proiectelor / procesului de realizare a produselor program, crete odat cu
trecer- ea de la elaborarea acestora din regim "artizanal" n regim "industrial", fiind demonstrat faptul
c productivitatea muncii elaboratorilor i costurile proiectului depind direct de calitatea
conducerii acestuia.
Dup B.W. Boehm fiecare din greelile de organizare i conducere enumerate n continuare pot dubla
costurile de realizare a unui produs program i, implicit, pot diminua n aceeai proportie
productivitatea:
afectarea de personal nepotrivit n raport cu natura sarcinilor;
alternarea de perioade de "relaxare" cu perioade de "febrilitate", datorit unei proaste
planificri
i mai ales a lipsei de control al modului de ndeplinire a sarcinilor;
lipsa de recompense sau sanciuni n raport cu rezultatele activitatii;
afectarea unui personal numeros proiectului, nainte de a fi definite obiectivele i pe aceast
baz, responsabilitile fiecaruia;
lipsa de preocupare pentru asigurarea din timp a resurselor necesare realizrii proiectului (orecalculator, mijloace de comunicare, seturi de date de test, software ajutator etc.);
nevalidarea specificaiei cerinelor iniiale; neidentificarea i netratarea cu prioritate a punctelor
critice din specificaie.
Cercetrile actuale n domeniul ingineriei software-ului, att pe plan naional ct i mondial, acord o
prioritate crescnd problematicii conducerii proiectelor i n special cuantificabilitii obiectivelor,
resurselor si rezultatelor proiectului (ex: modele de evaluare a costurilor de elaborare a produselor
program, metode de msurare a productivitii muncii elaboratorilor, normarea muncii programatorilor).
Dintre funciile conducerii proiectelor de realizare a unui produs program, cele mai semnificative, sunt
estimare preliminar, planificare, organizare, coordonare, antrenare, control i evaluare.
Importana acestora, aa cum se va vedea n continuare, a condus la conceperea i utilizarea n practic
a unor metode, tehnici i instrumente specifice pentru un proiect-software. Atributele de coordonare i
antrenare se exercit de asemenea n conducerea unui proiect, fcndu-se n special apel la practici de
conducere ad-hoc i la experiena conductorilor. Trebuie de asemenea menionat c ntregul proces de
conducere al realizarii produsului program este n mod direct influenat de obiectivele generale i
structura organizatoric a organizaiei productoare de software.
8.2. Estimarea
proiectului
efortului
de
realizare
Evaluarea efortului de realizare a proiectului este o problem deosebit de important pentru stabilirea,
asigurarea i planificarea resurselor necesare desfsurrii n condiii normale a procesului de realizare a
produselor program.
In acest scop, exist diferite modele de evaluare att a efortului de realizare (exprimat de obicei n
zile/om) ct i a costurilor proiectului.
Marea majoritate a acestor modele iau n considerare urmtoarele elemente de
baz:
dimensiunea produsului program (exprimat n diferite moduri: mii linii surs, mii instruciuni
executabile, mii comenzi masin etc.);
complexitatea produsului
program;
8.3.
Planificare
Planificarea realizrii unui produs program const n stabilirea obiectivelor proiectului i a sarcinilor de
ndeplinit, alocarea resurselor necesare i stabilirea termenelor de realizare. Previziunea, n
cazul produselor program, se realizeaz pe cele trei niveluri cunoscute: strtegic, tactic si operativ.
Planificarea strategic se realizeaz, de regul, la nivelul ntregii organizaii producatoare de software
i are n vedere:
stabilirea tipurilor de produse program pe care le elaboreaz unitatea respectiv, n raport
cu:
obiectivele generale ale unitii ;
resursele disponibile la nivelul unitii;
fondul de programe deja existent;
stabilirea nivelului tehnic i calitativ al produselor program
elaborate,
care depinde de:
competena profesional a membrilor organizaiei;
dotarea cu tehnic de calcul;
posibilitile de specializare, cooperare i procurare de produse software deja existente;
stabilirea termenelor globale de realizare a produselor program;
stabilirea costurilor globale i a preurilor de livrare a produselor
program.
Planificarea strategic are n vedere totodat organizarea intern a unitii realizatoare de produse
program (existena sau inexistena compartimentelor specializate n analiz, proiectare, programare,
ntreinere, certificarea calitaii, livrare etc.) ct i sistemul de relaii cu unitile utilizatoare i cu alte
uniti productoare de software din ar i strinatate.
Planificarea tactic se desfoar la nivelul proiectului i se refer la un produs program concret. n
mod evident, planificarea tactic este derivat din planificarea strategic. Planificarea proiectului
acoper ca orizont de timp ntreg ciclul de viat al produsului program. Ea cuprinde att elementele
legate de alocarea resurselor pe activiti ct i de planificare calendaristic a acestora.
Activitatea de baz a procesului de construire a planului este determinarea pailor individuali ai
planului de lucru. Dezvoltatea pailor planului de lucru rmne nc, oarecum, un proces creativ. Ideile
utilizate pentru formularea fazelor, activitilor i proceselor finale ale planului provin din urmtoarele
surse:
PLANIFICAREA SARCCINILOR
PROBLEMEI
ORGANIZAREA PROIECTULUI
ALOCARE DE RESAURSE
PLANIFICARE
CALENDARISTIC A
SARCINILOR
PLANIFICARE
CALENDARISTIC A
RESURSELOR
RESTRICII
a) Planificarea sarcinilor din cadrul proiectului implic o serie de decizii importante cum
sint:
alegerea modelului ciclului de via a produsului program care se va realiza;
structurarea ciclului de via pe etape, faze, activiti;
stabilirea relaiilor temporale dintre acestea (succesiune, preceden, paralelism etc.);
stabilirea tehnologiilor de realizare a produsului program;
stabilirea metodelor, tehnicilor, instrumentelor ce vor fi utilizate
stabilirea standardelor recomandate a se utiliza n cadrul proiectului;
fixarea punctelor de control i a punctelor de "ngheare" a soluiilor.
Planificarea sarcinilor se desfasoar n mod iterativ, de la nivel global la niveluri din ce n ce mai
detaliate, nti pe faze, etape i apoi pe activiti componente.
Pentru fiecare activitate n parte se stabilesc:
rezultatele de obnut (de exemplu specificaii, seturi de date de test, programe-surs, programe
obiect, documentaii etc.);
sarcinile de executat;
resursele necesare (de exemplu ore-om, ore-calculator);
criteriile de verificare i acceptare a rezultatelor.
Aceast detaliere se realizeaz pn la nivelul sarcinii (sau a pachetelor de sarcini), care poate fi
ndeplinit de o singur persoan, creia i se pot evalua rezultatele i i se pot estima resursele necesare
pentru a fi adus la ndeplinire. O problem deosebit de complex o constituie evaluarea resurselor
necesare pentru realizarea
metodologii
s se discute procesele propuse i orele alocate pentru fiecare cu conductorii de proiect, care
trebuie s aib o exeprien asemntoare n dezvoltarea de procese
n acelai timp, pentru a se cunoate gradul de ncrcare i ocupare a resurselor (oameni i echipamente), se ntocmesc planuri calendaristice individuale pentru fiecare resurs n parte.
Pentru planificarea calendaristic se parcurg urmtorii pai:
se analizeaz fiecare punct al planului de lucru cu scopul de a determina activitile critice din
punct de vedere al efortului. De obicei, aceste activiti, prezint un nivel nalt de dependen
(una trebuie s fie complet nainte de a ncepe cealalt) ct i o ordine logic de realizare.
Activitile non-critice sunt mult mai flexibile la alocarea perioadelor de timp n cadrul planurilor.
se va utiliza o abordare de tip data cea mai ndeprtat de timp posibil de alocat Pentru fiecare
punct al planului se va stabili o dat clar de nceput i o alta de sfrit. Activitile critice trebuie
planificate primele deoarece nu au rezerv de timp. Se vor stabili datele de finalizare ale etapelor
mari ale planului de realizare, pe baza timpilor stabilii pentru fiecare punct al planului
O dat ce planul este complet se trece la dezvoltarea sistemului. Totui, pe parcursul procesului de
planificare, au fost fcute o serie de presupuneri n legtur cu pregtirea membrilor echipei de lucru,
numrul de programe, planul de echipamente tehnice, precum i efortul echipei proiectului. Toate
aceste estimri importante trebuie documentate clar, mai nainte ca ele s poat fi incorporate n plan.
Planificarea efectuat la nivelul ntregului proiect se detaliaz i, mai ales, se corecteaz n cadrul
planificrii operative.
n cadrul planificrii tactice trebuie s se in seama de urmtoarele
cerine:
s se utilizeze o abordare de tip plan de lucru comun pentru toate proiectele (cu pai care au
nume i nelesuri similare);
s se selecteze un pachet de programe standard pentru managementul planurilor de lucru i s se
cear tuturor conductorilor de proiect s l utilizeze pentru gestiunea volumului de lucru (n omore) lucrate;
s se specifice un set comun de date, care vor fi colectate la sfritul fiecrui proiect i care vor fi
comparate cu volumul de lucru efectiv. Datele se refer la numrul de:
- programe / module
- ferestre / ecrane
- rapoarte
- job-uri
- baze de date / elemente
- fiiere
- entiti / atribute
- procese
- obiecte / clase
s se identifice instrumentele i mediile de programare, generatoarele de cod, instrumentele de
tip
CASE i sistemele de gestiune a bazelor de date utilizate de fiecare proiect;
s se determine necesarul mediu de om-ore pentru a realiza analiza, proiectarea i construcia
componentelor;
s se finiseaze i s se mbuntasc factorii om-ore/componente rezultai pentru cerinele viitoare
de estimri.
Planificarea operativ se desfasoar pe parcursul desfurrii proiectului. Ea
presupune:
Planificarea operativ este necesar datorit coreciilor fa de planificarea tactic, care n general sunt
8.4.
proiectului
Organizarea
Problemele privind organizarea sunt legate de modul de organizare al echipelor, cu implicaii directe
att asupra calitii produsului program ct i asupra eficienei realizrii acestuia.
Exist mai multe tehnici de organizare, n funcie de dimensiunile (respectiv complexitatea)
proiectului, resursele avute la dispoziie i de structura organizatoric concret din unitatea
elaboratoare a produsului program.
n continuare, vor fi prezentate cteva tehnici de organizare, mai reprezentative, i
anume:
programarea
deschis;
echipa programatorului
ef;
echipa
"chirurgical";
echipa programatorului ef
revizuit.
8.4.1.
deschis
Programarea
Programator 1
Programator 2
Programator 4
Programator 3
8.4.2.
(CPT)
Echipa
programatorului
ef
Spre deosebire de programarea deschis, n acest caz structura echipei i responsabilitile atribuite au
un caracter precis i bine definit.
Principiile pe care se bazeaz acest mod de organizare sunt urmtoarele:
ntreg procesul de realizare a produsului program trebuie structurat pe sarcini precise, care s
poat
fi atribuite membrilor echipei;
Conducere
ierarhic
Utilizator
final
Programator ef
Adjunct
Secretar bibliotecar
Programatori
Bibliotec intern
Bibliotec extern
Biblioteca proiectului este organizat ntr-o bibliotec intern la care nu are acces dect secretarul
bibliotecar i o bibliotec extern la care au acces toi membrii echipei.
Procesul de realizare al produsului software trebuie structurat precis pe sarcini, care sunt distribuite
membrilor echipei. Prin aceasta sunt create premizele pentru utilizarea resurselor hardware i software
n contextul sarcinilor i a membrilor echipei; se asigur posibiliti de nvare n cadrul echipei; se
asigur vizibilitatea programelor pe tot parcursul elaborrii; se asigur coordonarea proiectului de ctre
o singur persoan (ef de proiect).
Programatorul ef este conductorul tehnic al echipei. El rspunde fa de nivelurile superioare din
ierarhia conducerii organizaiei de reuita proiectului sub aspect tehnic i pstreaz legtura cu
beneficiarul. Sarcinile sale principale constau n:
introduce rigurozitate n distribuirea responsabilitilor i a
sarcinilor;
8.4.3.
chirurgical.
Echipa
Prin aceast tehnic, specializarea membrilor echipei este i mai detaliat dect n cazul metodei
programatorului ef, ncercndu-se o diminuare a dezavantajelor acesteia din urm (nsi denumirea
tehnicii sugereaz acest aspect).
i n acest caz echipa este compus dintr-un ef de echip, ajutat de un administrator, care, dac
problema este mai complex, poate fi asistat de un secretar (care nu trebuie s fie neaprat un
programator). Editarea documentaiilor este fcut de un editor, care poate avea la rndul su un
secretar. Ceilali programatori sunt mprii pe categorii (fig.8.5.).
ef
Adjunct
Administrator
Responsabil cu instrumentele
Secretar
Editor
Secretar
Specialiti n limbaje
Responsabil cu testarea
eful echipei i adjunctul su (n termenii originali "surgeon" i "copilot") ndeplinesc sarcini similare
cu cele din cadrul metodei programatorului ef, cu urmtoarele diferene:
- eful echipei nu se mai ocup de recrutarea personalului i procurarea resurselor, (sarcini ce revin
administratorului), rmnnd strict desemnat pentru coordonarea tehnic a proiectului;
- adjunctul are sarcina de a asigura i interfaa cu alte echipe.
Administratorul rspunde de asigurarea condiiilor de lucru normale pentru echip: gestionarea resurselor (umane i financiare) ale proiectului, procurarea spaiului, asigurarea accesului i a fondului
8-2020
program
de
Conductor de proiect
Adjunct
Legtura cu utilizatorul
f in a l
Programator
Redactor tehnic
Programator
Conductor proiect
Adjunct
n acest caz, acetia doi preiau i funciile de programare, legtura cu utilizatorul i scrierea
documentaiei.
Pentru proiecte mai mari se poate alctui o ierarhie de RCPT, n cadrul creia legatura dintre echipe
se realizeaz prin intermediul adjunctului (fig. 8.8.)
Administrator
Adj.
Adj.
Adj.
Adj.
Adj.
Dup ce a fost aleas o modalitate de organizare a echipei de lucru se trece la construirea echipei de
lucru.
Selectarea membrilor echipei se poate realiza innd cont de urmtoarele considerente:
Personalul intern
Cnd se selecteaz personalul intern, se vor alege acei care:
- neleg politica firmei
- Sunt familiarizai cu problemele firmei
Consultani
Trebuie s se aleag persoane externe firmei,
care:
- Pot furniza cunotine tehnice de calitate
- Pot propune soluii rezultate din experiena cu clienii sau din situai similare
- Pot aduce noi puncte de vedere n analiza cerinelor
- Nu trebuie s acorde o mare atenie politicii interne a firmei
Pot aprecia urgena i importana proiectului, deoarece sunt pltii
direct.
Programatorii
Este important s se selecteze personalul care:
- Pot asigura cerinele de resurse tehnice ale proiectului la fiecare nivel
- Pot furniza cunotiine tehnice specifice
- Pot furniza un cod de calitate ntr-o perioad scurt de timp.
Utilizatorii
Sistemul este construit att n beneficiul firmei ct i al clienilor care l vor utiliza. Dei echipa de
lucru dezvolt un pachet software comercial, pe baza propriei lor experienei lor, totui echipa va
trebui s aloce o perioad considerabil de timp utilizatorilor finali. Se va stabili cine sunt acetia,
ce rol vor juca pe parcursul procesului de dezvoltare i ct timp va fi necesar s se aloce fiecruia.
Toate acestea sunt decizii critice, care trebuie studiate cu atenie.
Cnd se stabilesc participanii la proiect, este important s se aleag
persoanele:
- asupra crora sistemul va avea un impact direct
- care doresc s se implice
- care au critici la adresa sistemului curent
- care sunt considerate n pas cu noul
- care au imaginaie
- care au influien n propia firm
Personalul de
decizie
Factorul de decizie nu este neaprat o singur persoan. El poate fi i un comitet. n ambele cazuri,
factorul de decizie trebuie s fie capabil s rezolve urmtoarele tipuri de probleme:
- ntrebri despre direcia i scopul proiectului
rezoluii n problemele zilnice, economice sau
tehnice
- recomandri n abordrile sau soluiile problemelor
aprobarea final a personalului, resurselor sau
bugetului.
O dat stabilit factorul de decizie, se va hotr cum se va derula procesul. Mai nti trebuie s se
asigure de faptul c decizia cerut nu a fost deja luat. Se consult manualele de politic a firmei
precum i cele de proceduri, standarde i linii directoare, sau memorandumuri existente, care pot deja
conine rspunsuri la problemele de politic economic.
Dac problema este complet diferit de modul curent de derulare al lucrurilor, trebuie consultai
factorii de decizie.
n al doilea rnd, este necesar determinarea momentului optim pentru luarea unei decizii. O decizie
incorect, datorat unei informaii pariale sau insuficiente, poate produce mari daune. nainte s se
apeleze la factorul de decizie, echipa trebuie s atepte pn sunt colectate toate informaiile relevante.
De multe ori este util s se prezinte o list de decizii alternative, o dat cu direcia de aciune
recomandat de echip. Aceasta va pune factorul de decizie n poziia de a face o alegere, mai degrab
dect a risca o decizie.
8.5.
proiectului
Controlul
Prin aceast funciune a conducerii se urmrete realizarea produsului program la termen, cu consumul
de resurse planificat i n condiiile de calitate specificate. n acest scop pot fi utilizate o serie de
tehnici, dintre care mai utilizate sunt:
verificrile tehnice;
raportarea stadiului proiectului;
controlul modificarilor.
8.5.1.
tehnice
Verificrile
8.5.2.
proiectului
Raportarea
stadiului
Raportarea stadiului proiectului este o tehnic de control a realizrii produselor program. Structura
raportrii este formalizat pentru a permite furnizarea de informaii relevante i la timp conducerii, pe
diferite cicluri ale conducerii proiectului.
Scopul urmrit de tehnic este urmtorul:
actualizarea planului de realizare a produsului program;
determinarea calitii produsului program pe parcursul proiectului i dup finalizare;
discutarea i realizarea problemelor identificate cu ocazia verificrilor
efectuate;
respectarea standardelor unitii;
stabilirea i / sau modificarea asigurrilor de responsabiliti / sarcini;
introducerea unor elemente cu caracter de noutate;
efectuare de comentarii pe domeniile supuse
discuiei.
n timpul unei ntilniri de raportare a stadiului proiectului eful poate cunoate mai bine modul de a
gndi i atitudinea membrilor echipei fa de diferitele probleme, dect prin citirea unui raport de
stadiu.
Tehnica furnizeaz o serie de reguli de raportare a stadiului care se aplic pe cele patru niveluri de baz
de conducere a unui proiect - conducerea unitii, administratorul proiectului, eful proiectului, eful
fazei - si anume:
ntlnirile de raportare a stadiului se in regulat cu o periodicitate stabilit funcie de nivelul de
conducere a proiectului - i vor dura aproximativ o or;
respectivele ntlniri sunt conduse de persoana care are responsabilitatea respectivului nivel de
conducere i la ele particip subordonaii direci ai acestuia;
fiecare ntlnire are o agend de probleme fixate, ca de
exemplu:
- actualizarea planului proiectului;
- discutarea sarcinilor care afecteaz diferite sarcini ale proiectului;
- atribuirea de responsabiliti / sarcini;
- discutarea elementelor cu caracter de noutate i efectuarea de comentarii;
- fiecare participant la ntlnire prezint efului documentele de control solicitate de acesta
(documentele de control pot fi grupate n urmtoarele clase: documente de lansare, documente
de verificare tehnic, documente de urmrire a nivelului de realizare a planului iniial al
proiectului, rapoarte de incidente, cereri de modificare, rapoarte de stare, etc);
problemele identificate pe parcurs sunt raportate pe formulare de raportare a
incidentelor;
conductorul ntilnirii ntocmete un raport asupra stadiului proiectului pe care-l nainteaz
conductorului de pe nivelul ierarhic imediat superior;
problemele care nu intereseaz ntregul personal care particip la ntlnire nu sunt
discutate.
Tehnica precizeaz elementele specifice fiecrui nivel de conducere, relative la raportarea stadiului
proiectului.
Raportarea stadiului proiectului, fiind o tehnic de control ce se utilizeaz pe parcursul ntregului ciclu
de via a unui produs program conform principiilor i regulilor pe care se bazeaz.
Tehnica impune o abordare organizat i disciplinat a cunoaterii stadiului n care se afl un produs
program n momente prestabilite de efii de pe diferitele nivele de conducere a proiectului.
8.5.3.
modificrilor
Controlul
Apariia de modificri pe parcursul ciclului de via al unui produs program fiind inevitabil, existena
unei modaliti de control al modificarilor este de mare utilitate.
Tehnica de control a modificrilor vizeaz numai acele modificri care apar la nivel de cerine, de
specificaii i de cod surs care afecteaz faza anterioar "ngheat" sau efectueaz mai mult decit o
faz a procesului de realizare.
Pentru viabilitatea produsului program este esenial ca aceste modificri s fie controlate de
conducerea proiectului.
Celelalte modificri care apar la nivelul unei faze n scopul nbuntirii soluiei propuse sau nlturrii
unor erori depistate nainte de "nghearea" soluiei fazei sunt analizate, controlate i evideniate la
nivelul respectivei faze de eful acesteia.
Modificrile care constituie obiectul tehnicii de control al modificrilor sunt analizate i numai dac
sunt aprobate vor fi introduse n produs.
Fiecare modificare de acest tip este supus unei proceduri de control
i anume:
documentarea modificrii de ctre solicitant pe un formular - cerere de
modificare;
discutarea cererii de modificare n cadrul ntlnirii de raportare a stadiului proiectului condus de
conductorul direct al solicitantului; dac cererea de modificare este formulat de utilizator, acesta
o d persoanei din echip care asigur legtura cu utilizatorul.
validarea sau invalidarea cererii de modificare de ctre conductor; dac cererea de modificare a
fost invalidat solicitantul poate cere ca ea s fie analizat de urmatorul nivel de conducere;
naintarea cererilor de modificare, de ctre conducatorii de pe nivelul inferior de conducere, ctre
eful de proiect, nsotit de recomndari;
examinarea cererilor de modificare nerezolvate, n ntlnirile de raportare a stadiului conduse de
eful de proiect. Modificrile care nu afcteaz scopul, obiectivele, costul, termenele proiectului
pot fi validate la acest nivel;
modificrile care afecteaz scopul, obiectivele, costul, termenele proiectului trebuie examinate de
administratorul proiectului;
prezentarea imediat a cererilor de modificare urgente, eful
solicitantului;
implementarea modificrilor aprobate este urmrit de eful de proiect i eful de faz;
evidenierea unitar a tuturor acestor cereri de modificare mpreun cu starea
lor.
Tehnica de control al modificrilor se poate utiliza pe parcursul ntregului ciclu de via a unui produs
program ori de cte ori se solicit efectuarea unei modificri din categoria celor care fac obiectul
tehnicii.
Din multitudinea de modificri care se efectueaz pe ntreg ciclu de via a unui produs informatic
tehnica ia n consideraie numai pe acelea critice, care de cele mai multe ori au implicaii asupra
soluiei de proiectare i respectiv de programare, asupra efortului necesar pentru implementarea lor,
asupra costului, respectiv duratei de realizare, i eventual obiectivelor urmrite.