Professional Documents
Culture Documents
ELEKTROTEHNIKI FAKULTET
ODSJEK ZA TELEKOMUNIKACIJE
by Erma Perenda
Razlike izmeu
Lean i agilne
metode razvoja
softvera
Sadraj
Uvod ........................................................................................................................................... 1
1.
Ciljevi .......................................................................................................................... 3
1.1.1.
Opis ...................................................................................................................... 3
1.1.2.
Poreenje .............................................................................................................. 3
1.2.
Principi......................................................................................................................... 4
1.2.1.
Opis ...................................................................................................................... 4
1.2.2.
Poreenje .............................................................................................................. 6
1.3.
Prakse........................................................................................................................... 8
1.3.1.
1.3.2.
1.3.3.
Osiguranje kvaliteta............................................................................................ 10
1.3.4.
1.3.5.
Planiranje projekta.............................................................................................. 13
1.3.6.
Upravljanje timom.............................................................................................. 15
1.3.7.
1.3.8.
1.4.
Procesi ....................................................................................................................... 18
Zakljuak .................................................................................................................................. 19
Literatura .................................................................................................................................. 20
Uvod
Agilne metode razvoja softvera nastale su u ranim 90-tim i predstavljaju skup modela za
razvoj softvera zasnovanih na iterativnom i inkremetalnom razvoju. Agilne metode su u
poetku zvane lagane (engl. lightweight). Godine 2001. potaknuti nezadovoljstvom
uzrokovanim velikim procentom neuspjenih IT projekata, skupina od 17 svjetskih istaknutih
softverskih inenjera su se sastali u mjestu Snowbird, Utah, SAD, gdje su usvojili naziv
agilne metode. Rezultat njihovog druenja je uveni manifest Agile Manifesto.
S druge strane pojam Lean je prvi put primjenjen u procesu upravljanja proizvodnjom (
engl. Product management process). Lean proizvodnja je dovela do ogromnog poboljanja
performansi u kontekstu proizvodnje auta Toyota, i ovaj pristup se esto oznaava kao Toyota
Production System. Lean pristup proizvodnje isporuuje visoko kvalitetne proizvode sa
smanjenim resursima u kratkom periodu. Poboljanja su postignuta kontinuiranim
poboljanjem procesa kroz sistemske analize fokusirajui se na identifikaciju nebitnog, tj.
svega to ne doprinosi vrijednosti korisnika. Lean razvoj je paradigma razvoja proizvoda sa
end-to-end fokusom na kreiranju vrijednosti za korisnika, eliminacijom nepotrebnog,
optimizacijom toka procesa, osnaivanju tima i kontinuiranom poboljanju. Lean razmiljanje
se koristi u mnogim industrijama. Poetkom 2009. za vrijeme svjetske ekonomske krize,
veina softverskih kua je razmatrala Lean principe kako bi napore razvoja softvera uinile
uinkovitijim. Danas, softverske kompanije idu ka Lean metodama kako bi kompenzirali sve
vei nedostatak talentovanih ininjera. U sutini, ideja primjene Lean principa na razvoj
softvera stara je koliko i sam termin lean. 1990. Robert Charetle je koristio pojam 'lean
development' u kontekstu strategije upravljanja rizicima koja govori o dinamikoj stabilnosti
organizacije inei je sve vie agilnijom, elastinijom i tolernatnijom na promjene. Mary i
Tom Poppendieck su Lean principe i prakse poznate za proizvodnju i razvoj proizvoda
preslikali na polje softverskog inenjerstva.
Kako bi uvidjeli razlike izmeu Lean i Agilne metode razvoja softvera, uporediemo ih
sa etiri stanovita: ciljevi, principi, prakse i procesi.
Bazirajui se na ova etiri aspekta u poglavlju 1 sumirane su razlike Lean i agilne metode
razvoja softvera.
1. Komparacija
Lean
agilne
metode
razvoja
softvera
1.1. Ciljevi
1.1.1. Opis
Ciljevi opisuju zato bi uzimali u obzir Lean ili agilnu metodu kao metoda za razvoj softvera.
Ciljevi ove dvije metode su:
Cilj agilne metode razvoja softvera agilna metoda razvoja softvera ima za cilj
kontinuiranu isporuku release-a softvera koji se demonstrira korisniku za ilustraciju
posljednjeg statusa features-a koji ispunjavaju korisnike potrebe. Na osnovu toga
korisnici mogu dati bri feedback kako bi se bilo sigurno da softver radi zaista ono to
korisnik eli. Cilj ove metode postaje jasan izjavom da je softver primarna mjera
napretka, te da treba biti isporuen u redovnim kratkim ciklusima (2-4 sedmice).
1.1.2. Poreenje
Oba pristupa u centar panje postavljaju korisnika. Kod agilne metode korisnici su
ukljueni na nain da nakon isporuke verzije softvera daju odreeni feedback. U Lean metodi
je dodan pojam vrijednosti koja moe imati vie znaenja. Jedna od definicija vrijednosti je da
se Lean metoda treba fokusrati na oduevljenje korisnika, to nije nuno ono to korisnik eli
ili trai. S druge strane u agilnoj metodi ono to korisnik eli je u centru panje. Ovo nije u
konfliktu sa vrijednosti u Lean metodi, ali ipak se vrijednost vie fokusira na oduevljavanju
korisnika i iznenaujui ga pozitivno, to prelazi puko zadovoljavanje potreba korisnika.
Obje metode dijele cilj da se korisniku isporuuje softver
u kratkim redovnim
ciklusima. Lean i agilna metoda su sline u smislu da se novi i promjenjen feature softvera
korisiku treba to je mogue prije isporuiti.
3
1.2. Principi
1.2.1. Opis
Principi za Lean i agilnu metodu razvoja softvera opisuju pravila koja se moraju slijediti da bi
se postigli ciljevi ovih metoda. Agilni manifest definira 4 vrijednosti i 12 principa agilnog
razvoja. U Lean metodi definie se 7 principa.
Agilni manifest navodi da tvrdnje na lijevoj strani imaju veu vrijednost nego tvrdnje na
desnoj strani. Definirano je 12 principa koji se mogu povezati sa jednom od etiri vrijednosti
definirane u agilnom manifestu:
1. Zadovoljstvo korisnika predstavlja najvii prioritet i da bi se postiglo softver se mora
isporuivati brzo i u kontinuiranim vremenskim ciklusima. (Vezuje se za V3.)
2. Spremnost na promjene - softver developeri moraju prihvatati promjene bilo u ranijoj
ili kasnijoj fazi razvoja, sposobnost da se reagira na promjene u kasnoj fazi se moe
smatrati kao konkurentska prednost. (V4)
3. Uestale isporuke to krai period to bolje. (V2)
4. Zajedniki rad svi rade skupa od managera do programera (V2)
5. Motivacija individualaca (V1)
6. Razgovori lice u lice (V1)
7. Softver koji radi (V2)
8. Odriv ritam (V1)
9. Tehnika izvrsnost (V2)
10. Jednostavnost (V4)
11. Samoorganiziranost tima (V1)
12. Kontinuirana refleksija analiza rada i poboljanje sa svakom iteracijom (V4)
Proizvodnja
Softversko inenjerstvo
Djelimino uraen posao posao koji nema
poslova u procesu
traenog broja
Ekstra obrada dodatni rad je
ureaja
Transport transport intermediate
proizvoda
Pokret kruenje okolo umjesto ka
cilju
prepoznavati znanje
proizvodima
1.2.2. Poreenje
Da bi uporedili Lean i agilnu metodu sa stanovita principa, grupisat e se principi u
sedam klasa i na osnovu njih dati osvrt na slinosti i razlike ove dvije metode. Veze izmeu
principa ovih metoda sumirane su u tabeli 1.2.
Zajedniki rad
Eliminacija nepotrebnog
Motivacija individualaca
Odriv ritam
Samoorganiziranost tima
Potivanje ljudi
Pojaano uenje
Eliminacija nepotrebnog
Kreiranje integriteta
Tehnika izvrsnost
Kreiranje integriteta
Release proizvoda
Uestale isporuke
Eliminacija nepotrebnog
Pojaano uenje
Dostavljanje u najkraem moguem roku
Fleksibilnost
Spremnost na promjene
Zadovoljstvo korisnika
Eliminacija nepotrebnog
Pojaano uenje
Odluivanje u posljednjem momentu
Dostavljanje u najkraem moguem roku
Potivanje ljudi
Kreiranje integriteta
Vidjeti cjelinu
Jednostavnost
Eliminacija nepotrebnog
Uenje
Kontinuirana refleksija
Pojaano uenje
End-to-end tok
Nije definsano
Vidjeti cjelinu
Upravljanje ljudima i vostvo svaki Lean princip ima odgovarajui Agile princip.
Obje metode dijele ista pravila za upravljanje ljudima.
Fleksibilnost obje metode daju pozornost fleksibilnosti ali na drugaiji nain. Kod
Lean metode odluka se odlae to je due mogue, dok kod agilne metode reagiranje
promjena se deava odmah.
Uenje obje metode se fokusiraju na uenje, mada Lean metoda uzima generalniji
pristup
1.3. Prakse
Prakse opisuje kako metode implementiraju svoje principe. Svaka metoda razvoja
softvera ukljuuje slijedee aktivnosti: Inenjering zahtjeva, dizajn i implementacija,
osiguravanje kvaliteta, softver release, planiranje projekta, upravljanje timom i end-to-end
tok. Navedene aktivnosti e biti vodilje za poreenje Lean metode i agilne metode sa
stanovita prakse.
Tabela 1.3 prikazuje koji principi Lean i agilne metode su zadovoljeni praksama u okviru
ininjeringa zahtjeva. Praksa na strani korisnika se ne koristi kod Lean metoda.
Tabela 1.3 Prakse u okviru ininjeringa zahtjeva
Praksa
Podrani principi
Podrani principi
agilne metode
Lean metode
Zadovoljstvo
Na strani
korisnika
korisnika
Razgovori lice u
lice
Metafore i
korisnike
prie
Da li se koristi
Da li se
u agilnoj
koristi u
metodi
Lean metodi
DA
NE
DA
DA
Eliminacija
nepotrebnog
Pojaano uenje
Zadovoljstvo
Eliminacija
korisnika
nepotrebnog
Tabela 1.4 sumira koji principi su podrani ovim praksama i koje od ovih praksi se
primjenjuju kod Lean i agilnih metoda. Prakse standardi kodiranja i timsko vlasnitvo koda je
jedinstveno za agilne metodu, dok je praksa slabe ovisnosti arhitekture jedinstvena za lean
metodu.
Da li se
Praksa
Podrani principi
Podrani principi
koristi u
agilne metode
Lean metode
agilnoj
metodi
Da li se
koristi u
Lean metodi
Zadovoljstvo
Refaktoring
korisnika
Pojaano uenje
DA
DA
DA
NE
Potivanje ljudi
DA
NE
NE
DA
Jednostavnost
Zadovoljstvo
Standardi
korisnika
kodiranja
Spremnost na
promjena
Zadovoljstvo
Timsko
korisnika
vlasnitvo koda
Motivacija
individualaca
Zadovoljstvo
korisnika
Slaba ovisnost
Spremnost na
arhitekture
promjene
Uestale isporuke
Eliminacija
nepotrebnog
Dostavljanje u
najkraem
moguem roku
Jednostavnost
Razvoj voen testovima i automatsko tesitranje pisanje testova prije kodiranja, unit
tesiranje
Programiranje u paru
10
Pregledi i inspekcije
Tabela 1.5 sumira koji principi su podrani ovim praksama i koje od ovih praksi se
primjenjuju kod Lean i agilnih metoda. Kod obje metode primjenjuju se sve prakse osiguranja
kvaliteta.
Tabela 1. 5 Prakse u okviru osiguranja kvaliteta
Praksa
Podrani
Podrani
principi agilne
principi Lean
metode
metode
Da li se
Da li se
koristi u
koristi u
agilnoj
Lean
metodi
metodi
DA
DA
DA
DA
DA
DA
Zadovoljstvo
Razvoj voen
korisnika
testovima i
automatsko testiranje
Eliminacija
nepotrebnog
Kreiranje
Tehnika
integriteta
izvrsnost
Eliminacija
Zadovoljstvo
nepotrebnog
korisnika
Programiranje u paru
Pojaano uenje
Tehnika
izvrsnost
Kreiranje
integriteta
Zadovoljstvo
korisnika
Eliminacija
nepotrebnog
Kontinuirana
Razgovori lice u
integracija
lice
Odluivanje u
poslijednjem
momentu
Tehnika
11
izvrsnost
Zadovoljstvo
korisnika
Eliminacija
nepotrebnog
Pregledi i inspekcije
DA
DA
DA
DA
Kreiranje
Tehnika
integriteta
izvrsnost
Zadovoljstvo
korisnika
Upravljanje
konfiguracijom
Eliminacija
nepotrebnog
integriteta
izvrsnost
Tabela 1.6 sumira koji principi su podrani ovim praksama i koje od ovih praksi se
primjenjuju kod Lean i agilnih metoda. Kod obje metode primjenjuju se sve prakse softver
release-a.
12
Podrani
Praksa
principi agilne
Da li se
Da li se
Podrani principi
koristi u
koristi u
Lean metode
agilnoj
Lean
metodi
metodi
DA
DA
DA
DA
metode
Eliminacija
nepotrebnog
Zadovoljstvo
Inkrementalna
korisnika
Pojaano uenje
Uestale isporuke
Dostavljanje u
isporuka korisniku
Softver koji radi
najkraem
moguem roku
Kreiranje
integriteta
Razdvajanje
eksternih i internih
release
Zadovoljstvo
Eliminacija
korisnika
nepotrebnog
Tehnika
Kreiranje
izvrsnost
integriteta
Kratke iteracije
Time-boxing
Tabela 1.7 sumira koji principi su podrani ovim praksama i koje od ovih praksi se
primjenjuju kod Lean i agilnih metoda. Praksa planiranja igre se ne primjenjuje u Lean
metodi, ova praksa je jedinstvena za agilnu metodu i prvenstveno se koristi kod SCRUM
metode.
13
Praksa
Podrani
Podrani
principi agilne
principi Lean
metode
metode
Da li se
Da li se
koristi u
koristi u
agilnoj
Lean
metodi
metodi
DA
DA
DA
DA
DA
DA
DA
NE
Zadovoljstvo
korisnika
Kratke iteracije
Spremnost na
Eliminacija
promjene
nepotrebnog
Uestale
Pojaano uenje
isporuke
Kreiranje
integriteta
Tehnika
izvrsnost
Eliminacija
Adaptivno planiranje u
skladu
sa
zahtjevima
korisnikim
i
priama
najvieg prioriteta
Zadovoljstvo
nepotrebnog
korisnika
Pojaano uenje
Spremnost na
Odluivanje u
promjene
posljednjem
momentu
Zadovoljstvo
korisnika
Time-boxing
Eliminacija
nepotrebnog
Uestale
isporuke
Zadovoljstvo
korisnika
Planiranje igre
Spremnost na
promjene
Eliminacija
nepotrebnog
Pojaano uenje
14
Razgovori lice u
lice
Ko-locirani razvoj
Krosfunkcionalni timovi
40-satno vrijeme
Tabela 1.8 sumira koji principi su podrani ovim praksama i koje od ovih praksi se
primjenjuju kod Lean i agilnih metoda. Prakse 40-satno vrijeme i stand-up susreti se ne
primjenjuje u Lean metodi, ove prakse su jedinstvene za agilnu metodu.
Tabela 1.8 Prakse u okviru upravljanja timom
Praksa
Podrani principi
agilne metode
Zadovoljstvo
korisnika
Kolocirani razvoj
Podrani
principi Lean
metode
Da li se
Da li se
koristi u
koristi u
agilnoj
Lean
metodi
metodi
DA
DA
DA
DA
DA
NE
Eliminacija
nepotrebnog
Pojaano uenje
Kontinuirana
refleksija
Krosfunkcionalni
timovi
Zadovoljstvo
Eliminacija
korisnika
nepotrebnog
Zajedniki rad
Pojaano uenje
Eliminacija
40-satno vrijeme
Zadovoljstvo
nepotrebnog
korisnika
Kreiranje
15
Odriv ritam
integriteta
Tehnika izvrsnost
Zadovoljstvo
korisnika
Stand-up susreti
Eliminacija
nepotrebnog
DA
NE
Potivanje ljudi
DA
DA
Kontinuirana
refleksija
Zadovoljstvo
korisnika
Spremnost na
Tim odabire
promjene
vlastite zadatke
Motivacija
individualaca
Samoorganiziranost
tima
Kanban pull sistem korisnik alje zahtjev za proizvod i razvojni tim tek tada razvija
tu funkcionalnost. Zbog pull zahtjeva od strane korisnika izbjegava se proizvodnja
neeljenih proizvoda.
Tabela 1.9 sumira koji principi su podrani ovim praksama i koje od ovih praksi se
primjenjuju kod Lean i agilnih metod. Ove prakse su jednistvene samo za Lean metodu.
16
Podrani principi
Podrani principi
koristi u
agilne metode
Lean metode
agilnoj
metodi
Value stream
mapiranje
Svi
Svi
Da li se
koristi u
Lean metodi
NE
DA
NE
DA
NE
DA
NE
DA
Eliminacija
Upravljanje
Zadovoljstvo
nepotrebnog
korisnika
Dostavljanje u
Uestale isporuke
najkraem
zalihama
Softver koji radi
Tehnika izvrsnost
moguem roku
Kreiranje integriteta
Vidjeti cjelinu
Glavni ininjer
Svi
Zadovoljstvo
Kanban pull
korisnika
sistem
Spremnost na
promjene
Svi
Eliminacija
nepotrebnog
Dostavljanje u
najkraem
moguem roku
17
1.4. Procesi
Agilni razvoj se sastoji od niza instancija u obliku agilnih procesa. Najpoznatiji
predstavnici su ekstremno programiranje i SCRUM. S druge strane, Lean razvoj ne predlae
tok rada tj. proces proizvodnje specifinog proizvoda. Lean samo formulie principe i prua
alate za analizu procesa koji predstavljaju vodie za poboljanje procesa kako bi se postigao
dobar tok vrijednosti. Jedna od prednosti nedefinisanja procesa jeste to se Lean metoda moe
primjeniti na bilo koji sistem, dok se agilni procesi esto moraju prilagoavati kontekstu.
18
Zakljuak
U ovom eseju izvrena je komparacija Lean metode u odnosu na agilnu metodu razvoja
softvera iz etiri razliita perspektive. U pogledu cilja obje metode imaju iste ciljeve koje ele
postii, a to je isporuiti kvalitetan softver u to kraim kontinuiranim vremenskim ciklusima.
Prema principima ovih metoda mogue je konstatovati da agilna metoda predstavlja Lean
metodu, ali Lean metoda nije agilna metoda, to je posljedica injenice da je princip end-toend toka karakteristian samo za Lean metodu. Sa stanovita naina implementacije principa
tj. praksi moe se konstatovati da sve prakse u okviru Osiguranja kvaliteta i Softver release se
primjenjuju i u Lean i agilnoj metodi. Prakse koje su jedinstvene za agilnu metodu su praksa
na strani korisnika, standardi kodiranja, timsko vlasnitvo koda, planiranje igre, 40-satno
vrijeme, stand-up susreti, dok prakse jedinstvene za Lean metodu su sve prakse u okviru
perspektive End-to-end toka i praksa slaba ovisnost arhitekture u okviru dizajna i
implementacije. Lean metoda ne definie procese ve samo principe i smjernice za
poboljanje procesa, to joj omoguava da se moe primjeniti na bilo koji sistem ili poslovni
proces. S druge strane, agilna metoda definie procese i koji se vrlo esto moraju
prilagoavati kontekstu.
19
Literatura
[1]
[2]
[3]
20