Managementul Proiectelor Software 1.Pptx-libre

67
Managementul Proiectelor Software Universitatea “Politehnica” București Facultatea de Automatică și Calculatoare Catedra Calculatoare Conf. Dr. Ing. Costin-Anton Boiangiu [email protected]

description

kj

Transcript of Managementul Proiectelor Software 1.Pptx-libre

Page 1: Managementul Proiectelor Software 1.Pptx-libre

Managementul Proiectelor SoftwareUniversitatea “Politehnica” BucureștiFacultatea de Automatică și CalculatoareCatedra CalculatoareConf. Dr. Ing. Costin-Anton [email protected]

Page 2: Managementul Proiectelor Software 1.Pptx-libre

Managementul Proiectelor SoftwareCapitolul 1. Introducere

Page 3: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Cuprins Capitolul 1 - Introducere

• Dimensiunea unui proiect software• Planificarea proiectului• Execuția proiectului• Închiderea proiectului• Procesul de dezvoltare• Particularitățile proiectelor software• Noțiuni de bază despre management• Etapele unui proiect

Page 4: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Noțiuni introductive

• Un proiect software are două dimensiuni principale: ▫ Ingineria proiectului

⚫ Se ocupă cu dezvoltarea efectivă a proiectului⚫ Se concentrează pe aspecte precum design, cod, testare

▫ Managementul proiectului⚫ Planificarea și controlul activităților de inginerie în scopul

atingerii obiectivelor proiectului ⚫ Costuri⚫ Timpi de execuție⚫ Calitate

Page 5: Managementul Proiectelor Software 1.Pptx-libre

Dimensiunea unui proiect softwareProiecte mici :

• Echipe mici• Durată de câteva săptămâni• Testare efectuată de un număr redus de persoane• Metode informale de management și dezvoltare

▫ email-uri▫ câteva termene limită▫ comunicare verbală, informală

Page 6: Managementul Proiectelor Software 1.Pptx-libre

Dimensiunea unui proiect softwareProiecte mari:

• Echipe mari; durată câteva luni• Task-urile sunt efectuate cu atenție; metode bine cunoscute• Fiecare produs intermediar este documentat riguros și verificat• Task-urile sunt planificate și urmărite pas cu pas• Rigurozitate și formalitate crescută• Sunt folosite design pattern-uri pentru a permite aspectul unitar al codului și

a ușura modificările; de ex: MVP, MVC• Comunicarea poate avea loc atât între membrii echipei, cât și cu clientul

Page 7: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Proces

• O secvență de pași ce trebuie urmați pentru a executa cu succes o activitate (un task):▫ Împărțirea aplicației în sub-task-uri și atribuirea acestora în

funcție de competențele fiecărui membru al echipei• Într-o organizație

▫ Reunește experiența inginerilor și a managerilor de proiect (experiența dobândită din execuția cu succes a unor proiecte anterioare).

• Esențiale pentru ▫ Planificarea cu succes a unui proiect ▫ Pentru evitarea unor capcane ce pot duce la eșecul

proiectului.• Task-urile se execută concurent

▫ => după un interval de timp prestabilit, toți membrii echipei au task-urile gata și le pot uni în aplicația finalizată

Page 8: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Avantajele utilizării proceselor

• Un cumul de cunoștințe colective• Rol esențial în estimarea succesului / eșecului unui

proiect• Nici o organizație nu poate învăța din experiențele trecute

fără a defini și folosi procese▫ Dacă nu ai fi împărțit aplicațiile precedente în procese

⚫ Ar fi foarte greu de găsit soluții pentru procesele actuale• Definirea a ceea ce trebuie făcut și cum = 80% din totalul

de muncă într-un proiect obișnuit (planificare)▫ Procese definite riguros => doar 20% (muncă)

Page 9: Managementul Proiectelor Software 1.Pptx-libre

Procesul de management al proiectuluiTrei etape principale:

1 •Planificarea proiectului

2 •Execuția proiectului

3 •Închiderea proiectului

Page 10: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

1. Planificarea proiectului

• Activități administrative și de pornire• Planificarea și orarul proiectului

▫ Definirea obiectivelor proiectului▫ Estimarea costurilor și a efortului▫ Definirea unui plan de măsurare a proiectului▫ Identificarea riscurilor și a modului de evitare / recuperare

• Obținerea acordului de la managementul superior▫ Dacă nu se obține aprobare trebuie regândită planificarea

• Definirea și revizuirea planului de management al configurațiilor

• Realizarea unei echipe și stabilirea responsabilităților fiecăruia

Page 11: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

poză

Page 12: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

poză

Page 13: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

poză

Page 14: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

1. Planificarea proiectului

• Documentul Cerintelor Software (Software Requirements Document - SRD):▫ Reflectă punctul de vedere al dezvoltatorului cu privire la

produsul de dezvoltat▫ Furnizează o bază pentru estimarea costurilor și a

planificării activităților▫ Este folosit în testele de sistem

Page 15: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

poză

Page 16: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

poză

Page 17: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

poză

Page 18: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

2. Execuția proiectului

• Execuția proiectului după planul propus• Monitorizarea conformității cu procesele definite• Analiza defectelor și efectuarea de activități de prevenire

a acestora• Monitorizarea performațelor la nivel de program• Efectuarea de review-uri la anumite etape critice și

replanificarea unor etape dacă este necesar• Monitorizarea progresului proiectului

Page 19: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

3. Închiderea proiectului

• Analiza datelor post-proiect• Etapa are loc după ce clientul și-a dat acceptul pentru

produsul final▫ În cazul în care clientul dorește modificări în aplicație după

finalizarea ei, trebuie să se poată rezolva rapid⚫ Codul trebuie să fie inteligibil (bine comentat)

• Se urmărește stabilirea unor concluzii ca urmare a experienței acumulate, pentru a îmbunătăți procesele folosite în viitor▫ Trebuie menținut un istoric al modificărilor

⚫ Software versioning▫ Rezultă într-un raport de închidere a proiectului

Page 20: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Principiile fundamentale în MPS

1. Procesul de dezvoltare bazat pe arhitectură2. Modul de dezvoltare iterativ3. Principalele riscuri confruntate cât mai devreme4. Dezvoltarea bazată pe componente5. Plan de management al schimbărilor6. Model de evaluare bazat pe demonstrații7. Coobiectiv al calității și evaluarea corectă a progresului8. Notații bazate pe modele9. Procesul de dezvoltare configurabil și scalabil economic

10. Versiunile intermediare având nivele de detaliu din ce în ce mai mari

Page 21: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

1. Procesul de dezvoltare bazat pe arhitectură• Componentele arhitecturale - înțelese foarte bine înainte

de a lua în considerare amănuntele de detaliu▫ Cerințele de la client trebuie înțelese corect

• Gradul de refacere / abandon a unor componente – ar trebui să scadă sau să rămână constant în timpul desfășurării unui proiect

• Atenție sporită acordată arhitecturii la început▫ => realizarea unei fundații solide pentru 20% din elementele

responsabile de succesul proiectului (cazuri de utilizare, erori, riscuri, etc.)

Page 22: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

2. Modul de dezvoltare iterativ

• Framework de planificare cât mai dinamic• Există mai multe prototipuri ale produsului

▫ Scopul fiecărei iterații este de a produce un rezultat executabil prin care se pot demonstra o parte dintre functionalitățile viitorului produs

▫ cu cât o iterație este mai scurtă cu atât se obține feedback mai repede

• Rezolvarea problemelor critice foarte devreme ▫ => Dezvoltare mai predictibilă & mai puține surprize▫ => Expunerea la surse de cost și/sau întârzieri neprevăzute

reduse la maxim• Exemple: AGILE

Page 23: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

poză

Page 24: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

3. Principalele riscuri confruntate cât mai devreme

• Framework de planificare cât mai dinamic+

• Proces de dezvoltare iterativ▫ => Management al riscului mult mai bun

• Rezolvarea problemelor critice foarte devreme ▫ => Dezvoltare mai predictibilă & mai puține surprize▫ => Expunerea la surse de cost și / sau întârzieri neprevăzute

reduse la maxim

Page 25: Managementul Proiectelor Software 1.Pptx-libre

The sooner you begin coding the later you finish.

Page 26: Managementul Proiectelor Software 1.Pptx-libre

poză

Page 27: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

4. Dezvoltarea bazată pe componente

• Complexitatea dezvoltării de software ▫ Direct proporțională cu numărul de elemente generate de

către membrii echipei• Diminuarea numărului acestora

▫ Diminuarea complexității procesului de management⚫ Trebuie găsit echilibrul

Page 28: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

5. Plan de management al schimbărilor

• Dinamica dezvoltării iterative▫ Fluxurile de lucru concurente ale diferitelor echipe de

dezvoltare care folosesc aceleași componente⚫ necesită linii de referință controlate foarte riguros

▫ Verifică cine e afectat de schimbarea pe care urmează să o faci înainte să modifici!

▫ Toată echipa trebuie să urmeze un tipar similar

Page 29: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

poză

Page 30: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

6. Model de evaluare bazat pe demonstrații• Integrarea apare foarte devreme în viața unui proiect și se

continuă pe parcursul întregului proces de dezvoltare.• Rezultatele intermediare sunt elemente esențiale,

deoarece sunt tangibile și obiective▫ Fiecare componentă este testată individual (module driver și

ciot de la IP)

• La final:▫ Componentele se îmbină și

se testează din nou

Page 31: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

7. Evaluare obiectivă a calității și corectă a progresului

• Calitatea = totalitatea caracteristicilor prin care el satisface o serie de necesități definite sau impuse❖ Capacitatea de a putea fi folosit eficient și confortabil de către utilizatori

• Indicatorii de progres și calitate derivă direct din componentele dezvoltate ▫ oferă informații importante în legatură cu trendul proiectului

și gradul de corelare al produsului cu cerințele inițiale▫ standardul ISO: fiabilitate, funcționalitate, eficiență,

ușurință de utilizare / întreținere, portabilitate

Page 32: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

poză

Page 33: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

poză

Page 34: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

8. Notații bazate pe modele

• Utilizarea unor notații inginerești în faza de design va conduce la un control mai bun al complexității, evaluări intermediare mai obiective și mai corecte, precum și analize ce pot fi automatizate

Page 35: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

9. Procesul de dezvoltare configurabil și scalabil economic

• trebuie folosite împreună pentru a lărgi segmentul de piață țintă

⚫ => o întoarcere a investiției mult mai mare

Metodele

TehnicileUneltele

Experiența

Page 36: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

10. Versiunile intermediare având nivele de detaliu din ce în ce mai mari

• Versiuni intermediare ce pot fi utile sunt de obicei disponibile foarte devreme în timpul procesului de dezvoltare

Cerințele unui proiect• trebuie să evolueze concomitentDesignul

Planificarea

Page 37: Managementul Proiectelor Software 1.Pptx-libre

Good project management is not so much knowing what to do and when, as knowing what excuses to give and when.

Page 38: Managementul Proiectelor Software 1.Pptx-libre
Page 39: Managementul Proiectelor Software 1.Pptx-libre

● "TODO: add functionality to show alert text after too many tries at log in"

● "make sure we don't try to do this before the saml has been posted if (window.registrationInitialSessionCallsComplete)"

● "Attention: This file is generated once and can be modified by hand"

● "Fill In this with actual content. Lorem Ipsum"● "TODO: maybe modify the below to use a similar

method instead"

Page 40: Managementul Proiectelor Software 1.Pptx-libre

1. Sprints and Iterations Do Not an 'Agile' Project Make

● Multe echipe folosesc "sprint" sau "iteration", doar pentru a introduce concepte agile. Cuvinte cum ar fi "trei sprinturi de arhitectura, sase sprinturi de cod, doua sprinturi de testare si două sprinturi de mentenanta" este, de obicei, un indiciu ca ceva e în neregulă.

2. The System Produced the Outcome, Not the Lack of Testing

● Atata timp cat nu sunt bine definite fazele proiectului, nu ai cum sa stii unde te aflii. O mare greseala a fost ca de la gasirea unui bug, se intra in faza de fixare.

3. Testing Should Be Part of the Delivery Process

● Daca testarea nu are loc in procesul de dezvoltare atunci e pierdere de timp.

4. Do It Manually Before You Automate

● Inaintea automatizarii proceselor de testare asigura-te ca manual au fost cu succes.

Page 41: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Particularitățile proiectelor software• Ce este un proiect?

▫ Un proiect este in fapt o activitate planuita, nerepetitiva, ale carei principale caracteristici sunt urmatoarele:

⚫ Planificarea⚫ Activitățile nu urmăresc o anumită rutină⚫ Anumite obiective trebuie atinse și anumite produse trebuie

realizate⚫ Există o durată de timp predeterminată (absolută sau relativă)⚫ Munca este realizată în mai multe etape ⚫ Resursele disponibile au anumite constrangeri

▫ Un proces - o serie de activități numeroase și complexe

Page 42: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Proiecte Software (Particularități)• Invizibilitate - spre deosebire de un pod sau un drum care

sunt construite și progresul este vizibil imediat, în cazul unui produs software progresul nu neaparat este evident foarte repede

• Complexitate - Produsele software sunt unele dintre produsele cu cea mai mare complexitate per euro/dolar/lei investiți

• Flexibilitate - Ușurința cu care un produs software poate fi modificat este unul dintre cele mai importante atu-uri ale acestui tip de proiecte

Page 43: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Categorii de produse software

• Sisteme informaționale vs. sisteme embedded▫ În cazul sistemelor informaționale, produsul software are

interfete cu organizatia; sistemele embedded au interfete cu alte masini.

▫ Exemple:⚫ Sistem informatic: sistem de gestiune a stocului⚫ Sistem embedded: sistem de control automat al aerului

conditionat într-un depozit

Page 44: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Categorii de produse software

Obiective vs produse

?

Page 45: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Categorii de produse softwareObiective vs produse

▫ Produsele software – scopul: a crea un anumit produs, sau de a atinge un anumit obiectiv.

Prima: urmărește recomandarea unei soluții software pentru a satisface anumite cerințe

A doua: dezvoltarea efectivă a produsului software

Page 46: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Proiectul ca un sistem

A. Sisteme, subsisteme și medii B. Sistem = o mulțime de părți interconectate C. Orice sistem însă este de obicei parte a unui alt sistem,

moment în care reprezintă de fapt un subsistem.

Mediul = tot ceea ce se află în afara sistemului - este reprezentat de toate elementele care:

1. pot influența sistemul2. dar asupra cărora sistemul în cauză nu are nici un control

Page 47: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Sisteme deschise vs. sisteme închise

?

Page 48: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Sisteme deschise vs. sisteme închise

Sisteme deschise • sunt acelea care interacționează cu mediul

exterior. • majoritatea sistemelor aparțin acestei

categorii; • cele mai multe probleme în procesul de

dezvoltare a unui produs software fiind chiar o urmare a incapacității dezvoltatorilor de a realiza cât de deschis este un sistem în realitate

Page 49: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Sisteme deschise vs. sisteme închiseSisteme închise

• sunt sisteme care nu interacţionează cu mediul şi nu sunt influenţate de acesta; doar componentele din cadrul lor au importanţă

• partea bună în organizarea sistemelor inchise este siguranţa că structura lor rămâne aceeaşi

• responsabilităţile sunt distribuite întotdeauna la fel

• este foarte puţin flexibil şi nu suportă modificări

• fluxul de informaţii este foarte mic şi se transmite numai ierarhic

Page 50: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Sisteme sociotehnice

➔ Orice proiect software necesită organizare:◆ din punct de vedere tehnologic◆ din punct de vedere al resurselor umane. ➔ Ca urmare◆ managerii de proiect trebuie să aibă

● cunoștințe tehnice● capacitatea de a comunica eficient cu oamenii.

Page 51: Managementul Proiectelor Software 1.Pptx-libre

The first myth of management is that it exists.

Page 52: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Noțiuni de bază

• Ce este managementul?• Managementul implică următoarele activități:

Planificarea Organizarea Monitorizarea Controlul Inovația Reprezentarea Conducerea Organizarea personalului

Page 53: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Noțiuni de bază

Principalele probleme cu care se

confruntă un manager

respectarea termenelor limită

managementul constrângerilor asupra

resurselor

comunicarea efectivă cu membrii echipei

motivarea personalului

stabilirea de obiective realistice și măsurabile

managementul schimbărilor

respectarea planului de proiect stabilit de către

echipă

rezolvarea conflictelor

Obținerea de accepturi din partea

managementului superior

Page 54: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Management?

Page 55: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Management?

Page 56: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Management?

Page 57: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Management?

Page 58: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Principalele probleme

Page 59: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Principalele probleme

• Atribuirea greșită a persoanelor și a sarcinilor • Definirea unor termene limită și a unor planuri nerealiste• Ineficiența comunicării între membrii echipei sau a

comunicării cu clientul• Schimbările apărute în cerințele inițiale sau în mediul de

dezvoltare• Lipsa tehnicilor și a resurselor necesare (umane,

financiare, etc.)

Page 60: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Principalele probleme (2)

• Alegerea unor criterii de reușită greșite• Lipsa controlului calității• Lipsa unei viziuni și a unor ținte bine definite• Lipsa cunoștințelor despre domeniul de aplicare a

produsului• Lipsa de standarde și măsurători privind calitatea

Page 61: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Stakeholders• Persoanele care au un anumit interes în proiect

▫ Trei categorii principale:

• Trei pași:▫ identifică părțile interesate▫ prioritizează părțile interesate▫ identifică părțile interesate principale

Page 62: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Stakeholders (2)

Page 63: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Participanții la proiect

• Determină gradul de succes al proiectului• Deseori se pot afla în stare tensionată și chiar conflictuală• Cunoașterea de către managerul de proiect a tuturor

participanților cât și a rolului și a așteptărilor acestora va duce la găsirea soluțiilor de compromis care să nu blocheze derularea proiectului și finalizarea sa

Page 64: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Participanții la proiect (2)

• Este bine să se deosebească din categoriile participanților participanții cheie, cei care vor determina gradul în care proiectul finalizat a întâmpinat așteptările participanților sau nu

• Participanții implicați în proiect, pot fi persoane fizice sau juridice

Page 65: Managementul Proiectelor Software 1.Pptx-libre

The life cycle of a troubled project

Page 66: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Recapitulare• Proiect software

▫ Ingineria proiectului ▫ Managementul proiectului

• Proces• Planificarea proiectului->Execuția proiectului-

>Închiderea proiectul• Riscuri• Modele• Sisteme• Participanții la proiect

Page 67: Managementul Proiectelor Software 1.Pptx-libre

INTRODUCERE

Mulțumesc