Revolutia Agile - introducere in noile metode de management de proiect

40
Revoluţia AGILE Revolu Revolu ţ ţ ia ia AGILE AGILE Teodor Dărăbăneanu [email protected] Teodor Dărăbăneanu [email protected] O nouă abordare în dezvoltarea de software O nouă abordare O nouă abordare î î n n dezvoltarea de software dezvoltarea de software

description

O noua abordare manageriala pentru proiectele de dezvoltare software. Introducere in metodele Agile, mai ales in metodologia SCRUM.

Transcript of Revolutia Agile - introducere in noile metode de management de proiect

Page 1: Revolutia Agile - introducere in noile metode de management de proiect

Revoluţia AGILERevoluRevoluţţia ia AGILEAGILE

Teodor Dărăbă[email protected] Dărăbă[email protected]

O nouă abordare în dezvoltarea de softwareO nouă abordare O nouă abordare îîn n dezvoltarea de softwaredezvoltarea de software

Page 2: Revolutia Agile - introducere in noile metode de management de proiect

2

Topica prezentăriiTopica prezentării

Software-ul nu este ceea ce credem că este.Software-ul nu este ceea ce credem că este.

Ce este un software?

Nivelele ignoranţei umane

Legile dezvoltării de software

Noile concepte

AGILE

Ce este un software?

Nivelele ignoranţei umane

Legile dezvoltării de software

Noile concepte

AGILE

Această prezentare

descrie baza reală a dezvoltării de

software, principiile fundamentale ce se aplică proceselor de dezvoltare software şi prezintă un nou model –

AGILE –

pentru practicile curente în dezvoltarea de software.

Această prezentare

descrie baza reală a dezvoltării de

software, principiile fundamentale ce se aplică proceselor de dezvoltare software şi prezintă un nou model –

AGILE –

pentru practicile curente în dezvoltarea de software.

Motto:Motto:

Page 3: Revolutia Agile - introducere in noile metode de management de proiect

Ce este

un software?Ce

este

un software?

Page 4: Revolutia Agile - introducere in noile metode de management de proiect

4

Este software-ul este un Produs

?!Este software-ul este un

Produs

?!

Software-ul este…

Mediul în care

stocăm cunoştiinţele !

Software-ul este…

Mediul în care

stocăm cunoştiinţele !

Probabil, este cea mai mare greşeală de la

inventarea notiunii de software

Probabil, este cea mai mare greşeală de la

inventarea notiunii de software

Ei bine…NU ESTE !…Ei bine…NU ESTE !…

Este al cincilea element ... Este al cincilea element ...

Page 5: Revolutia Agile - introducere in noile metode de management de proiect

5

Istoria mediilor de stocare

a cunoştiinţelor

Istoria mediilor de stocare

a cunoştiinţelor

~ 600 de ani: Cărţile~ 600 de ani: Cărţile

~ 2 milioane de ani: Creierul~ 2 milioane de ani: Creierul

~ 4 miliarde de ani: ADN~ 4 miliarde de ani: ADN

~ 1 Milion de ani: Hardware~ 1 Milion de ani: Hardware

~ 50 de ani: Software~ 50 de ani: Software

Page 6: Revolutia Agile - introducere in noile metode de management de proiect

6

Caracteristicile mediilor de stocareCaracteristicile mediilor de stocare

0 20 40 60 80 100

ADN

Creier

Dispozitive

Cărţi

SoftwareEfect în lumearealăPersistenţa

Rata schimbării

Ajustareconştientă

Page 7: Revolutia Agile - introducere in noile metode de management de proiect

7

Stadiile evoluţiei modului de stocare al cunoştiinţelor pot fi

caracterizate după cum urmează : ADN:

Aplicarea şi stocarea inconştientăa cunoştiinţelor

Creier:

Aplicarea şi stocarea conştientă

a

cunoştiinţelor Dispozitive:

Aplicarea

conştientă

a cunoştiinţelor

Cărţi:

Mediu portabil de stocare conştientă

a cunoştiinţelorSoftware:

dezvoltarea,

stocarea, transportul

şi

aplicarea conştientă a cunoştiinţelor

Stadiile evoluţiei modului de stocare al cunoştiinţelor pot fi

caracterizate după cum urmează :ADN:

Aplicarea şi stocarea inconştientăa cunoştiinţelor

Creier:

Aplicarea şi stocarea conştientă

a

cunoştiinţelorDispozitive:

Aplicarea

conştientă

a cunoştiinţelor

Cărţi:

Mediu portabil de stocare conştientă

a cunoştiinţelorSoftware:

dezvoltarea,

stocarea, transportul

şi

aplicarea conştientă a cunoştiinţelor

Evolutia stocarii

cunoştiinţelorEvolutia

stocarii

cunoştiinţelor

Page 8: Revolutia Agile - introducere in noile metode de management de proiect

8

Localizarea cunoştiinţelorLocalizarea cunoştiinţelor

Dacă ştim ceva, există doar trei locuri unde putem stoca aceste cunoştiinţe ....

- Creier

- Cărţi– Software

Dacă ştim ceva, există doar trei locuri unde putem stoca aceste cunoştiinţe ....-

Creier

- Cărţi– Software

Page 9: Revolutia Agile - introducere in noile metode de management de proiect

9

Ce este Dezvoltarea de software

?Ce este

Dezvoltarea de software

?

Dacă software-ul

nu este un produs, atunci

dezvoltarea de software nu este o activitate de “producţie de produse”

Dacă software-ul este doar un mediu de stocare unde ne ţinem cunoştiinţele, atunci dezvoltarea de software devine o activitate de “achiziţie de cunoştiinţe”

Problemă: Nu gestionăm dezvoltarea de software ca pe un proces de achiziţie al cunoştiinţelor -

îl

gestionăm ca pe un proces de producţie de bunuri sau

produse.

Dacă software-ul

nu este un produs, atunci

dezvoltarea de software nu este o activitate de “producţie de produse”

Dacă software-ul este doar un mediu de stocare unde ne ţinem cunoştiinţele, atunci dezvoltarea de software devine o activitate de “achiziţie de cunoştiinţe”

Problemă: Nu gestionăm dezvoltarea de software ca pe un proces de achiziţie al cunoştiinţelor -

îl

gestionăm ca pe un proces de producţie de bunuri sau

produse.

Page 10: Revolutia Agile - introducere in noile metode de management de proiect

Nivelele ignoranţei

umane

şi

Legile dezvoltării de software

Nivelele ignoranţei

umane

şi

Legile dezvoltării de software

Page 11: Revolutia Agile - introducere in noile metode de management de proiect

Ignoranţa de ordin 0

(0I):

Lipsa

ignoranţei(probabil)

eu

ştiu

ceva

Ignoranţa

de ordin 1 (1I):

Lipsa

cunoaşteriiEu nu ştiu nimic

Ignoranţa de ordin 2

(2I):

Lipsa

conştientizării lipsei

cunoaşteriiEu nu ştiu că nu ştiu nimic

Ignoranţa de ordin 3

(3I):

Lipsa

unui proces

de cunoaştereNu cunosc o modalitate efectivă de a afla că eu nu ştiu că nu ştiu nimic

Ignoranţa de ordin 4

(4I):

Meta-ignoranţaEu nu ştiu despre existenţa celor 5 nivele ale ignoranţei umane

Ordonarea ignoranţei umaneOrdonarea

ignoranţei umane

Page 12: Revolutia Agile - introducere in noile metode de management de proiect

12

Ignoranţa umană şi munca Ignoranţa umană şi munca

0I = răspunsul— necesită un efort foarte mic

1I = întrebarea—necesită un efort

mic

2I = nu avem nici măcar întrebarea– Este sursa celor mai multe probleme în estimarea efortului şi de obicei, adăugăm o rezervă de efort pentru a obţine nivelul 2I- De aceea rezultatele suferă de sindromul “90% gata”

şi este motivul pentru care testarea este foarte dificilă– De aceea avem probleme cu diversele metode şi modele

3I = nu avem un proces eficient– Trebuie să consumăm timp şi efort pentru a crea un proces

…În consecinţă, cea mai mare parte a muncii oamenilor este focalizată in reducerea ignoranţei de ordin 2I şi 3I

0I = răspunsul— necesită un efort foarte mic

1I = întrebarea—necesită un efort

mic

2I = nu avem nici măcar întrebarea– Este sursa celor mai multe probleme în estimarea efortului şi de obicei, adăugăm o rezervă de efort pentru a obţine nivelul 2I- De aceea rezultatele suferă de sindromul “90% gata”

şi este motivul pentru care testarea este foarte dificilă– De aceea avem probleme cu diversele metode şi modele

3I = nu avem un proces eficient– Trebuie să consumăm timp şi efort pentru a crea un proces

…În consecinţă, cea mai mare parte a muncii oamenilor este focalizată in reducerea ignoranţei de ordin 2I şi 3I

Page 13: Revolutia Agile - introducere in noile metode de management de proiect

13

Legile dezvoltării de

softwareLegile

dezvoltării de

software

Prima Lege:Poţi să ai doar un proces pentru ceva ce ştii cum se face

Corolar la Prima Lege:

Nu poţi să ai un proces pentru ceva ce n-ai făcut niciodată

Prima Lege:Poţi să ai doar un proces pentru ceva ce ştii cum se face

Corolar la Prima Lege:

Nu poţi să ai un proces pentru ceva ce n-ai făcut niciodată

Page 14: Revolutia Agile - introducere in noile metode de management de proiect

14

Legile dezvoltării

de softwareLegile

dezvoltării

de software

Lema “Veşnica Întîrziere”

Singurele procese pe care le putem utiliza la acest proiect sunt cele dezvoltate şi utilizate pentru proiectele trecute

....

…Care sunt foarte diferite de acest proiect ...... De aceea necesită un alt proces ...... Care ne va întîrzia proiectul.

Lema “Veşnica Întîrziere”

Singurele procese pe care le putem utiliza la acest proiect sunt cele dezvoltate şi utilizate pentru proiectele trecute

....

…Care sunt foarte diferite de acest proiect ...... De aceea necesită un alt proces ...... Care ne va întîrzia proiectul.

Page 15: Revolutia Agile - introducere in noile metode de management de proiect

15

Legile dezvoltării de softwareLegile dezvoltării de software

A doua Lege:

Poţi să defineşti procesele numai la două nivele de detaliu:

1. Prea abstract şi

vag

sau 2. Prea

detaliat şi limitat

A doua Lege:

Poţi să defineşti procesele numai la două nivele de detaliu:

1. Prea abstract şi

vag

sau2. Prea

detaliat şi limitat

Page 16: Revolutia Agile - introducere in noile metode de management de proiect

16

Legile dezvoltării de softwareLegile dezvoltării de software

Ipotezele descoperirii de cunoştiinţe:

1. Putem să “descoperim”

cunoştiinţele numai într-un mediu care

conţine aceste surse de cunoaştere

2. Singurul mod de a susţine validitatea unor cunoştiinţe este de a le compara cu alte surse de cunoaştere

Ipotezele descoperirii de cunoştiinţe:

1. Putem să “descoperim”

cunoştiinţele numai într-un mediu care

conţine aceste surse de cunoaştere

2. Singurul mod de a susţine validitatea unor cunoştiinţe este de a le compara cu alte surse de cunoaştere

Page 17: Revolutia Agile - introducere in noile metode de management de proiect

17

Legile dezvoltării de softwareLegile dezvoltării de software

O mică observaţie !

Toţi dezvoltatorii de software îşi doresc să aibă un set de reguli, care să fie ...complete, concrete, totale, definitive, absolute, universale, ......... şi pe care ei pot să le încalce ...

O mică observaţie !

Toţi dezvoltatorii de software îşi doresc să aibă un set de reguli, care să fie ...complete, concrete, totale, definitive, absolute, universale, ......... şi pe care ei pot să le încalce ...

Page 18: Revolutia Agile - introducere in noile metode de management de proiect

18

Legile dezvoltării de softwareLegile dezvoltării de software

A Treia Lege

Exact ultimul tip de informaţie pe care o aflăm atunci cînd trebuie să implementăm un set de cunoştiinţe într-un software executabil, vor fi chiar informaţiile despre cum să implementăm într-un software executabil

tot setul de cunoştiinţe ...

A Treia Lege

Exact ultimul tip de informaţie pe care o aflăm atunci cînd trebuie să implementăm un set de cunoştiinţe într-un software executabil, vor fi chiar informaţiile despre cum să implementăm într-un software executabil

tot setul de cunoştiinţe ...

Page 19: Revolutia Agile - introducere in noile metode de management de proiect

19

Scopurile gemene ale unei finalizări optime

1.

Singurul scop natural al unor procese de dezvoltare software este de a se dovedi, cît mai repede cu putinţă, ... nefolositoare

2.

Singurul rezultat final al unui proces de dezvoltare continuă şi de aplicare a unui proces eficient este acela că, în realitate, va fi utilizat de ... nimeni

Scopurile gemene ale unei finalizări optime

1.

Singurul scop natural al unor procese de dezvoltare software este de a se dovedi, cît mai repede cu putinţă, ... nefolositoare

2.

Singurul rezultat final al unui proces de dezvoltare continuă şi de aplicare a unui proces eficient este acela că, în realitate, va fi utilizat de ... nimeni

Legile dezvoltării de softwareLegile dezvoltării de software

Page 20: Revolutia Agile - introducere in noile metode de management de proiect

Zepelinele şi

avioanele cu reacţieZepelinele

şi

avioanele cu reacţie

…şi alte motive de meditaţie …şi alte motive de meditaţie

Page 21: Revolutia Agile - introducere in noile metode de management de proiect

21

Cum să dobori un Zepelin ?Cum să dobori un Zepelin ?

O metaforă

pentru

derularea proiectele:

varianta clasică (de acum 25 ani)

O metaforă

pentru

derularea proiectele:

varianta clasică (de acum 25 ani)

Vz+Atribute(Zepelin)Vz+Atribute(Zepelin)

Vv+Atribute(Aer)Vv+Atribute(Aer)

Vp+Atribute(Proiectil)Vp+Atribute(Proiectil)AzAz

DzDz

Atribute(Tun)Atribute(Tun)

Succesul este o funcţie de măsurare exactă şi de

control precis

Succesul este o funcţie de măsurare exactă şi de

control precis

Cale predictibilă

Cale predictibilă

Page 22: Revolutia Agile - introducere in noile metode de management de proiect

22

Cum să dobori un avion

cu reacţie ?Cum să dobori

un avion

cu reacţie ?

Cale im

predictibilă

Cale im

predictibilă

Cale impredictibilă

Cale impredictibilă

Succesul

este o funcţie de capabilitate şi flexibilitate

Succesul

este o funcţie de capabilitate şi flexibilitate

O metaforă

pentru

derularea proiectele:

varianta modernă

O metaforă

pentru

derularea proiectele:

varianta modernă

Page 23: Revolutia Agile - introducere in noile metode de management de proiect

23

Ce este controlul?Ce este controlul?

Este

surprinzător

cît de repede lucrurile scapă de sub controlEste

surprinzător

cît de repede lucrurile scapă de sub control

Două

variabile:

predictibil, dar complex

O variabilă:

foarte

predictibilăTrei

variabile:

intrinsec

impredictibil

Page 24: Revolutia Agile - introducere in noile metode de management de proiect

24

De ce o revoluţie? De ce acum?De ce o revoluţie? De ce acum?

Deoarece SUCCESUL numai

este

o funcţie

de:

• Predictibilitate• Măsurare exactă• Control

precis al managementului

• Proces foarte riguros definit

Deoarece SUCCESUL numai

este

o funcţie

de:

• Predictibilitate• Măsurare exactă• Control

precis al managementului

• Proces foarte riguros definit

Succesul este acum:

• Mai puţin sigur, cu un risc mai mare

• O funcţie

de

capabilitate punctuală

• O funcţie

de flexibilitate continuă

• Dependent de viteza de adaptare

Succesul este acum:

• Mai puţin sigur, cu un risc mai mare

• O funcţie

de

capabilitate punctuală

• O funcţie

de flexibilitate continuă

• Dependent de viteza de adaptare

Page 25: Revolutia Agile - introducere in noile metode de management de proiect

25

De ce o revoluţie? De ce acum?De ce o revoluţie? De ce acum?

Dezvoltarea de software

este un proces de DESCOPERIRE

şi nu un proces de producţie, deoarece nu ştim de la început ce trebuie să ştim.

Tot ce trebuie să facem este să aflăm ce trebuie să ştim.

Dezvoltarea de software

este un proces de DESCOPERIRE

şi nu un proces de producţie, deoarece nu ştim de la început ce trebuie să ştim.

Tot ce trebuie să facem este să aflăm ce trebuie să ştim.

Pentru o creştere în nivelul 2I

Există încă lucruri simple pe care nu ştim că nu le ştimPentru o creştere

în nivelul 2I

Există încă lucruri simple pe care nu ştim că nu le ştim

Rata de

schimbare

a

informaţiilor

Informaţiile externe proiectului se schimbă mai repede decît durata proiectului şi chiar mai repede decît ar putea reacţiona proiectul

Rata de

schimbare

a

informaţiilor

Informaţiile externe proiectului se schimbă mai repede decît durata proiectului şi chiar mai repede decît ar putea reacţiona proiectul

Page 26: Revolutia Agile - introducere in noile metode de management de proiect

26

Sunt condiţii pentru o revoluţie ?Sunt condiţii pentru o revoluţie ?• Software

-

este un mediu de stocare al cunoştiinţelor, nu

este un produs • Adevăratul produs este cunoaşterea, care necesită o altă

abordare • Dezvoltarea de software este un un proces de descoperire

• Sunt cîteva legi ale dezvoltării de software, la care trebuie să ne aliniem

• Randamentul controlului tradiţional este foarte limitat

• Software -

este un mediu de stocare al cunoştiinţelor, nu

este un produs• Adevăratul produs este cunoaşterea, care necesită o altă

abordare• Dezvoltarea de software este un un proces de descoperire • Sunt cîteva legi ale dezvoltării de software, la care trebuie

să ne aliniem • Randamentul controlului tradiţional este foarte limitat

Page 27: Revolutia Agile - introducere in noile metode de management de proiect

27

AGILE MANIFESTO - 2001

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions

over processes and tools

Working software

over comprehensive documentation

Customer collaboration

over contract negotiation

Responding to change

over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Page 28: Revolutia Agile - introducere in noile metode de management de proiect

28

Factorii de succes - Takeuchi şi

Nonaka

Instabilitate intrinsecăEchipa se auto-organizeazăFazele dezvoltării se suprapun“Învăţarea multiplă”Control subtilTransferul organizationalal

rezultatelor învăţării

“Aceste

caracteristici

sunt ca piesele unui puzzle. Fiecare element, luat individual,

nu contribuie la viteza si flexibilitatea echipei. Dar luaţi ca un întreg, aceste caracteristici pot produce un nou set de forţe dinamice, care vor face diferenţa.”

Page 29: Revolutia Agile - introducere in noile metode de management de proiect

29

Factorul 1: Instabilitatea intrinsecă

Managementul iniţiază procesul de dezvoltare prin stabilirea ţintei. Echipei de proiect i se oferă o ţintă greu de atins, dar i se oferă în acelasi timp resurse si completă libertate asupra modului de lucru. – Exemplu: Fuji-Xerox a dat echipei de proiect FX-3500 doi ani să dezvolte un

copiator, care să reducă costurile de întreţinere la jumătateManagementul crează un element de tensiune în proiect prin stabilirea unor cerinţe grele cu o libertate foarte mare în atingerea ţintei. – Executivul Honda : “

Este ca si cum ai pune toţi membrii echipei într-un balcon la etajul doi, ai îndepărta bara de protecţie si le spui să sară, dacă nu să renunţe. Cred că creativitatea este născută prin împingerea oamenilor într-un zid, cu o presiune aproape de extrem.”

Page 30: Revolutia Agile - introducere in noile metode de management de proiect

30

Factorul 2: Echipa de proiect se auto-organizează

Echipa de proiect capătă un caracter de auto-organizare, ca si cum ar fi condusă intr-o stare de “informatie zero”, unde toate cunostiinteleacumulate nu se mai aplica. Procesul incepe sa-si creeze propria sa ordine dinamica. Echipa de proiect incepe sa opereze ca o companie nou infiintata. Un grup poseda o capacitate de auto-organizare, cind indeplineste treiconditii:– Autonomie– auto-transcendenta– Fertilizare

multidisciplinarăLa un anumit punct, echipa incepesa-si

creeze

un concept propriu.

Page 31: Revolutia Agile - introducere in noile metode de management de proiect

31

Autonomia

Implicarea managementului este limitata de la inceput la furnizarea de indicatii, bani si suport moral. Zilnic, managementul poate interveni cu indrumari si echipaeste libera sa-si aleaga singura directia. Managementul se comporta ca un investitor, asa cum spun americanii “deschide portofelul si inchide gura”

Page 32: Revolutia Agile - introducere in noile metode de management de proiect

32

Auto-transcendenţa

Echipa de proiect pare sa fie absorbita de o explorare fara-de-sfirsit pentru atingerea “limitei”Ei ating scopurile lor prin procesul de dezvoltare. Prin urmarirea a ceea ce par scopuri contradictorii, ei gasesccai de a depasi un “status quo” si fac descoperiri importante.

Page 33: Revolutia Agile - introducere in noile metode de management de proiect

33

Fertilizare multidisciplinară

Echipa cu o diversitate mare de specializari, cu procesereflexive si cu tipare comportamentale clare, poate dezvoltaceva nou. Cind toti membrii echipei lucreaza intr-o camera mare,informatia

altora

devine

a ta.

Page 34: Revolutia Agile - introducere in noile metode de management de proiect

34

Factorul 3: Suprapunerea

fazelor

de dezvoltare

Auto-organizarea unei echipe produce o dinamica unicaMerite “hard”– Viteza

si

flexibilitate

Merite “soft”– Impartirea

responsabilitatii

si

cooperarea

– Stimularea

implicării

şi angajamentului

– Crearea

focalizării

pe

rezolvarea

problemei

– Dezvoltarea

iniţiativei

si

diversificarea

abilităţiilor

– Ponderează

orientărea

către

condiţiile

de piaţă

Page 35: Revolutia Agile - introducere in noile metode de management de proiect

35

Factorul 4: Invăţarea multiplă

Invăţarea prin acţiune in două dimensiuni– In intreaga

organizatie

– In intreg

domeniul

de specialitate

Mărirea oportunităţilor de învăţare– 15% din timp

dedicat

“visurilor”

3M

– Presiunea

colegilor

pentru

studiu

– Trimite

echipa

in Europa

sa

se uite

in zone similare

Honda

– Aducerea

in echipa

de experti

consultanti

si

profesori

HP

Fiecare învaţă abilităţi multiple

Page 36: Revolutia Agile - introducere in noile metode de management de proiect

36

Factorul 5: Control subtil

Managementul stabileste puncte de verificare– Previne

instabilitatea, ambiguitatea, si

tensiunea

de a nu intra in haos

Pune accent pe auto-control, control prin presiunea colegilor, control prin iubire = “control subtil”Managementul este responsabil pentru:

– Selectarea

membrilor

pentru

o echipa

echilibrata

– Crearea

unui

mediu

de lucru

deschis

– Incurajeaza

proiectantii

sa

faca

lucruri

concrete

– Stabileste

recompense, bazate

pe

performanta

grupului

– Tolereaza

si

anticipeaza

greselile

Intotdeauna

port parul

asa.Si ce

daca?

Intotdeauna

port parul

asa.Si ce

daca?

Page 37: Revolutia Agile - introducere in noile metode de management de proiect

37

Factorul 6: Transferul organizational

al rezultatelor învăţării

Transferul cunoştiinţelor in afara grupului– Incurajeaza

echipele

de succes

sa

ia

noi

proiecte

– Institutionalizeaza

practica

curenta

(demonstratii

lunare)

Urmărirea conştientă a unor rezultate– iteraţia

următoare este mai bună

– Ciclul

de dezvoltare

se reduce foarte

mult

– Se inlatura

partile

vechi, procese

elaborate, unelte

nefolositoare

Page 38: Revolutia Agile - introducere in noile metode de management de proiect

38

SCRUM SCRUM

Page 39: Revolutia Agile - introducere in noile metode de management de proiect

39

XP - Extreme ProgramingXP - Extreme Programing

Page 40: Revolutia Agile - introducere in noile metode de management de proiect

VĂ MULŢUMESC !VĂ MULŢUMESC !

Mai multe informaţii le puteti obtineti:

[email protected] multe informaţii le puteti

obtineti:

[email protected]