Managementul Proiectelor Software

Click here to load reader

download Managementul Proiectelor  Software

of 42

description

Managementul Proiectelor Software. Curs 6. Managementul Estimarilor. Estimari. “Predictions are hard, especially about the future”, Yogi Berra Planificare , Estimare , Programare Planificare : Identificarea activitatilor ; nu exista o data exacta de inceput si / sau de sfarsit - PowerPoint PPT Presentation

Transcript of Managementul Proiectelor Software

Managementul Proiectelor Software

Curs 6. Managementul Estimarilor

Managementul Proiectelor Software1EstimariPredictions are hard, especially about the future, Yogi Berra

Planificare, Estimare, ProgramarePlanificare: Identificarea activitatilor; nu exista o data exacta de inceput si/sau de sfarsitEstimare: Determinarea dimensiunii si a duratei activitatilorProgramare: Stabilirea de date de inceput/sfarsit, relationari si resurse pentru fiecare activitate in parteEstimariFoarte dificil de realizat, dar adesea necesareRealizate, utilizate si modificate in timpul etapelor de:Planificare strategicaStudiu de fezabilitate si/sau SOW (Statement of Work)PropuneriEvaluarea dezvoltatorului sau a sub-contractantilorPlanificarea proiectului (iterativa)Procesul de estimare:Estimarea dimensiunii produsuluiEstimarea efortului necesar (oameni-luni)Estimarea programului proiectuluiNOTA: Nu toti acesti pasi sunt realizati explicit in cazut tuturor proiectelorEstimariO estimare exacta este un oximoronMajoritatea estimarilor privind proiectele software au de obicei erori de 25-100%Proiecte mici (10-99 FPs), variatie de aproximativ 7% fata de estimarile facute dupa analiza cerintelorProiecte medii (100-999 FPs), 22% Proiecte mari (1000-9999 FPs) 38%Proiecte foarte mari (> 10K FPs) 51%

EstimariConul de incertitudine

Metodologii de estimareDe sus in jos (Top-down)De jos in sus (Bottom-up)AnalogieJudecata expertuluiPretul castigator Metode parametrice sau algoritmiceFormule si ecuatii matematiceEstimari Top-down Se bazeaza pe caracteristicile principale ale proiectuluiUnele dintre celelalte metodologii pot fi de asemenea de tipul Top-down (Analogia, Judecata Expertului si Metodele algoritmice)AvantajeUsor de calculatFoarte eficiente la inceput (ex. Estimarea initiala a costurilor)DezavantajeUnele modele sunt discutabile si s-ar putea sa nu se potriveasca proiectului respectivMai putin precise deoarece nu iau in calcul detaliile proiectului

Estimari bottom-up Genereaza WBSs (Work-Breakdown Structures)AvantajeFoarte eficiente in cazul activitatilor care sunt foarte bine inteleseDezavantajeAnumite activitati nu sunt cunoscute intotdeaunaConsumatoare de timpJudecata expertuluiSe foloseste parerea unei persoane care are o experienta recenta cu un proiect similar

Acesta face o estimare subiectiva

Acuratetea estimarii depinde de expertiza reala a persoanei in cauza

Este esential ca expertul sa fi lucrat la un proiect similar

Se poate folosi si o medie ponderata a mai multor pareriAnalogiiSe folosesc informatiile referitoare la un proiect anterior:Proiectul referit trebuie sa fie suficient de similar din punct de vedere al tehnologiei, tipului si organizariiSe cauta atribute ce pot fi comparate (ex. numar de intrari/iesiri) Pot fi generate functii matematice de comparatieAvantajeSe bazeaza pe date istorice DezavantajeEste de cele mai multe ori dificil sa se gaseasca proiecte similare Datele privind proiectele anterioare pot fi eronate (masurate gresit) Este complicat sa se masoare diferentele dintre doua proiecte Pretul castigatorSe urmaresc pur si simplu alte estimari

Metoda mult mai rapida decat o estimare completa

Necesita informatii referitoare la alte estimari (preturi)

Cumparatorul trebuie sa analizeze cu atentie trade-off-urileMasuratori algoritmiceLinii de cod (LinesOfCode)Puncte de functie (Function Points)Puncte de caracteristici (Feature Points)AlteleNumarul de baloane dintr-un DFDNumarul de entitati ERDNumarul de procese de pe o diagrama de structuraLOC si function points sunt cele mai populare metode(dintre toate tehnicile algoritmice)Majoritatea proiectelor nu folosesc insa nici una dintre metodele de mai sus12Estimari bazate pe codLinii de Cod - AvantajeO metrica comuna si foarte usor de intelesPermite comparatii specificeUsor de masuratLinii de cod - DezavantajeGreu de estimat la inceputul proiectuluiDimensiunea poate varia in functie de limbajul de programare folositNu ia in considerare multe costuri (ex: analiza cerintelor)Programatorii por fi recompensati in functie de aceasta (ex. nr. defecte/nr. linii de cod)Programele de generare automata de cod produc mult cod in excesFunction PointsDimensiunea unui produs software este masurata in functie de complexitatea si numarul de functii pe care le realizeazaTehnica mult mai metodica decat Linii de CodAnalogia cu o casa:Aria Casei ~= Linii de codNumarul de dormitoare si bai ~= Function pointsPrima ia in considerare dimensiunea, in timp ce cea de-a doua ia in considerare atat dimensiunea, cat si functia Sase pasi elementari (vezi slide-ul urmator!)Procesul Function Point 1. Se numara toate functiile business din fiecare categorieCategorii: intrari, iesiri, cereri in baza de date, fisiere sau structuri de date, interfete2.Se stabileste un factor de complexitate pentru fiecare Simplu, Mediu, ComplexSe stabileste o pondere pentru fiecare in intervalul 0-15Rezultatul este un total neajustat al punctelor de functie3. Se calculeaza si se aplica un multiplicator de influetaAre o valoare intre 0.65 si 1.35; se calculeaza in functie de 14 factori diferiti4. Rezultatul este un total de puncte de functie Acest rezultat poate fi folosit pentru estimari comparativeMetoda Wideband DelphiAbordare ce se bazeaza pe consensul de grupSe prezinta problema unui grup de experti, impreuna cu un formular de raspunsSunt realizate discutii in grup, sunt colectate opinii anonime si apoi se ofera un feedbackDiscutiile sunt continuate pana in momentul in care se ajunge la un consensAvantajeUsor, ieftin, se foloseste expertiza mai multor persoaneNu necesita date sau informatii istoriceDezavantajeGreu de repetatUneori nu se poate ajunge la un consens, sau se ajunge la un rezultat complet eronatEstimarile si reutilizarea coduluiTipuri de cod:NouModificatReutilizatDaca o bucata de cod este modificata in proportie mai mare de 50%, atunci este considerat un cod nouFactorii care duc la reutilizarea codului sunt foarte variati:Reutilizarea codului dureaza doar 30% din timpul necesar scrierii unui cod nouModificarea unui cod deja existent dureaza doar 60% din timpul necesar scrierii unui cod nouEfortul necesar integrarii unui cod refolosit sunt aproape la fel de mari ca cele necesare integrarii unui cod nouEstimarea efortuluiModele:EmpiriceMatematiceSubiective

Se exprima in unitati de durataOameni-luna (sau personal-luna)Estimarea efortuluiMcConnell propune folosirea unor tabele de orar pentru a converti estimarile de dimensiune in estimari de efortCa si in cazul estimarilor parametrice de dimensiune, aceste tehnici au un grad mai mare de confidenta daca sunt iau in considerare date istoriceDe multe ori, estimarile de dimensiune si de efort sunt combinate (nu este recomandat, dar este o realitate foarte des intalnita in majoritatea proiectelor) Programarea bazata pe angajament un dezvoltator isi ia un angajament pe baza unei estimari propriiCOCOMOn literatura de specialitate privind dezvoltarea entitilor software, sunt prezentate un numr foarte mare de modele de evaluare a costurilor

Cel mai bine documentat i transparent model disponibil este COCOMO COnstructive COst MOdel

Scopul modelului COCOMO este de estima influena a 15 factori de cost n determinarea efortului de dezvoltare a entitilor softwareCOCOMO Factori considerati Fiabilitatea reprezint caracteristica de siguran a funcionrii entitii software n condiiile tehnice existente i ntr-un interval de timp; dimensiunea bazei de date const n mrimea bazei de date exprimat ca numr de tabele, numr de utilizatori, volum de date stocat, numrul de legturi dintre tabeleComplexitatea software evideniaz structura entitii exprimat ca numr de componente i legturile dintre acestea, avnd funcii diferite; elementele componente se influeneaz unul pe cellalt atunci cnd intervin schimbri privind starea lor Restricii de timp de execuie se refer la entitile software care trebuie s fie construite conform restriciilor de resurse i timp; creterea timpului de execuie conduce la nerespectarea termenului de dare n exploatare a entitii, pe de o parte, i la creterea costurilor prin sporirea consumului de resurse, pe de alt parteCerine de memorie se refer la posibilitatea de a stoca un volum foarte mare de date; un nivel redus la capacitii de stocare determin creterea costului i un timp mai mare de dezvoltareCOCOMO Factori considerati Hardware vizeaz atingerea nivelului de calitate proiectat pentru entitatea software care necesit un volum mare de hardware cu cerine de calitate specificate; insuficiena hardware determin o scdere a calitii i creterea costului entitii softwareCerine de timp de rspuns are un rol important n asigurarea unui nivel ridicat de ncrcare a resurselor; aceasta se asigur prin scderea timpului de rspuns; Experiena de lucru cu platforma hardware presupune cunoaterea caracteristicilor, a tehnicilor i metodelor care trebuie implementate n lucrul cu platforma hardware aleas pentru dezvoltarea entitii softwareAnaliza calitii reprezint un control al nivelului de satisfacere a cerinelor formulare; orice deviere de la cursul planificat conduce la creterea costului i a orizontului de timp n care entitatea trebuie s fie elaboratCOCOMO Factori considerati Experiena cu aplicaia este un factor de reducere a costurilor de dezvoltare; lipsa sa atrage costuri suplimentare legate de atragerea personalului sau pregtirea profesional a celui existentCalitatea programatorilor constituie factor de reducere a costurilor pentru programatori cu un nivel ridicat al competenelor profesionaleExperiena cu limbajul de programare conduce la reducerea timpului de implementare n limbaj a entitii software i la o reducere a costurilor datorit unui volum mai mic al resurselor antrenateCOCOMO Factori considerati Folosirea tehnicilor moderne de programare au rolul de a crete eficiena de implementare a entitii software i creterea nivelului de calitate a acesteia Folosirea instrumentelor software asigur asistarea procesului de dezvoltare care determin o reducere a timpului n care entitatea este realizat i a reducere a costurilor prin substituirea de resurse clasice Cerine de durat a proiectului este factorul cu rol deosebit n stabilirea costului proiectului de dezvoltare a unei entiti software; creterea sau reducerea duratei de dezvoltare conduce la o cretere a costului datorit accenturii utilizrii intensive, respectiv extensive a resurselorCOCOMOCostul datelor conine elemente subiective de apreciere. Acesta este un alt element care difereniaz bunurile de date. Alturi de elemente cantitative incluse de productor, n costul de obinere a datelor sunt introduse i elemente de apreciere privind importana atribuit de consumator pentru datele achiziionateAstfel, costul datelor include i o component subiectiv, alturi de cea obiectiv, cuantificabil numericEstimari concluzii intermediare Estimarile calitative sunt necesare foarte devreme, dar la acel moment informatiile sunt foarte limitateEstimarile foarte precise pot fi realizate aproape de sfarsitul proiectului dar in acel moment nu mai sunt necesarePot fi folosite insa in proiectele viitoareCele mai bune estimari sunt cele care se bazeaza pe experientele anterioarePolitica estimarilor: Se poate anticipa o taiere a fondurilor din partea managementului superiorProbleme principaleSchimbarea tehnologiilorLipsa de date anterioareVariatia foarte mare a tipurilor de proiecteNatura subiectiva a estimarilor softwareSupra si sub-estimariSupra-estimariProiectul nu va fi finantatEstimari conservative cara garanteaza in proportie de 100% succesul unui proiect pot insemna probabilitati de finantare egale cu zero.Legea lui Parkinson: Work expands to take the time allowedPoate fi rezultatul unui rol dublu: manager + membru al echipeiSub-estimariPot duce la probleme calitative (se elimina/limiteaza faze cheie ale proiectului precum faza de testare)Nu se pot atinge termenele limitaProbleme morale si de motivatie a echipeiEstimarea iterativaEste un proces in care estimarile sunt rafinate gradualLa fiecare etapa de planificare se facea cea mai buna estimare posibilaEstimarile sunt revizuite iterativ in timp ce planurile sunt re-ajustatePlanurile si deciziile sunt si ele revizuite in functie de noile estimariSe incearca pastrarea unui echilibru: prea mule revizuiri vs. prea putineTermenele limitaTermene limita realeLegate de un eveniment externTrebuiesc respectate pentru ca proiectul sa se desfasoare cu succesEx: sfarsitul anului fiscal, termen limita contractual, etc.Termene limita artificialeSunt stabilite de catre o autoritate arbitraraPot avea un grad de flexibilitatePrezentarea estimarilorModul in care o estimare este prezentata poate avea un impact foarte diferitTehniciCalificative plus-minus6 luni +/-1 lunaIntervale6-8 luiCalificative de risc+/- cu informatie adaugataEx. -2 saptamani daca dezvoltatorii sunt agajati mai repedeCazuriCel mai bun / Planificat/ Curent / Cel mai prostFactori de confidenta1 Aprilie probabilitate de 10% , 1 Iulie 50%, etc.Alti factori referitori la estimariExperienta angajatilorUn agajat nou sau junior va necesita mai mult timp decat un angajat cu experienta pentru a indeplini un anumit task

Task-uri comune Intalniri, telefoane, cautari pe Internet, zile de inbolnavire

Pot fi folosite produse comerciale de estimare automataNecesita configurari bazate pe datele anterioareAnaliza financiara a proiectelorConsideratiile de natura financiara sunt de multe ori foarte importante in alegerea proiectelor

Exista trei metode principale de determinare a valorii financiare a unui proiect:Analiza NPV (Net Present Value) - Valoarea Actualizata a InvestitieiRandamentul investitiei (Return Of Investment)Perioada de amortizareValoarea actualizata a investitiei (NPV)NPV reprezinta valoarea neta actualizata- acea valoare prezenta a beneficiilor obtinute printr-o investitie, dupa ce s-a tinut cont de orizontul de timp specific proiectului pentru care se calculeaza si luand in considerare valoarea in timp a investitiei.Daca valoarea NPV este negativa, ea indica cu certitudine faptul ca proiectul nu ar mai trebui realizatDaca insa este pozitiva, atunci nu mai ofera indicii referitoare la ceea ce ar trebui facutO valoare pozitiva nu poate fi comparata cu alt proiect decat daca orizontul de timp si dimensiunile investitiei sunt aceleasi.NPV - Exemplu

Return on Investment (ROI)ROI - "return on investment" este o unealta indispensabila pentru a intelege valoarea unei investitii in tehnologie si presupune luarea in calcul a mai multor componente ale afacerii Anvergura proiectului: cati oameni vor fi ajutati de aplicatie? Cu cat numarul acestora este mai mare cu atat se poate realiza un ROI mai mare Repetabilitate utilizarii: cat de des vor fi sprijiniti oamenii de aplicatie? Cu cat mai des, cu atat mai mare va fi ROI.ROIPrintre factorii secundari trebuie luati in considerare urmatorii:

Costurile- cu cat costa mai mult o anumita rutina de activitate, cu atat mai mare va fi beneficiul dedus din automatizare sau din suportul tehnologic specificCunoasterea- cu cat este mai mare potentialul de reutilizare a informatiei in sistem, cu atat este mai mare si ROIColaborarea- comunicarea intre angajati este costisitoare, astfel ca, cu cat va fi mai extinsa componenta de colaborare, cu atat va fi mai mare ROI potentialIntelegerea unui ROI nefavorabilDaca ROI este in mod drastic negativ, exista probabil probleme de anvergura. repetabilitate sau costuri prea mari Daca ROI este mai mic decat este nevoie pentru a initia proiectul, este foarte posibil sa poata fi corectat astfel: Modificarea calendarului costurilor: schimbarea costurile din anul initial prin distribuirea investitiilor de instruire si consultant ape parcursul celorlalti aniNegocierea preturilor: o mica scadere procentuala a preturilor poate determina o crestere dramatica a ROI, in functie de dimensiunile proiectuluiCresterea graduala a costurilor cu angajatii pentru instruire si alte scopuri, pe masura ce utilizarea tehnologiei devine mai eficienta si determina cresterea ROIIntelegerea unui ROI nefavorabil (continuare)Schimbarea strategia de dezvoltare. Utilizand tehnologia pentru a obtine beneficii mai mici la inceput sau evaluarea posibilitatii de a apela la servicii externe, toate acestea pot determina un ROI initial pozitiv, iar tehnologia poate fi implementata la o scara mai mare in viitorRe-examinarea factorilor de corectie. Daca exista o abordare conservatoare in ceea ce priveste factorii de corectie si beneficiile de productivitate, este posibil sa fie evitata chiar acea tehnologie care este cea mai potrivita

Perioada de amortizarePerioada de amortizare este intervalul de timp necesar obtinerii beneficiilor pentru a stinge costul initial al proiectuluiAcesta este un indicator cheie al riscului - intr-un mediu tehnologic in schimbareMajoritatea companiilor doresc proiecte IT care sa aiba o perioada de amortizare relativ scurtaNPV, ROI, Payback Period: Ex 1

NPV, ROI, Payback Period: Ex 2

Alti indicatori de analiza financiaraTCO sau costurile totale de detinere asigura o buna masuratoare pentru scopurile bugetare dar nu poate fi utilizat ca indicator pentru aprecierea beneficiilor profunde ale unui proiect din moment ce calculeaza mai degraba cele mai mici costuri, in loc de cele mai mari beneficii. Deoarece costul este numai unul dintre factorii analizei de tip ROI, utilizati ROI

IRR sau rata interna de rentabilitate indica rata de profit a unui proiect, dar prezinta la randul ei inconveniente: include o rata de re-investitie egala cu ea insasi. In cele mai multe cazuri, calculul realizat cu ajutorul acestui indicator induce in eroare si nu ar trebui niciodata utilizat pentru evaluarea tehnologiilor

cROI inseamna ROI cumulativ pentru o perioada de trei ani si nu este un indicator foarte fidel pentru ca depaseste in mod dramatic ROI prin utilizarea sumei beneficiilor de-a lungul a trei ani. Nu ar trebui sa il utilizati ca instrument de masurare