Vaidas Adomauskas
2010-06-29 ir 2010-07-01
Realus Scrum naudojimas įmonėse: teorija, praktinė patirtis iš 2 kompanijų, sunkumai, rekomendacijos
Darbotvarkė
Susipažinsime ;)Teorija
StatistikaAgileScrum
PraktikaLavasoftAdform
Anglų-Lietuvių vertimas yra sunku
Susipažinkime ;)
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)
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
Kas jus?
Agile/Scrum:GirdėjęŽino daugNaudoja(o)
Pareigos:AnalitikasArchitektasProgramuotojasTestuotojasProjektų vadovaskita..
Statistika
Funkcionalumo naudojimas
Sėkmingi projektai
Tradicinis projektas
35% reikalavimų keičiasi... 64% funkcionalumo niekada arba retai naudojami... 32% sėkmingų projektų...
PPlanavimas
SStabilizavimas
VVystymas
Scrum projektas
P P V SP V P V P V
Agile ir tradiciniai projektai
http://www.scrumalliance.org (Scrum mokymų žemėlapis)
Klausimai?
Judrumo (Agile) manifestashttp://agilemanifesto.org
Judrumo (Agile) manifestas
...mes vertiname:
Žmones ir jų bendravimą
labiau nei
procesą ir įrankius
http://agilemanifesto.org/
Judrumo (Agile) manifestas
...mes vertiname:
Veikiančią programinę
įrangą
labiau nei
išsamią
dokumentaciją
http://agilemanifesto.org/
Judrumo (Agile) manifestas
...mes vertiname:
Bendradarbiavimą su klientu
labiau nei
derybas dėl
kontraktų
http://agilemanifesto.org/
Judrumo (Agile) manifestas
...mes vertiname:
Reagavimą į pokyčius
labiau nei
plano sekimą
http://agilemanifesto.org/
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
Klausimai?
Scrum
Scrum istorija
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ą.
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.)
Scrum komanda (2)
Scrum meistras (Scrum Master)
Produkto šeimininkas (Product Owner)
Komanda
Scrum procesas
Paleidimo planavimas
Produkto užduočių sąrašas
SprintaiSprinto planavimasKasdienis Scrum
Sprinto deginimo kreivė
Sprinto peržiūraSprinto retrospektyva
Paleidimas
Pabaigta (Done)
Visiškai “pabaigtas” prieaugis (increment) turi atliktą:
analizę dizainąperrašymą (refactoring) kodo rašymądokumentaciją testavimą paleidimądemonstravimą
Klausimai?
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
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
Klausimai?
Praktika
.
www.lavasoft.com
Lavasoft is the maker of Ad-Aware, the world's most popular anti-malware software
with over 350 million downloads
.
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
Ad-Aware produkto šeima
Atnaujinimų, licenzijavimo, naujienų,
automatinės virusų analizės serveriai
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ų
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
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
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
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
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
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
Klausimai?
www.adform.com
Interneto reklamos planavimo, valdymo, apskaitos ir optimizacijos sistema
Your partner in digital marketing
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
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!
Adform evoliucija (1)
Adform evoliucija (2)
Adform evoliucija (3)
Adform evoliucija (4)
Mokymai apie Scrum/AgileVadovybeiTechniniams departamentamsKitiems skyriams (trafficking, sales)
Pilotinis projektasSvarbus kompanijai projektas8 žmonės2 mėnesiai
Scrum Master sertifikacijos
Adform evoliucija (5)
Scrum įgyvendinimas: Rollout komanda
Komandoje: Dev, Arch, Test, IT, HRDienos mokymų/planavimo sesija
Scrum įgyvendinimas:reikalavimų valdymas
6 produkto užduočių sąrašai (pagal sistemos sritis)
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
Scrum įgyvendinimas:įrankiai
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
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)
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
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ų
Klausimai?
Rekomendacijos: nuo ko pradėti
http://scrum.blogas.lt/nuo-ko-pradeti-agilescrum-kompanijoje-136.html
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!
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!
Į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
Klausimai?
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
Nuorodos (2)
Scrum gidas: http://www.scrum.org/storage/scrumguides/Scrum%20Guide.pdf
Version Control for Multiple Agile Teams http://www.infoq.com/articles/agile-version-control
Fixed price contracts: http://www.tinypm.com/papers/tinypm_atw_series_fixed_price.pdf
Pitching Agile to Senior Management http://www.drdobbs.com/architecture-and-design/199300107
Knygos (1)
Knygos (2)
Knygos (3)
Ačiū
Vaidas [email protected]
http://scrum.agile.ltMob. Tel.: 860038860
Facebook, Skype, LinkedIn…
Let’s Scrum!