480 likes | 607 Views
Managementul P roiectelor Software. Universitatea “Politehnica” Bucuresti Facultatea de Automatica si Calculatoare Catedra Calculatoare Conf. Dr. Ing. Costin-Anton Boiangiu Costin.Boiangiu@cs.pub.ro. Managementul Proiectelor Software. Capitolul 3. Faza de planificare.
E N D
Managementul Proiectelor Software Universitatea “Politehnica” Bucuresti Facultatea de Automatica si Calculatoare Catedra Calculatoare Conf. Dr. Ing. Costin-Anton Boiangiu Costin.Boiangiu@cs.pub.ro
ManagementulProiectelor Software Capitolul 3. Faza de planificare
Planul de proiect • Planul de proiect : • estedocumentul cu care culmineazatoateactivitatile de planificareexecutate de catremanagerii de proiect • are un important rolcomunicational: oferamanagementului superior o vedere de ansambluasupraobiectivelorproiectuluisiasupramoduluiprin care acesteavorfiindeplinite • planurile de proiectsunt de obiceisupuseunui review foarteatentdeoarecegreseli flagrante lasatenerezolvate in aceastaetapa pot conduce la problemefoarte grave in faza de executie
Structuraplanului de proiect • Sumarulproiectului • un overview de nivelinalt al proiectului • Sectiunea de planificare • modul de executie al diferitelorproceduri de planificare • modul de dezvoltarecevafifolosit, estimareatimpilor de executie etc. • Sectiunea de urmarire (tracking) • masuratorilecevorfifacute in timpulproiectului • sistemelefolositepentruinregistrareadatelor, etc. • Sectiuneadestinataechipei • structurasimembriiechipei • rolurilesiresponsabilitatilediferitilormembriaiechipei
Planul de proiect - detalii • Un proiect software este o munca de echipa; in managementuluneiechipe de dezvoltatetrebuiescluate in considerareatatobiectiveleproiectului, cat siobiectiveleindividuale ale fiecaruimembru al echipei • Comunicarea, atat cu membriiechipei cat si cu clientii, esteesentiala; planificareatrebuiesaia in considerareeventualeconflictece pot aparea in relatia cu ambelepartimaisusmentionate • Documentareadetaliata a diferitelor task-uri de planificareesteesentiala; de asemenea, un review atent din parteamanagementului superior estenecesarapentru a detecta din timpeventualeleprobleme de planificare
Planul de proiect - detalii • Informatiiesentiale in planul de proiect: • Obiectiveleproiectului • Procesul de dezvoltarefolosit • Modul de management • Estimareaefortului • Punctele de control intermediar (Milestones) • Planul de management al riscului • Controlulcalitatii • Planul de urmariresiverificare al proiectului • Organizareaechipei • Modul de rezolvare el eventualelorconflicte in cadrulechipesi/sau cu clientul
Planificarea pas cu pas • Pasul 0 – Alegerea proiectului • SelectareaproiectuluiestenumitasiPasul 0 deoareceeste o etapace se afla de fapt in afaraprocesului principal de planificare al proiectului • In aceastaetapa au loc activitaticeduc la luareauneidecizii in legatura cu proiectecatevorfiincepute – aceastadeciziepoatefiluata individual saupoatesafaca parte dintr-o strategiepetermen lung a companiei
Planificarea pas cu pas • Pasul 1 – Identificarea domeniului si a obiectivelor proiectului • Identificareaobiectivelorsimasurareaeficientei cu care acestea pot fiatinse • Instituireauneiautoritati in cadrulproiectului • Identificareatuturorpersoanelorinteresate in proiect, precumsi a intereselorindividuale ale fiecareia • Modificareaobiectivelor in luminaanalizeiasuprapersoanelorinteresate in proiect • Stabilireametodelor de comunicare cu toatepartileinteresate
Planificarea pas cu pas • Pasul 2 – Identificarea infrastructurii • Stabilireamodului in care proiectul se incadreaza in strategiacompaniei • Identificareastandardelorsi a procedurilor de instalare • Identificareamodului in care vafiorganizataechipa de dezvoltare • Deciziilestrategicesunt de obiceidocumentate fie intr-un plan de strategie business, fie intr-un plan tehnologicdezvoltatpebazaplanului business
Planificarea pas cu pas • Pasul 3 – Analiza caracteristicilor • Stabilireatipului de proiect (proiectul are ca finalitateatingereaanumitorobiective/un anumitprodus) • Identificareacelormaiimportanteriscuri • Analizamodului de implementare, avand in vederecerinteleutilizatorilor • Selectareaciclului de viatafolositpentrudezvoltare • Revizuireaestimarilorasupraresurselor
Planificarea pas cu pas • Pasul 4 – Identificarea produselor si a activitătilor • Identificareasidescriereaproduselor finale cevorrezulta ca urmare a proiectului • Documentareaeventualelorprobleme ale produsului • Dezvoltareauneiretele de activitatiideala • Modificarearetelei de activitati, luand in considerarenevoiapentruetapeintermediaresipuncte de verificare • In aceastaetapaactivitatilesuntdescrisefoarte in detaliu; planurile de termen lung suntdescrisesuccint, accentulfiind pus pe task-urileimediate
Planificarea pas cu pas • Pasul 5 – Estimări ale efortuluipentrufiecareactivitate • Efectuarea de estimarifolosind o abordare de jos in sus • Estimari de personal • Estimari de timp • Estimari de resurse • Revizuireaplanuluipentru a creaactivitatice pot ficontrolate • Activitatilecedureazamulttimpsuntfoartegreu de controlat; este de preferat ca acesteasa fie impartite in sub-activitati cat maiscurte, pentru a se puteamasura cat maieficientstadiul in care se aflaproiectul.
Planificarea pas cu pas • Pasul 6 – Analiza riscurilor • Identificareasicuantificareariscurilordatorateactivitatilor • Importanta (seriozitatea) riscului • Probabilitatea de aparitie • Planificareareduceriiriscurilorsi a uneimodalitati de masurare a evenimentelorneprevazute • Ajustareaplanurilorsi a estimarilorastfelincatsaia in considerareriscurileidentificare anterior
Planificarea pas cu pas • Pasul 7 – Alocarea resurselor • Identificareasialocarearesurselor • Se inregistreazatipul de personal necesarpentrufiecareactivitate • Personaluldisponibilpentruproiectesteidentificatsialocatprovizoriu la diferitele task-uri • Revizuireaplanurilorsi a estimarilor, astfelincatsaia in considerareconstrangeriledatorateresurselor • In cazul in care anumitimebriiaiechipeitrebuiesalucreze la maimult de un task in acelasitimp, se hotaraste o ierarhie de prioritati
Planificarea pas cu pas • Pasul 8 – Revizuirea/Publicareaplanului • Revizuireaaspectelor legate de calitate in planul de proiect • Documentareaplanurilorsiajungerea la un acord din parteatuturorpartilor implicate • Pasul 9 – Executiaplanului • Pasul 10 – Niveleinferioare de planificare
Planificarea pas cu pas – Concluzii(1) • Oricarearfiabordareafazei de planificare a unuiproiect, aceastatrebuiesacontina: • Stabilireaobiectivelorproiectului • Analizacaracteristicilorproiectului • Stabilireauneiinfrastructuri care sacontina o organizarepotrivitasi un set de standarde, metodesiuneltecevorfifolosite in cadrulproiectului
Planificarea pas cu pas – Concluzii(2) • Identificareaproduselor generate de catreproiect, precumsi a activitatilornecesarepentru a creaacesteproduse • Alocarearesurselor la fiecareactivitate in parte • Stabilireaunorpuncte de control a calitatii • Managementulunuiproiecteste un procesiterativ; cand se apropietimpulefectuariiuneianumiteactivitati, aceastatrebuie re-planificatamai in detaliu
Planificarea pas cu pas – Concluzii(3) Sursa: Bob Hughes, Mike Cotterell, Software Project Management - Second Edition (Chapter 2), McGraw-Hill, 1999
Metode de dezvoltare ale ciclului de viata • Proiectein-house • Echipa de dezvoltaresiutilizatoriiapartinaceleiasiorganizatii • Proiectul se incadreazaintr-un portofoliu de sistemeinformationaledejaexistente • Metodelesitehnologiilefolositesunt dictate de standardele locale • Proiecte de tip software house • Utilizatoriisiechipa de dezvoltarefac parte din organizatiidiferite • Metodelesitehnologiilefolositesuntstabilite de catremanagerul de proiectpentrufiecareproiect in parte
Metode de dezvoltare ale ciclului de viata • Alegereatehnologiilorsi a metodologiilor • Tehnologiaaleasaestefoarteimportantadeoarecedetermina: • necesarul de intruire al personalului • tipul de personal care esterecrutat • mediul de dezvoltare (atat hardware, cat si software) • aranjamentele de intretinere ale sistemului • Tipuri de metodologii • OO – Object Oriented • JSP (Jackson Structured Programming) • SSADM (Structured System Analysis and Design Method) • Etc.
Metode de dezvoltare ale ciclului de viata • Alegereatehnologiilorsi a metodologiilor • Criterii: • Produsuldezvoltatva un pachet general (ex. procesator de text) sau un pachet specific uneianumiteaplicatii (ex. sistem de rezervare a biletelor la o companieaeriana)? • Este sistemulunul care necesitaanumiteuneltepentrudezvoltare: • contineprocesariconcurente ale datelor? • este un sistembazatpeinformatii (knowledge-based)? • necesitaprocesarigraficefoarteavansate?
Metode de dezvoltare ale ciclului de viata • Alegereatehnologiilorsi a metodologiilor • Criterii (continuare): • Sistemulesteunul critic din punct de vedere al securitatii? (o eroareaparutapoatepune in pericol de exempluviataunoroameni?) • Care estenaturamediului hardware/software in care produsulvafi operational? • Produsulesteunulorientatpe date sauunulorientatpe control?
Metode de dezvoltare ale ciclului de viata • Planultehnic • Introduceresisumar al contrangerilor • Caracteristicilesistemului • Riscurilesiincertitudinileproiectului • Cerinteleclientuluireferitoare la implementare • Abordarearecomandata • Selectareametodologiei • Metode de dezvoltare • Unelte software • Mediul software/hardware tinta
Metode de dezvoltare ale ciclului de viata • Planultehnic (continuare) • Implementarea • Mediul de dezvoltare • Mediul de intretinere • Pregatirea (training-ul) • Implicatii • Produsesiactivitati ale proiectului • Raportfinanciar
Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Metodestructurate (inclusivmetodele Orientate peobiecte) • Suntalcatuitedintr-o multime de pasisireguli care, candsuntaplicate, genereazaprodiagramele de flux, de date, etc. (fiecareasemeneaprodusestedocumentatatent) • De celemaimulteorisuntmultmaiconsumatoare de timpdecatmetodele intuitive, acestlucruducandsi la o crestere a costurilorproiectului • Avantaje: sistemulestemultmaiputinsensibil la erorisimultmaiusor de intretinut la sfarsit • Recomandate in cazulproiectelormari, care implica multi dezvoltatorisi multi utilizatori
Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Metode de dezvoltarerapida • Se bazeazape workshop-uri de trei-cincizile in care dezvoltatoriilucreazaintensivimpreuna cu clientiipentru a identificasipentru a cadea de acordasupracerintelor business ale proiectului • Un principiuesentialfolositesteacela de time-box – intindereafiecareietape a proiectuluiesteconstransa de un deadline predeterminat, foartescurtsiinflexibil • Cerintelece nu pot fisatisfacuteintr-un anumit time-box, sunt mutate in etapeleurmatoare
Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Modelul in cascada • consideratmetoda “clasica” de dezvoltare a sistemelor • permitecontroluleficient al proiectelorsiestimareafoarte exacta a timpilor de executie Sursa: Bob Hughes, Mike Cotterell, Software Project Management - Second Edition (Chapter 2), McGraw-Hill, 1999
Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Modelulprocesului in V Sursa: Bob Hughes, Mike Cotterell, Software Project Management - Second Edition (Chapter 2), McGraw-Hill, 1999
Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Modelulprocesului in V (continuare) • Extindeactivitatile de testare din modelul in cascada • Fiecare pas are un proces de validarecorespunzator; in cazul in care apardefecte, procesul de validareintoarcedezvoltarea la pasul de dezvoltarecorespunzator; totipasiiurmatoritrebuiescapoirefacuti • Ideal, acest tip de feed-back artrebuisaaparanumai in cazuluneidiscrepantemariintrespecificatiileuneianumiteactivitatisiceeace a fost de faptimplementat
Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Modelul in spirala • Poateficonsiderat ca o altavedere a modelului in cascada • Un mai mare grad de detaliuestenecesat la fiecareetapa a proiectului, acestfaptjustificandsi un mai mare grad de incredere in probabilitate de succes a proiectului • Acest model poatefivazut ca o spirala in care sistemuldezvoltatestevazut din ce in cemai in detaliu la fiecarerotatie • Un proces de evaluare a etapeiprecedente are loc inainteainceperiiuneinoiiteratii
Metode de dezvoltare ale ciclului de viata • Modelul in spirala (continuare) • Dezvoltareiterativă • bazatăpeideea de ciclu de producţie • procesul de dezvoltarecuprindemaimultecicluri de producţie • Dezvoltareincrementală • fiecareciclu are o complexitate (un nivel de detaliere) mai mare decâtprecedentul • Modelulspirală (Boehm, 1986)B. W. Boehm, A spiral model of software development and enhancement, ACM Sigsoft, Software Engineering Notes, 11(1986), No. 4, 14-23. • combinătrăsăturile • cicluluiclasic de viaţă • prototipizării • element nou: ANALIZA RISCURILOR
Metode de dezvoltare ale ciclului de viata • Modelul in spirala (continuare) Activităţileunuiciclu de producţie • (1) planificare • stabilireaobiectivelor, alternativelor de rezolvareşi a restricţiilorpentruciclulcurent • (2) analizariscurilor • analizeazăalternativele de rezolvareşirestricţiile din (1) • identificăfactorii de risc • decizia GO/NO GO (continuă/renunţă) • dacătoatecerinţeleclientuluisuntîndeplinite, dezvoltareaesteîncheiată • dacăriscurilesuntpreamari se opreştedezvoltarea • dacăriscurile se pot ţine sub control, se începe un nouciclu de producţie • (3) inginerie - începutulunuiciclunou • dezvoltareaprodusuluipeurmătorulnivel de detaliere • se pot folosi • modelulclasic • prototipizarea - pentruclarificareaunorcerinţe • (4) evaluareaclientului
Metode de dezvoltare ale ciclului de viata • Modelul in spirala (continuare) Avantaje • abordareevoluţionistă • ajută la înţelegerea riscurilor şi la identificarea modalităţilor de ţinere sub control a acestora • prototipizarea este folosită ca mecanism de reducere a riscurilor • ciclul clasic de viaţă este încorporat într-un cadru iterativ, care reflectă mai bine lumea reală Dezavantaje • analizariscuriloreste o activitateacritică • atenţieacordatăriscurilortehniceîntoateetapeleproiectului • dacă un risc major nu estedescoperit
Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Prototipuri software Tipuri de prototipuri: • Throw-away • Folositdoarpentru a testauneleidei; se renunta la el in momentul in care incepedezvoltareasistemului operational • Evolutionar • Este dezvoltatsimodificat in continuupana in momentul in care poatedeveni un sistem operational • Incremental • Sistemul operational estedezvoltatsiimplementat in etapemici; feed-back-ul de la etapeleanterioareestefolositsiinfluenteazadezvoltareaetapelorurmatoare
Metode de dezvoltare ale ciclului de viata • Prototipuri software (continuare) Dezvoltatorulcrează un model al programului care trebuierealizat; modelulpoatefi: • un prototippehârtiesau un model bazatpe calculator care prezintăinteracţiuneaom-calculator într-o manierăcepermiteutilizatoruluisă o înţeleagă • un prototipfuncţional, care implementează un subset al funcţiilorpe care trebuiesă le realizezeprogramul • un program existent care îndeplineşte o parte din/toatefuncţiiledoritepentrunoul program • o parte din funcţiileacestuiatrebuieîmbunătăţiteîntimpulprocesului de dezvoltare
Metode de dezvoltare ale ciclului de viata • Prototipuri software (continuare) Activităţi: • (1) colectareacerinţelor • dezvoltatorulşiutilizatorulstabilesc • obiectivelegenerale • cerinţelecunoscute • domeniileîn care cerinţelevorfi definite ulterior • (2) producerearapidă a unuiproiect • se reprezintăaceleelemente care suntpercepute de utilizator • formatuldatelor de intrare • formatulrezultatelor • (3) construireaprototipului • (4) evaluareaprototipului de cătreutilizator • (5) rafinareaprototipului • (6) realizareaprodusului final Activităţile (3) - (5) se repetăpânăcândsuntsatisfăcutetoatecerinţeleclientului
Metode de dezvoltare ale ciclului de viata • Prototipuri software (continuare) Avantajeleutilizariiprototipurilor: • Comunicareaesteimbunatatita: de obiceiclientiipreferasa nu citeascadocumentelefoartemariproduse de catremetodele de dezvoltarestrcuturate. Chiarsidaca le citesc, le estemultmaigreusaisifaca o idee in legatura cu sistemuldezvoltat, spredeosebire de utilizareaunuiprototip • Cand nu exista un sistemdeja existent care poatefiimitat, clientii pot testadiferiteprototipuripentru a isidaseama care dintreele le estecelmaiutil
Metode de dezvoltare ale ciclului de viata Avantajeleutilizariiprototipurilor (continuare): • Necesarul de documentatieesteredusdatoritafaptului ca prototipulpoatefiexaminat in practica • Costurile de intretineresuntreduse; dacaclientul nu ceremulteschimbari ale prototipului, estefoarteprobabil ca acestasa nu cearanicimulteschimbari ale produsului final • Clientii pot fimultmaiimplicati in deciziile legate de design-ul final al sistemului
Metode de dezvoltare ale ciclului de viata • Metode de dezvoltare software • Tehnicilegeneratiei a 4-a
Metode de dezvoltare ale ciclului de viata • Tehnicilegeneratiei a 4-a(continuare) 4GL - Fourth Generation Languages Instrumente CASE Computer-Aided Software Engineering • specificareacerinţelor se face folosindlimbaje de specificare • apropiate de limbajul natural SAU • folosindnotaţiimatematice (algebrice) • sprijinpentrumodelare, inclusivteste de consistenţăşivaliditate • traducereaautomată a specificaţiilorîn cod sursă (forward engineering), trecându-se prinnivele de • analiză - modele de analiză • proiectare - modele de proiectare • generareaspecificaţiilor din cod sursă (reverse engineering) • facilităţigrafice de nivelînalt • sprijinpentru diverse metodologii de analiză şi proiectare • generare automată de documentaţie
Metode de dezvoltare ale ciclului de viata • Tehnicilegeneratiei a 4-a(continuare) Activităţi: • (1) colectareacerinţelor • ideal: clientuldescriecerinţelefolosindlimbajul de specificare al instrumentului CASE • înrealitate: dialog între client şispecialistulînspecificareacerinţelor • estenecesarăcunoaşterealimbajului de specificare (mai ales cândacesta nu esteapropiat de limbajul natural) • (2) proiectare • include elaborarea de modelepentruanalizăşiproiectare • estenevoie de o reprezentare a modelelor care săpermităgenerareaautomată de cod • (3) implementarefolosindgenerareaautomată de cod sursă • estecompletată (eventual) de codificareamanuală a zonelorneacoperite de generareaautomată • (4) testarea • se respectătoateetapeletestării • elaborareadocumentaţiei
Metode de dezvoltare ale ciclului de viata • Tehnicilegeneratiei a 4-a(continuare) Avantaje • productivitateridicată • întreţinereuşoară a programelor DACĂ • cerinţelesunt formulate corect • activitatea de proiectareestebinestructurată Dezavantaje • curba de învăţare a folosiriiinstrumentelorestelungă • codulgenerat nu esteîntotdeaunaşieficient • costuri de achiziţie/întreţinerefoartemari • probleme de migrare, comunicare cu alteinstrumentesimilare • problemădeschisă: întreţinereasistemelormari Regulă: instrumentul nu înlocuieştegândireaumană Vezi: http://www-106.ibm.com/developerworks/components/library/co-ipuse.html?dwzone=components
Metode avansate de planificare si analiza a proiectelor • Liste de task-uri detaliate (wbs – workbreakdownstructures) • WBS reprezinta de fapt o decompozitie a munciinecesaredezvoltariiunuiproiect in bucati din ce in cemaimici • Decompozitiaesteefectuatapana al nivelul la care existasuportulpentru o urmariredetaliata a progresului la care se aflaproiectul • Fiecare pas elementar din decompozitievaavea un cost si o estimaremunciiindividuala; eforturileaferentesicosturileactivitatilor de la nivelelesuperioaresunt calculate pursisimpluprininsumareaeforturilorsicosturiloractivitatilor din care suntcompuse • In momentul in care lista de task-uri, impreuna cu estimarileaferente, esteaprobata, estimarile de cost devinbugetulproiectului
Metode avansate de planificare si analiza a proiectelor • Liste de task-uri detaliate (wbs – workbreakdownstructures) SursaExemplu: Richard Bechtold, Essentials Of Software Project Management (Section 17), Management Concepts Inc., 1999
Metode avansate de planificare si analiza a proiectelor • Liste de task-uri detaliate (wbs – workbreakdownstructures) • O intrebareesentiala in dezvoltarealistei de task-uridetaliateesteurmatoare: Pana la ceniveltrebuiescdescompuseactivitatile? • Ideea care se urmaresteesteurmatoarea: la nivelulcelmai de jos, o activitate nu poatefispreexempluterminata in procent de 50%. Aceastatrebuiesa fie atat de simplaastfelincatsa nu se poataspunadespre ea decat ca este fie 0% sau 100% realizata. • Exemple: pentruproiectelecedureazaintre 4 si 12 luni, activitatiletrebuiescdescompuse in general panacandnivelulcelmai de josreprezintaaproximativ 1 sau 2 saptamani de munca; pentruproiectelemailungi se paoteajungesipana la 4 sichiar 8 saptamani
Metode avansate de planificare si analiza a proiectelor • Liste de resurse detaliate (Rbs – Resource breakdownstructures) • Suntsimilarelistelor de task-uridetaliate, dar se refera la organizatie, echipa de dezvoltatorisipersonalulimplicat in realizareaprodusului • Relatiaceamaiimportantaceestedocumentataprinintermediul RBS esteaaceea a autoritatii: cine raspunde in fata cui si cine spune cui cesafaca • Nu esteimportantapozitia in cadrulorganizatiei a fiecaruiindivid in parte (se urmarestedocumentareafaptului ca angajatul X raspunde in fatamanagerului Y, indiferentdaca X estesecretara, unuldintreprogramatorisau un alt manager)