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).
4. Apie mane (1) VU MIF -Programų sistemų inžinerija (bakalauras) 3 metaiMIFSA Pirmininkas (organizacijosvaldymas) Renginių organizavimas (MIDI) Mokymai IT University of Gothenburg – MasterinSoftwareEngineeringandManagement(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)
5. 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/ProductOwner) Agile/Scrum ”Pionierius” ĮdiegėmeScrum (>40 žm, 7komandos) Scrum MasterCertification (KenSchwaber, Paris) (http://www.scrumalliance.org/generate_public_certificate/80593/A4/csm) http://scrum.agile.lt
6. Kas jus? Agile/Scrum: Girdėję Žino daug Naudoja(o) Pareigos: Analitikas Architektas Programuotojas Testuotojas Projektų vadovas kita..
10. Tradicinis projektas P Planavimas S Stabilizavimas 35% reikalavimų keičiasi... 64% funkcionalumo niekada arba retai naudojami... 32% sėkmingų projektų... V Vystymas
15. Judrumo (Agile) manifestas ...mes vertiname: Žmones ir jų bendravimą labiau nei procesą ir įrankius http://agilemanifesto.org/
16. Judrumo (Agile) manifestas ...mes vertiname: Veikiančią programinę įrangą labiau nei išsamią dokumentaciją http://agilemanifesto.org/
17. Judrumo (Agile) manifestas ...mes vertiname: Bendradarbiavimą su klientulabiau nei derybas dėl kontraktų http://agilemanifesto.org/
18. Judrumo (Agile) manifestas ...mes vertiname: Reagavimą į pokyčiuslabiau nei plano sekimą http://agilemanifesto.org/
19. Metodai ir praktikos Agile metodai Extreme programming (XP) Feature Driven Development (FDD) Open Unified Process (OpenUP) Scrum Lean software development … Agile praktikos Test Driven Development (TDD) Behavior Driven Development (BDD) Continuous Integration Pair Programming Planning poker … http://en.wikipedia.org/wiki/Agile_software_development
23. Scrum Scrum yra sistema (framework) kurti sudėtingiems produktams Scrum neaprašo konkrečių metodų ar technikų Scrum nėra “sidabrinė kulka (silverbullet)” Scrum yra įrankis, kuris išryškina ką reikia tobulinti, kuriant kokybišką ir greitai atsiperkančią programinę įrangą.
24. Scrum komanda (1) Moralas: vištos negali sakyti kiaulėms KAIP padaryti darbą Kiaulės: Scrum komanda Vištos: visi kiti (vadovai, departamentų vadovai, klientai ir t.t.)
25. Scrum komanda (2) Scrum meistras (Scrum Master) Produkto šeimininkas (ProductOwner) Komanda
30. Fosbury Flop – istorija apie šuolį į aukštį Tradicinis šuolis į aukštį iki 1968 1968 Meksiko olimpiada – DickFosbury (aukso medalis) Nuo 1972 tik 2 medaliai buvo laimėti nenaudojant “FosburyFlop” Bet, net 1980 olimpiadoje ne visi naudojo “FosburyFlop”... Keistis sunku... http://en.wikipedia.org/wiki/Dick_Fosbury
31. 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 “Agiledevelopmentisliketeenagesex. Everyonesaysthey'redoing it, butonly 10% are. Andthosewho are -- ARE DOING IT WRONG.” - TheHackerChickBlog “Ifyou’renothavingfun, you’renotdoing it right!”- JosephPelrine, CST andSocialComplexityScientist
34. . www.lavasoft.com Lavasoftis the maker of Ad-Aware, the world's most popular anti-malware software with over 350 million downloads
35. . Biuras: Švedija, Gotenburgas Dydis: ~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
37. Lavasoftevoliucija (1) Darom kas šiandien dega (vadovybei, pardavėjams) Užduotis skirsto programuotojų vadovas Testuoja programuotojai (su virusų analitikais) Kuriamas testavimo skyrius Paleisto produkto kokybė neatitinka lūkesčių
38. Lavasoftevoliucija(2) Produkto funkcionalumas dokumentuojamas Iš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
39. Lavasoftevoliucija(3) 4 Scrum tarpfunkcinėskomandos (~25 darbuotojai) Produktų užduočių sąrašai (ProductBacklogs) Produkto valdyba (visų skyrių vadovai) Paleidimo (release) tikslai ir tema Paleistas produktas: atitiko tikslus, kokybėaukščiausia bet kada buvusi
40. 4 Scrum komandos Produkto vystymo (vėliau skilo į dvi) 0,5 Scrum Meistras/Produkto šeimininkas 1 UI dizaineris/analitikas 2 UI programuotojai 6 programuotojai 2,5 kokybės užtikrinimo specialistai Virusų aptikimo “variklio” (4 programuotojai) Automatinės virusų analizės sistemos vystymo 2 programuotojai 1 virusų analitikas, Scrum Meistras/Produkto šeimininkas Verslo versijos vystymo (nuotolinė komanda Šri Lankoje) 0,5 Produkto šeimininkas 0,5 projektų vadovė / Scrum Meistrė 4 programuotojai 1 testuotojas
41. 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
42. Naudos (vykdymas) Produkto dalis žino visa komanda Kryptingai mažinamaprodukto techninė skola (technicaldebt) Įgyvendinamos geros techninės praktikos: Buildbot (http://buildbot.net) Nuolatinis integravimas (Continues Integration) Kasdieniai kompiliavimai (DailyBuilds) Automatizuotas testavimas(Automated Unit tests, Functionality tests) Automatizuoti procesai: Atnaujinimų paleidimas (updatesreleases) Instaliacinio paketo kūrimas Vertimų integracija “rebrand’ų” kūrimas
43. Išmoktos pamokos Darbuotojų mokymai prieš pokytį yra svarbu Yra žmonių, kurie nesugebės dirbti pagal Scrum Vadovybei reikia parduoti produkto užduočių sąrašo valdymą, ne Scrum procesą Sėdėjimas kartu (kuo arčiau)yra labai svarbu Programuotojus reikia versti dirbti komandoje Optimaliausia komanda 7 (+-2) žmonės
46. Publisher Web Advertiser Web Search Engine Banner Searched keyword Click Click Page Banner Page Landing Page ……. Text Ad Browsing Tracking Transactions Impressions, clicks, other transactions Impressions, clicks, other transactions Internet IN: Request or Event OUT: Content Ad Serving and Web Analytics Front End Middleware, Databases, DataWarehouses, BI Back End Management and Planning Tools, Reporting, BI Tools Partners Agencies Publishers Creative Agencies Advertisers Operators
47. Your partner in digital marketing Verslo modelis: SaaS, el. paslaugos Rinka: Danija - Skandinavija – Europa - Azija 6 produktai – posistemės Gamyba: Lietuva > 40 darbuotojų gamybos skyriuje 7 komandos SCRUM!
51. Adformevoliucija (4) Mokymai apie Scrum/Agile Vadovybei Techniniams departamentams Kitiems skyriams (trafficking, sales) Pilotinisprojektas Svarbus kompanijai projektas 8 žmonės 2 mėnesiai Scrum Mastersertifikacijos
55. Scrum įgyvendinimas:komandos 7 tarpfunkcinėskomandos (po 6-8 specialistus) 4 Scrum meistrai(projektų vadovai ir gamybos vadovas) 3-4 produktų šeimininkai (analitikai) Komandos persodintos kad būtų kuo arčiau Sprintai 2 savaičių ir sinchronizuoti Prieš pradedant – mokymai/diskusija
57. Naudos (valdymas) Aiškūs reikalavimų prioritetai Aiški ir paprasta naujų funkcijų patekimo į produkto užduočių sąrašus tvarka Aiškūs kompanijos resursų “butelio kakliukai” Prognozuojamas sistemos kūrimo greitis Išnyko “amžini” projektai Tobulėjaproduktovaldymoorganizacija
58. Naudos (vykdymas) Programuotojai netrukdomi kasdieniais klausimais/pasikeitimais Sistemos dalis žino visa komanda Dažni ir stabilūs paleidimai (releases) Kryptingai gerinamas sistemos kodas (refactoring) Įgyvendinamos geros techninės praktikos: TeamCity (http://www.jetbrains.com/teamcity/) Nuolatinis integravimas (ContinuesIntegration) Kasdieniai kompiliavimai (DailyBuilds) Automatizuotas testavimas(AutomatedUnittests,Functionalitytests)
59. Iššūkiai Negalimas Command&Control vadovavimas Specialistai prisiima sprendimų atsakomybę Specialistai imasi “ne savų” užduočių, jei to reikia Realistiškas vertinimas ir sąžiningas statuso žymėjimas Labai plačios ir rimtos ProductOwner atsakomybės Stambių užduočių skaidymas po 2 savaites Negalima keisti apimties 2 savaites Sunku apibrėžti “DONE”, dar sunkiau padaryti Funkcionalumas liečiantis kelias komandas
60. Vadovų užduotys Keičiama darbuotojų vertinimo sistema Patarimai, 360 vertinimai ir karjeros planavimas asmeniškai Premijavimas komandoms Tobulinamos veiklos metrikos Metų plano (roadmap) vykdymas Sprinto sekimas % nepadaryto darbo #planuotų įgyvendinti funkcijų # planuotų paleisti (release) funkcijų # paleistų (released) funkcijų
63. Pasiruošimas Išsiaiškinkite pokyčio tikslą: Kodėl norite keistis Ko sieksite Supraskite kaip ir kodėl naujas procesas veiks: Knygos, blogai, straipsniai Video konferencijos Konferencijos/Sertifikacijos Išorinė pagalba Rezultatas: Agile/Scrum “pionierius” Neužtrukit!
64. Pradžia (komandos nariui) Suburkite tarp-funkcinę komandą Pasiskirstykit roles Sutarkit su vadovais (nepardavinėkite Scrum): Užduotys prioretizuotos Leisti pabaigti Susėskite kartu Apsibrėžkit Sprinto ilgį Pabaigtą kriterijų (Done) Pirmyn!
65. Įgyvendinimas Problemos – jos visada buvo tik slėpėsi Tikėkitės Pripažinkite Spręskite Diekite geras Agiletechninespraktikas Patikėkite kad investicija į kokybę atsipirks Vieną po kitos Sprinto retrospektyvos – tobulėjimo įrankis Saugokitės – seni įpročiai patyliukais nori grįžti
67. 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– ThePragmatic Bookshelf http://www.joelonsoftware.com- Joel Spolsky blog
68. 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
Adform yra interneto reklamos planavimo, valdymo,apskaitos ir optimizacijos sistema. Labiau įprasta angliškai:AdServingandWebAnalyticsprovider.Tikiuosi, kad dauguma jūsų aiškiai suvokia, kad internetas pagrinde yra skirtas reklamai, o interneto verslai pagrinde yra reklamos stendai. Interneto marketingas yra nauja sritis, dinamiška, nuolat auganti, panaudojanti naujausias technologijas.Tokie produktai, kaip mūsų, realizuoja techninę šiuolaikiško interneto marketingo pusę. Esame neatsiejama išvystytų interneto rinkų verslo ekosistemos dalis.
Šioje schemoje parodyta mūsų produkto architektūra bei sąveika su kitomis šalimis interneto ekosistemoje. Nesiveliant į detales, akcentuosiu tik tai, kad vystome ir eksploatuojame produktą – kompleksišką daugiapakopę sistemą. Sistema pasižymi aukšto prieinamumo ir našumo charakteristikomis, apdoroja ir saugo didelius duomenų kiekius. Mūsų išorinės el. paslaugos apdoroja apie 400 milijonų įvykių per parą.
Taigi reziumuojant:Verslo modelis yra Softwareas a Service. Elektroninės paslaugos ir hostingas. Mūsų kompanijos kilmės ir pradinės rinkos šalis yra Danija. Tačiau šiuo metu kompanija dirba visoje Skandinavijos rinkoje, plečiasi per Europa ir pagalvojame apie Aziją Kompanija turi filialus skirtingose Europos šalyse, tačiau gamyba yra koncentruota Lietuvoje.Vystome 6 posistemes, kaip atskirus produktus. Dirba 7 judriosios komandos. Adaptuojame ir dirbame pagal SCRUM