72
Vaidas Adomauskas 2010-06-29 ir 2010- 07-01 Realus Scrum naudojimas įmonėse: teorija, praktinė patirtis iš 2 kompanijų, sunkumai, rekomendacijos

Realus Scrum naudojimas imonese (2010-06-29_07-01)

Embed Size (px)

DESCRIPTION

Realus Scrum naudojimas įmonėse: teorija, praktinė patirtis iš 2 kompanijų, sunkumai, rekomendacijos. Prezentacija pristatyta Lietuvos .NET vartotojų grupei Vilniuje ir Kaune. Pirmoji dalis: Agile/Scrum teorija. Antroji dalis: mano praktinė Scrum diegimo ir naudojimo patirtis dviejose kompanijose (Lavasoft ir Adform).

Citation preview

Page 1: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Vaidas Adomauskas

2010-06-29 ir 2010-07-01

Realus Scrum naudojimas įmonėse: teorija, praktinė patirtis iš 2 kompanijų, sunkumai, rekomendacijos

Page 2: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Darbotvarkė

Susipažinsime ;)Teorija

StatistikaAgileScrum

PraktikaLavasoftAdform

Anglų-Lietuvių vertimas yra sunku

Page 3: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Susipažinkime ;)

Page 4: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Apie mane (1)

VU MIF - Programų sistemų inžinerija (bakalauras)

3 metai MIF SAPirmininkas (organizacijos valdymas)Renginių organizavimas (MIDI)Mokymai

IT University of Gothenburg – Master in Software Engineering and Management (magistras)

Critical Chain Project Management (CCPM, TOC)Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles (http://gupea.ub.gu.se/dspace/bitstream/2077/10457/1/gupea_2077_10457_1.pdf)

Page 5: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Apie mane (2)

AB Lavasoft (Ad-Aware)Agile/Scrum ”Pionierius”Pakeičiau procesą: iš JFDI į Scrum (~25 žm, 4 komandos)Agile Development Practices 2008 (http://www.sqe.com/ConferenceArchive/AgileDevPractices2008/)

Scandinavian Development Conference 2009 (http://www.scandevconf.se/)

Adform (www.adform.com)Projektų vadovas (Scrum Master/Product Owner)Agile/Scrum ”Pionierius”Įdiegėme Scrum (>40 žm, 7 komandos)Scrum Master Certification (Ken Schwaber, Paris) (http://www.scrumalliance.org/generate_public_certificate/80593/A4/csm)

http://scrum.agile.lt

Page 6: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Kas jus?

Agile/Scrum:GirdėjęŽino daugNaudoja(o)

Pareigos:AnalitikasArchitektasProgramuotojasTestuotojasProjektų vadovaskita..

Page 7: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Statistika

Page 8: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Funkcionalumo naudojimas

Page 9: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Sėkmingi projektai

Page 10: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Tradicinis projektas

35% reikalavimų keičiasi... 64% funkcionalumo niekada arba retai naudojami... 32% sėkmingų projektų...

PPlanavimas

SStabilizavimas

VVystymas

Page 11: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum projektas

P P V SP V P V P V

Page 12: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Agile ir tradiciniai projektai

http://www.scrumalliance.org (Scrum mokymų žemėlapis)

Page 13: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Klausimai?

Page 14: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Judrumo (Agile) manifestashttp://agilemanifesto.org

Page 15: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Judrumo (Agile) manifestas

...mes vertiname:

Žmones ir jų bendravimą

labiau nei

procesą ir įrankius

http://agilemanifesto.org/

Page 16: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Judrumo (Agile) manifestas

...mes vertiname:

Veikiančią programinę

įrangą

labiau nei

išsamią

dokumentaciją

http://agilemanifesto.org/

Page 17: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Judrumo (Agile) manifestas

...mes vertiname:

Bendradarbiavimą su klientu

labiau nei

derybas dėl

kontraktų

http://agilemanifesto.org/

Page 18: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Judrumo (Agile) manifestas

...mes vertiname:

Reagavimą į pokyčius

labiau nei

plano sekimą

http://agilemanifesto.org/

Page 19: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Metodai ir praktikos

Agile metodaiExtreme programming (XP)Feature Driven Development (FDD)Open Unified Process (OpenUP)ScrumLean software development…

Agile praktikosTest Driven Development (TDD)Behavior Driven Development (BDD)Continuous IntegrationPair ProgrammingPlanning poker…

http://en.wikipedia.org/wiki/Agile_software_development

Page 20: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Klausimai?

Page 21: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum

Page 22: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum istorija

Page 23: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum

Scrum yra sistema (framework) kurti sudėtingiems produktamsScrum neaprašo konkrečių metodų ar technikųScrum nėra “sidabrinė kulka (silver bullet)”Scrum yra įrankis, kuris išryškina ką reikia tobulinti, kuriant kokybišką ir greitai atsiperkančią programinę įrangą.

Page 24: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum komanda (1)

Moralas: vištos negali sakyti kiaulėms KAIP padaryti darbą

Kiaulės: Scrum komandaVištos: visi kiti (vadovai, departamentų vadovai, klientai ir t.t.)

Page 25: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum komanda (2)

Scrum meistras (Scrum Master)

Produkto šeimininkas (Product Owner)

Komanda

Page 26: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum procesas

Paleidimo planavimas

Produkto užduočių sąrašas

SprintaiSprinto planavimasKasdienis Scrum

Sprinto deginimo kreivė

Sprinto peržiūraSprinto retrospektyva

Paleidimas

Page 27: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Pabaigta (Done)

Visiškai “pabaigtas” prieaugis (increment) turi atliktą:

analizę dizainąperrašymą (refactoring) kodo rašymądokumentaciją testavimą paleidimądemonstravimą

Page 28: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Klausimai?

Page 29: Realus Scrum naudojimas imonese (2010-06-29_07-01)
Page 30: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Fosbury Flop – istorija apie šuolį į aukštį

Tradicinis šuolis į aukštį iki 19681968 Meksiko olimpiada – Dick Fosbury (aukso medalis)Nuo 1972 tik 2 medaliai buvo laimėti nenaudojant “Fosbury Flop”Bet, net 1980 olimpiadoje ne visi naudojo “Fosbury Flop”...

Keistis sunku...

http://en.wikipedia.org/wiki/Dick_Fosbury

Page 31: Realus Scrum naudojimas imonese (2010-06-29_07-01)

ScrumButs…

<Mes naudojam Scrum, bet><mes turime unikalias aplinkybes><taigi mes turėjome pakeisti Scrum, kad jis veiktų čia>

http://www.motionbox.com/videos/0a99deb71f13e2ca87

“Agile development is like teenage sex. Everyone says they're doing it, but only 10% are. And those who are -- ARE DOING IT WRONG.” - The

Hacker Chick Blog

“If you’re not having fun, you’re not doing it right!”- Joseph Pelrine, CST and Social Complexity Scientist

Page 32: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Klausimai?

Page 33: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Praktika

Page 34: Realus Scrum naudojimas imonese (2010-06-29_07-01)

.

www.lavasoft.com

Lavasoft is the maker of Ad-Aware, the world's most popular anti-malware software

with over 350 million downloads

Page 35: Realus Scrum naudojimas imonese (2010-06-29_07-01)

.

Biuras: Švedija, GotenburgasDydis: ~60 darbuotojų (~30% produkto vystymui) + nuotolinė komanda Šri Lankoje (5 darb.)Rinka: JAV, plėtimasis į Aziją ir EuropąProduktai:

Ad-Aware ~300.000 parsisiųstų kopijų per savaitę iš www.download.com

Anksčiau virš 500.000, Nr1 www.download.com

Kiti saugumo/privatumo produktai

Page 36: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Ad-Aware produkto šeima

Atnaujinimų, licenzijavimo, naujienų,

automatinės virusų analizės serveriai

Page 37: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Lavasoft evoliucija (1)

Darom kas šiandien dega (vadovybei, pardavėjams)Užduotis skirsto programuotojų vadovasTestuoja programuotojai (su virusų analitikais)Kuriamas testavimo skyrius

Paleisto produkto kokybė neatitinka lūkesčių

Page 38: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Lavasoft evoliucija (2)

Produkto funkcionalumas dokumentuojamasIškeliami naujos produkto versijos tikslaiĮkuriama projektinė struktūra (projektų vadovas)Funkcionalumas padalinamas iteracijoms (1 mėn)Sprendžiama dalis techninės skolos

Paleistas produktas išpildė tikslusir kokybės lūkesčius

Page 39: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Lavasoft evoliucija (3)

4 Scrum tarpfunkcinės komandos (~25 darbuotojai)Produktų užduočių sąrašai (Product Backlogs)Produkto valdyba (visų skyrių vadovai)Paleidimo (release) tikslai ir tema

Paleistas produktas: atitiko tikslus, kokybė aukščiausia bet kada buvusi

Page 40: Realus Scrum naudojimas imonese (2010-06-29_07-01)

4 Scrum komandos

Produkto vystymo (vėliau skilo į dvi)0,5 Scrum Meistras/Produkto šeimininkas1 UI dizaineris/analitikas2 UI programuotojai 6 programuotojai2,5 kokybės užtikrinimo specialistai

Virusų aptikimo “variklio” (4 programuotojai)Automatinės virusų analizės sistemos vystymo

2 programuotojai1 virusų analitikas, Scrum Meistras/Produkto šeimininkas

Verslo versijos vystymo (nuotolinė komanda Šri Lankoje)

0,5 Produkto šeimininkas0,5 projektų vadovė / Scrum Meistrė4 programuotojai1 testuotojas

Page 41: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Naudos (valdymas)

Prognozuojami produkto paleidimai (releases)Produkto kokybė grįžo (kartu ir santykiai su partneriais)Baigėsi “kaltų ieškojimai” po paleidimųVisi skyriai dirba kartu (paleidimo tikslai ir tema)Daugiau resursų skiriama esminiam funkcionalumui

Page 42: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Naudos (vykdymas)

Produkto dalis žino visa komandaKryptingai mažinama produkto techninė skola (technical debt)Įgyvendinamos geros techninės praktikos:

Buildbot (http://buildbot.net)Nuolatinis integravimas (Continues Integration)Kasdieniai kompiliavimai (Daily Builds)

Automatizuotas testavimas(Automated Unit tests, Functionality tests)

Automatizuoti procesai:Atnaujinimų paleidimas (updates releases)Instaliacinio paketo kūrimasVertimų integracija“rebrand’ų” kūrimas

Page 43: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Išmoktos pamokos

Darbuotojų mokymai prieš pokytį yra svarbuYra žmonių, kurie nesugebės dirbti pagal ScrumVadovybei reikia parduoti produkto užduočių sąrašo valdymą, ne Scrum procesąSėdėjimas kartu (kuo arčiau) yra labai svarbuProgramuotojus reikia versti dirbti komandojeOptimaliausia komanda 7 (+-2) žmonės

Page 44: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Klausimai?

Page 45: Realus Scrum naudojimas imonese (2010-06-29_07-01)

www.adform.com

Interneto reklamos planavimo, valdymo, apskaitos ir optimizacijos sistema

Your partner in digital marketing

Page 46: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Management and Planning Tools, Reporting, BI Tools

Middleware, Databases, DataWarehouses, BI Back End

Ad Serving and Web Analytics Front End

Internet

Publisher Web Advertiser Web Search Engine

Banner

Banner

Page

Searched keywordClick Click

Impressions, clicks,

other transactionsImpressions, clicks,

other transactions

Browsing Tracking

Transactions

Text AdLanding

Page

Page

…….

IN: Request or Event OUT: Content

Agencies Publishers Creative AgenciesAdvertisers Operators Partners

Page 47: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Your partner in digital marketing

Verslo modelis: SaaS, el. paslaugosRinka: Danija - Skandinavija – Europa - Azija 6 produktai – posistemėsGamyba: Lietuva

> 40 darbuotojų gamybos skyriuje7 komandos SCRUM!

Page 48: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Adform evoliucija (1)

Page 49: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Adform evoliucija (2)

Page 50: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Adform evoliucija (3)

Page 51: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Adform evoliucija (4)

Mokymai apie Scrum/AgileVadovybeiTechniniams departamentamsKitiems skyriams (trafficking, sales)

Pilotinis projektasSvarbus kompanijai projektas8 žmonės2 mėnesiai

Scrum Master sertifikacijos

Page 52: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Adform evoliucija (5)

Page 53: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum įgyvendinimas: Rollout komanda

Komandoje: Dev, Arch, Test, IT, HRDienos mokymų/planavimo sesija

Page 54: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum įgyvendinimas:reikalavimų valdymas

6 produkto užduočių sąrašai (pagal sistemos sritis)

Page 55: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum įgyvendinimas:komandos

7 tarpfunkcinės komandos (po 6-8 specialistus)

4 Scrum meistrai (projektų vadovai ir gamybos vadovas)3-4 produktų šeimininkai (analitikai)

Komandos persodintos kad būtų kuo arčiauSprintai 2 savaičių ir sinchronizuotiPrieš pradedant – mokymai/diskusija

Page 56: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Scrum įgyvendinimas:įrankiai

Page 57: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Naudos (valdymas)

Aiškūs reikalavimų prioritetaiAiški ir paprasta naujų funkcijų patekimo į produkto užduočių sąrašus tvarkaAiškūs kompanijos resursų “butelio kakliukai”Prognozuojamas sistemos kūrimo greitisIšnyko “amžini” projektaiTobulėja produkto valdymo organizacija

Page 58: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Naudos (vykdymas)

Programuotojai netrukdomi kasdieniais klausimais/pasikeitimaisSistemos dalis žino visa komandaDažni ir stabilūs paleidimai (releases)Kryptingai gerinamas sistemos kodas (refactoring)Įgyvendinamos geros techninės praktikos:

Team City (http://www.jetbrains.com/teamcity/)Nuolatinis integravimas (Continues Integration)Kasdieniai kompiliavimai (Daily Builds)

Automatizuotas testavimas (Automated Unit tests,Functionality tests)

Page 59: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Iššūkiai

Negalimas Command & Control vadovavimasSpecialistai prisiima sprendimų atsakomybęSpecialistai imasi “ne savų” užduočių, jei to reikiaRealistiškas vertinimas ir sąžiningas statuso žymėjimasLabai plačios ir rimtos Product Owner atsakomybėsStambių užduočių skaidymas po 2 savaitesNegalima keisti apimties 2 savaitesSunku apibrėžti “DONE”, dar sunkiau padarytiFunkcionalumas liečiantis kelias komandas

Page 60: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Vadovų užduotys

Keičiama darbuotojų vertinimo sistemaPatarimai, 360 vertinimai ir karjeros planavimas asmeniškaiPremijavimas komandoms

Tobulinamos veiklos metrikosMetų plano (roadmap) vykdymasSprinto sekimas

% nepadaryto darbo# planuotų įgyvendinti funkcijų# planuotų paleisti (release) funkcijų# paleistų (released) funkcijų

Page 61: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Klausimai?

Page 62: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Rekomendacijos: nuo ko pradėti

http://scrum.blogas.lt/nuo-ko-pradeti-agilescrum-kompanijoje-136.html

Page 63: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Pasiruošimas

Išsiaiškinkite pokyčio tikslą:Kodėl norite keistisKo sieksite

Supraskite kaip ir kodėl naujas procesas veiks:

Knygos, blogai, straipsniaiVideo konferencijosKonferencijos/SertifikacijosIšorinė pagalba

Rezultatas: Agile/Scrum “pionierius”

Neužtrukit!

Page 64: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Pradžia (komandos nariui)

Suburkite tarp-funkcinę komandąPasiskirstykit rolesSutarkit su vadovais (nepardavinėkite Scrum):

Užduotys prioretizuotosLeisti pabaigti

Susėskite kartuApsibrėžkit

Sprinto ilgįPabaigtą kriterijų (Done)

Pirmyn!

Page 65: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Įgyvendinimas

Problemos – jos visada buvo tik slėpėsiTikėkitėsPripažinkiteSpręskite

Diekite geras Agile technines praktikasPatikėkite kad investicija į kokybę atsipirksVieną po kitos

Sprinto retrospektyvos – tobulėjimo įrankis

Saugokitės – seni įpročiai patyliukais nori grįžti

Page 66: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Klausimai?

Page 67: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Nuorodos (1)

http://scrum.agile.lt – mano blogas apie Scrum

http://www.agilealliance.org – Agile

http://www.scrumalliance.org – Scrum

http://www.poppendieck.com – Lean

http://www.pragprog.com – The Pragmatic Bookshelf

http://www.joelonsoftware.com - Joel Spolsky blog

Page 69: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Knygos (1)

Page 70: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Knygos (2)

Page 71: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Knygos (3)

Page 72: Realus Scrum naudojimas imonese (2010-06-29_07-01)

Ačiū

Vaidas [email protected]

http://scrum.agile.ltMob. Tel.: 860038860

Facebook, Skype, LinkedIn…

Let’s Scrum!