22
UNIVERZITET U SARAJEVU ELEKTROTEHNIČKI FAKULTET ODSJEK ZA TELEKOMUNIKACIJE Sarajevo, 2015. godine Razlike između Lean i agilne metode razvoja softvera Esej iz predmeta Napredne metode razvoja by Erma Perenda

Esej Lean vs Agile

Embed Size (px)

DESCRIPTION

Komparacija Lean i Agilne metode

Citation preview

  • UNIVERZITET U SARAJEVU

    ELEKTROTEHNIKI FAKULTET

    ODSJEK ZA TELEKOMUNIKACIJE

    Sarajevo, 2015. godine

    Razlike izmeu Lean i agilne

    metode razvoja

    softvera

    Esej iz predmeta Napredne metode razvoja

    softvera

    by Erma Perenda

  • Sadraj

    Uvod ........................................................................................................................................... 1

    1. Komparacija Lean i agilne metode razvoja softvera .......................................................... 3

    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. Ininjering zahtjeva .............................................................................................. 8

    1.3.2. Dizajn i implementacija ....................................................................................... 9

    1.3.3. Osiguranje kvaliteta ............................................................................................ 10

    1.3.4. Softver release .................................................................................................... 12

    1.3.5. Planiranje projekta .............................................................................................. 13

    1.3.6. Upravljanje timom .............................................................................................. 15

    1.3.7. End-to-end tok .................................................................................................... 16

    1.3.8. Sumarno poreenje ............................................................................................. 17

    1.4. Procesi ....................................................................................................................... 18

    Zakljuak .................................................................................................................................. 19

    Literatura .................................................................................................................................. 20

  • 1

    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.

    Cilj odnosi se na to to odreena metoda eli da postigne. Predstavlja razlog

    zato sa se koriste odreeni principi, prakse i procesi. Cilj predstavlja odgovor na

    pitanje Zato?.

  • 2

    Principi pravila koja se trebaju slijediti kako bi se ostvario cilj. Principi

    predstavljaju odgovor na ta?.

    Prakse nain implementacije principa. Prakse predstavljaju odgovor na pitanje

    Kako?.

    Procesi - opisuju tok proizvodnje. Procesi predstavljaju odgovor na pitanja Kada

    e se neka aktivnost izvriti i u kojem redoslijedu?.

    Bazirajui se na ova etiri aspekta u poglavlju 1 sumirane su razlike Lean i agilne metode

    razvoja softvera.

  • 3

    1. Komparacija Lean i 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).

    Cilj Lean metode razvoja softvera fokusira se na stvaranju vrijednosti korisnika u

    kratkom vremenskom periodu i izbjegavanju troenja vremena na aktivnostima koji ne

    dodaju vrijednost korisniku. Na vrijednost u ovom sluaju se mora gledati kroz

    naoale korisnika.

    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.

  • 4

    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.

    1.2.1.1 Agilna metoda razvoja softvera

    Vrijednosti definirani u agilnom manifestu su:

    Individualci i interakcija ispred procesa i alata (V1),

    Softver koji radi ispred iscrpne dokumentacije (V2),

    Saradnja sa klijentom ispred pregovora o ugovoru (V3),

    Reagiranje na promjenu ispred praenja plana (V4).

    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)

  • 5

    1.2.1.2 Lean metoda razvoja softvera

    Lean je baziran na sedam principa:

    1. Eliminacija nepotrebnog u lean sve to ne dodaje vrijednost korisniku se smatra

    nepotrebnim. Sedam tipova nepotrebnog je definirano u proizvodnji i oni su preslikani

    na razvoj softvera (Tabela 1.1). Nepotrebno usporava isporuku softvera i zbog toga

    treba to prije biti eleminisano kako bi se softver to bre isporuio.

    Tabela 1.1 Nepotrebno u proizvodnji i softverskom inenjerstvu

    Proizvodnja Softversko inenjerstvo

    Popis: intermediate work-products i

    poslova u procesu

    Djelimino uraen posao posao koji nema

    vrijednost dok se ne zavri npr. napisan kod

    koji nije testiran

    Prekomjerna proizvodnja broj

    proizvedenih predmeta je vei od

    traenog broja

    Ekstra features funkcionalnost koja je

    razvijena al ne daje vrijednost korisniku

    Ekstra obrada dodatni rad je

    napravljen npr. siromaane postavke

    ureaja

    Ekstra procesi koraci procesa koji mogu biti

    uklonjeni npr. pisanje dokumentacije

    Transport transport intermediate

    proizvoda

    Handover dodatni overhead

    Pokret kruenje okolo umjesto ka

    cilju

    Pokret /prebacivanje zadataka ljudi moraju

    prepoznavati znanje

    ekanje maina sa slobodnim

    kapacitetom eka na ulaz

    Kanjenje kanjenje u procesu razvoja

    Nedostaci - fiksiranje problema u

    proizvodima

    Nedostaci - fiksiranje problema u proizvodima

    2. Pojaano uenje razvoj softvera predstavlja kontinuirani proces uenja. Najbolji

    nain za poboljanje okruenja za razvoj softvera je da se pojaa uenje. Uenje

    ukljuuje bolje razumijevanje potreba korisnika, potencijalna rjeenja za arhitekturu,

    dobre strategije za testiranje itd.

  • 6

    3. Odluivanje u posljednjem momentu razvoj softvera je uvijek povezan sa

    odreenom dozom nesigurnosti. Bolje rezultate mogue je postii primjenom opcija

    zasnovanog pristupa, odlaganjem odluka koliko god je mogue, do trenutka do kad

    sistem moe biti zasnovan na injenicama, a ne na nesigurnim pretpostavkama i

    predvianjima. to je sistem sloeniji to u njega treba ugraditi to vie sposobnosti za

    promjene, to omoguava odlaganje vanih i kljunih odluka.

    4. Dostavljanje u najkraem moguem roku u eri brze tehnoloke evolucije ne

    preivljava najvei ve najbri. Neophodno je isporuiti krajnji proizvod to ranije, da

    bi se to prije dobila povratna informacija od korisnika, te ugradila u slijedeu

    iteraciju. Krae iteracije poboljavaju uenje i komunikaciju u timu. Nemogue je

    odlagati odluke bez brzine. Brzina dozvoljava sadanje potrebe korisnika, a ne ono to

    su traili juer.

    5. Potovanje ljudi lean pristup favorizuje pristup Pronai dobre ljude i pusti ih da

    rade svoj posao

    6. Kreiranje integriteta kvalitet treba biti ugraen u sotver u to ranijoj fazi. Korisnik

    treba da ima opti dovljaj sistema tj. da osjeti integritet, kako se on reklamira,

    isporuuje, te koja je njegova intuitivna primjena i dr. Konceptualni integritet

    podrazumjeva da sistemski odvojene komponente rade zajedno kao cjelina, te da se

    uspostavi ravnotea izemu fleksibilnosti, odravanja, efikasnosti i odziva. Ovo se

    moe postii razumijevanjem domena problema i njegovim trenutnim rjeavanjem, a

    ne sekvencijalnim. Protok informacija treba da bude dvosmjeran, od programera do

    korinsika i obrnuto.

    7. Vidjeti cjelinu prilikom poboljanja razvoja softvera cijeli tok vrijednosti se treba

    posmatrati kao end-to-end proces. Npr. nema smisla poboljavati proces definisanja

    zahtjeva ako proces impelentacije i kodiranja tih zahtjeva ide mnogo sporije.

    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.

  • 7

    Tabela 1.2 Veze principa Lean i agilne metode razvoja softvera

    Upravljanje ljudima i vostvo

    Principi Agilne metode Principi Lean metode

    Zajedniki rad Eliminacija nepotrebnog

    Motivacija individualaca

    Odriv ritam

    Samoorganiziranost tima

    Potivanje ljudi

    Razgovori lice u lice Pojaano uenje

    Tehniki kvalitet proizvoda

    Principi Agilne metode Principi Lean metode

    Softver koji radi Eliminacija nepotrebnog

    Kreiranje integriteta

    Tehnika izvrsnost Kreiranje integriteta

    Release proizvoda

    Principi Agilne metode Principi Lean metode

    Uestale isporuke

    Eliminacija nepotrebnog

    Pojaano uenje

    Dostavljanje u najkraem moguem roku

    Fleksibilnost

    Principi Agilne metode Principi Lean metode

    Spremnost na promjene Odluivanje u posljednjem momentu

    Prioritet korisnikih potreba/vrijednosti

    Principi Agilne metode Principi Lean metode

    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

    Principi Agilne metode Principi Lean metode

    Kontinuirana refleksija Pojaano uenje

    End-to-end tok

    Principi Agilne metode Principi Lean metode

    Nije definsano Vidjeti cjelinu

  • 8

    Upravljanje ljudima i vostvo svaki Lean princip ima odgovarajui Agile princip.

    Obje metode dijele ista pravila za upravljanje ljudima.

    Tehniki kvalitet proizvoda obje metode naglaavaju stalnu panju na kvalitet i

    tehniku izvrsnost proizvoda. Mada postoji mala razlika u 9 principu agilne metode

    koja naglaava da dobar tehniki dizajn poboljava agilnost.

    Release proizvoda proizvodi se isporuuju u kratkim vremenskim ciklusima kod

    obje metode.

    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.

    Prioritet korisnikih potreba/vrijednosti potpuno identini prinicpi s ovog

    stanovita

    Uenje obje metode se fokusiraju na uenje, mada Lean metoda uzima generalniji

    pristup

    End-to-end tok ne razmatra se u agilnim metodama i ovo je jedna od razlika ove

    dvije metode. Ovaj princip je jedinstven za Lean metodu.

    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.

    1.3.1. Ininjering zahtjeva

    Ininjering zahtjeva ukljuuje dvije prakse:

    1. Na strani korisnika (engl. on-site customer) odnosi se na ukljuivanje

    korisnika u razvojni proces softvera,

    2. Metafore i korisnike prie opisuje ta sistem treba da radi.

  • 9

    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

    agilne metode

    Podrani principi

    Lean metode

    Da li se koristi

    u agilnoj

    metodi

    Da li se

    koristi u

    Lean metodi

    Na strani

    korisnika

    Zadovoljstvo

    korisnika

    Razgovori lice u

    lice

    Eliminacija

    nepotrebnog

    Pojaano uenje

    DA NE

    Metafore i

    korisnike

    prie

    Zadovoljstvo

    korisnika

    Eliminacija

    nepotrebnog DA DA

    1.3.2. Dizajn i implementacija

    Aktivnost dizajn i implementacija ukljuuje slijedee prakse:

    Refaktoring kontiniurana revizija i poboljanje napisanog koda kako bi postao

    odriv, itljiv i jednostavan

    Standardi kodiranja primjena pravila konvencije pisanja koda, kao i fajlova/foldera

    Timsko vlasnitvo koda svako je odgovoran za svaku liniju koda

    Slaba ovisnost o arhitekturi isporuka jedne funkcionalnosti ne ovisi o isporuci druge

    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.

  • 10

    Tabela 1. 4 Prakse u okviru dizajna i implementacije

    Praksa Podrani principi

    agilne metode

    Podrani principi

    Lean metode

    Da li se

    koristi u

    agilnoj

    metodi

    Da li se

    koristi u

    Lean metodi

    Refaktoring

    Zadovoljstvo

    korisnika

    Jednostavnost

    Pojaano uenje DA DA

    Standardi

    kodiranja

    Zadovoljstvo

    korisnika

    Spremnost na

    promjena

    - DA NE

    Timsko

    vlasnitvo koda

    Zadovoljstvo

    korisnika

    Motivacija

    individualaca

    Potivanje ljudi DA NE

    Slaba ovisnost

    arhitekture

    Zadovoljstvo

    korisnika

    Spremnost na

    promjene

    Uestale isporuke

    Jednostavnost

    Eliminacija

    nepotrebnog

    Dostavljanje u

    najkraem

    moguem roku

    NE DA

    1.3.3. Osiguranje kvaliteta

    Osiguranje kvaliteta je podran slijedeim praksama:

    Razvoj voen testovima i automatsko tesitranje pisanje testova prije kodiranja, unit

    tesiranje

    Programiranje u paru

  • 11

    Kontinuirana integracija im se razvoj inkrementa zavri treba se to prije integrisati

    u ukupni proizvod

    Pregledi i inspekcije

    Upravljanje konfiguracijom postizanje konzistentnosti izmeu komponenti sistema,

    tj. postizanje integriteta.

    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

    principi agilne

    metode

    Podrani

    principi Lean

    metode

    Da li se

    koristi u

    agilnoj

    metodi

    Da li se

    koristi u

    Lean

    metodi

    Razvoj voen

    testovima i

    automatsko testiranje

    Zadovoljstvo

    korisnika

    Softver koji radi

    Tehnika

    izvrsnost

    Eliminacija

    nepotrebnog

    Kreiranje

    integriteta

    DA DA

    Programiranje u paru

    Zadovoljstvo

    korisnika

    Tehnika

    izvrsnost

    Eliminacija

    nepotrebnog

    Pojaano uenje

    Kreiranje

    integriteta

    DA DA

    Kontinuirana

    integracija

    Zadovoljstvo

    korisnika

    Razgovori lice u

    lice

    Softver koji radi

    Tehnika

    Eliminacija

    nepotrebnog

    Odluivanje u

    poslijednjem

    momentu

    DA DA

  • 12

    izvrsnost

    Pregledi i inspekcije

    Zadovoljstvo

    korisnika

    Softver koji radi

    Tehnika

    izvrsnost

    Eliminacija

    nepotrebnog

    Kreiranje

    integriteta

    DA DA

    Upravljanje

    konfiguracijom

    Zadovoljstvo

    korisnika

    Softver koji radi

    Tehnika

    izvrsnost

    Eliminacija

    nepotrebnog

    Kreiranje

    integriteta

    DA DA

    1.3.4. Softver release

    Softver release ukljuuje slijedee prakse:

    Inkrementalna isporuka softvera

    razdvajanje internih i eksternih release softvera interni release je polazite za razvoj

    proizvoda kvalitete isporuenog na tritu, ali on nee biti isporuen radi strategije

    trita.

    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.

  • 13

    Tabela 1. 6 Prakse u okviru softver release

    Praksa

    Podrani

    principi agilne

    metode

    Podrani principi

    Lean metode

    Da li se

    koristi u

    agilnoj

    metodi

    Da li se

    koristi u

    Lean

    metodi

    Inkrementalna

    isporuka korisniku

    Zadovoljstvo

    korisnika

    Uestale isporuke

    Softver koji radi

    Eliminacija

    nepotrebnog

    Pojaano uenje

    Dostavljanje u

    najkraem

    moguem roku

    Kreiranje

    integriteta

    DA DA

    Razdvajanje

    eksternih i internih

    release

    Zadovoljstvo

    korisnika

    Tehnika

    izvrsnost

    Eliminacija

    nepotrebnog

    Kreiranje

    integriteta

    DA DA

    1.3.5. Planiranje projekta

    Planiranje projekta ukljuuje slijedee prakse:

    Kratke iteracije

    Adaptivno planiranje u skladu sa korisnikim zahtjevima i priama najvieg prioriteta

    Time-boxing

    Planiranje igre tj. slijedee iteracije

    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.

  • 14

    Tabela 1.7 Prakse u okviru planiranja projekta

    Praksa

    Podrani

    principi agilne

    metode

    Podrani

    principi Lean

    metode

    Da li se

    koristi u

    agilnoj

    metodi

    Da li se

    koristi u

    Lean

    metodi

    Kratke iteracije

    Zadovoljstvo

    korisnika

    Spremnost na

    promjene

    Uestale

    isporuke

    Softver koji radi

    Tehnika

    izvrsnost

    Eliminacija

    nepotrebnog

    Pojaano uenje

    Kreiranje

    integriteta

    DA DA

    Adaptivno planiranje u

    skladu sa korisnikim

    zahtjevima i priama

    najvieg prioriteta

    Zadovoljstvo

    korisnika

    Spremnost na

    promjene

    Eliminacija

    nepotrebnog

    Pojaano uenje

    Odluivanje u

    posljednjem

    momentu

    DA DA

    Time-boxing

    Zadovoljstvo

    korisnika

    Uestale

    isporuke

    Eliminacija

    nepotrebnog

    DA DA

    Planiranje igre

    Zadovoljstvo

    korisnika

    Spremnost na

    promjene

    Eliminacija

    nepotrebnog

    Pojaano uenje

    DA NE

  • 15

    Razgovori lice u

    lice

    1.3.6. Upravljanje timom

    Upravljanje timom ukljuuje slijedee prakse:

    Ko-locirani razvoj

    Krosfunkcionalni timovi

    40-satno vrijeme

    Stand-up susreti dnevni sastanci

    Tim odabire line zadatake

    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

    Podrani

    principi Lean

    metode

    Da li se

    koristi u

    agilnoj

    metodi

    Da li se

    koristi u

    Lean

    metodi

    Kolocirani razvoj

    Zadovoljstvo

    korisnika

    Razgovori lice u lice

    Kontinuirana

    refleksija

    Eliminacija

    nepotrebnog

    Pojaano uenje

    DA DA

    Krosfunkcionalni

    timovi

    Zadovoljstvo

    korisnika

    Zajedniki rad

    Eliminacija

    nepotrebnog

    Pojaano uenje

    DA DA

    40-satno vrijeme Zadovoljstvo

    korisnika

    Eliminacija

    nepotrebnog

    Kreiranje

    DA NE

  • 16

    Odriv ritam

    Tehnika izvrsnost

    integriteta

    Stand-up susreti

    Zadovoljstvo

    korisnika

    Kontinuirana

    refleksija

    Eliminacija

    nepotrebnog

    DA NE

    Tim odabire

    vlastite zadatke

    Zadovoljstvo

    korisnika

    Spremnost na

    promjene

    Motivacija

    individualaca

    Samoorganiziranost

    tima

    Potivanje ljudi DA DA

    1.3.7. End-to-end tok

    End-to-end tok obuhvata slijedee prakse:

    Value-stream mapiranje vizualizacija cjelokupnog procesa razvoja softvera.

    Mapiranje ima za cilj da se identificiraju i uklone svi koraci koji ne kreiraju vrijednost.

    Upravljanje zalihama (engl. inventory management) sa teorijom redova ekanja i

    teorijom ogranienja upravljanje procesima koji nisu zavreni, a sami po sebi ne

    dodaju neku vrijednost korisniku

    Glavni ininjer osoba odgovorna za uspjeh ili neuspjeh razvojnog 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.

  • 17

    Tabela 1.9 Prakse u okviru end-to-end toka

    Praksa Podrani principi

    agilne metode

    Podrani principi

    Lean metode

    Da li se

    koristi u

    agilnoj

    metodi

    Da li se

    koristi u

    Lean metodi

    Value stream

    mapiranje Svi Svi NE DA

    Upravljanje

    zalihama

    Zadovoljstvo

    korisnika

    Uestale isporuke

    Softver koji radi

    Tehnika izvrsnost

    Eliminacija

    nepotrebnog

    Dostavljanje u

    najkraem

    moguem roku

    Kreiranje integriteta

    Vidjeti cjelinu

    NE DA

    Glavni ininjer Svi Svi NE DA

    Kanban pull

    sistem

    Zadovoljstvo

    korisnika

    Spremnost na

    promjene

    Eliminacija

    nepotrebnog

    Dostavljanje u

    najkraem

    moguem roku

    NE DA

    1.3.8. Sumarno poreenje

    Isto sve prakse u okviru Osiguranja kvaliteta i Softver release se primjenjuju i u

    Lean i agilnoj metodi

    Jedinstveno za agilnu metodu prakse na strani korisnika, standardi kodiranja,

    timsko vlasnitvo koda, planiranje igre, 40-satno vrijeme, stand-up susreti

    Jednistveno za Lean metodu sve prakse u okviru perspektive End-to-end toka i

    praksa slaba ovisnost arhitekture u okviru dizajn i implementacija

  • 18

    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.

  • 19

    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-to-

    end 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.

  • 20

    Literatura

    [1] K. PETERSEN. Implementing Lean and Agile Software Development in Industry. Blekinge Institute of Technology. Sweden, 2010.

    [2] I. SOMMERVILLE. Software Engineering. Pearson Education, Inc. 2011.

    [3] IEEE SOFTWARE. Lean Software Development. September/October 2012.