Technical Side of Agile

32
Matt Harasymczuk Techniczna strona Agile Matt Harasymczuk MattAgile.com +48 7332 31337

Transcript of Technical Side of Agile

Page 1: Technical Side of Agile

Matt Harasymczuk

Techniczna strona Agile

Matt Harasymczuk MattAgile.com +48 7332 31337

Page 2: Technical Side of Agile

Manifesto of agile software development

Page 3: Technical Side of Agile

Agile vs. agilityHealing the divide between business and

programming

-- Kent Beck, 1999

Page 4: Technical Side of Agile

Agile to nie tylko Scrum

Page 5: Technical Side of Agile

Część BiznesowaProject Management Business i Produkty Komunikacja i struktura

organizacyjnaSkalowanie

Scrum Współpraca z klientem Zespoły produktowe SAF - Scaled AgileFramework

Kanban Pozyskiwanie klientów Struktura produktowa LeSS - Large Scale Scrum

Scrum + Kanban Rozwój i utrzymanieproduktów

Multidyscyplinarnezespoły

Lean Enterprise

DSDM Innowacja Autonomia zespołów Scrum Nexus

Priorytetyzacjabacklogu

Lean Startup Retrospektywy Portfolio Management

MoSCoW MVP Konstytucja zespołów Program Management

Grafik spotkań Walking Skeleton Scrum of Scrums Value Stream

Dekompozycja zadań Estymacja Baza wiedzy Release Stream

Cele sprintów Definition of Done

Joint Operations Organizacja ucząca się

KryteriaAkceptacyjne

Community

Page 6: Technical Side of Agile

Wartości biznesowePrzyspieszenie czasu wypuszczenia na rynekWzrost wartości dla klientaWzrost jakości oprogramowaniaZwiększenie elastyczności (możliwości rozbudowy)Zwiększenie penetracji rynkuObniżenie kosztu wytworzenia i utrzymaniaZwiększenie żywotności produktu

Page 7: Technical Side of Agile

Lean Startup// Szybkie wprowadzenie, bo to także nie jest część naszego wykładu

Page 8: Technical Side of Agile

Lean Startup CycleBuild Measure Learn

Unit Tests Split Tests (A/B) Split Tests

Usability Tests Clear Product Owner Customer Interviews

Continuous Integration Continuous Deployment Customer Development

Incremental Deployment Usability Tests Five Whys Root Cause Analysis

Free & Open Source Components Real-time Monitoring Customer Advisory Board

Cloud Computing Custom Liaison Falsifiable Hypothesis

Cluster Immune System Funnel Analysis Product Owner Accountability

Just-in-time Scalability Cohort Analysis Custom Archetypes

Refactoring Net Promoter Score Cross-functional Teams

Developer Sandbox Search Engine Marketing Smoke Tests

Real-time Alerting

Predictive Monitoring

Page 9: Technical Side of Agile

Część technicznaOrganizations which design systems are constrained to

produce designs which are copies of thecommunication structures of these organizations

-- Conwey's Law

Page 10: Technical Side of Agile

O czym będzie?ZespołyArhchitektura i kodPraktyki programistyczne i jakość koduEkosystem narzędziowyDevOpsProcesyGIT Flow

Page 11: Technical Side of Agile

ZespołyInfrastrukturalneProduktoweAplikacje Klienckie

Page 12: Technical Side of Agile
Page 13: Technical Side of Agile

Arhchitektura SystemówSeparacja Backend i FrontendSimple DesignEmerging Architecture / Evolutionary Design

Page 14: Technical Side of Agile

Mikroserwisy// tylko po krótce

DDDMicroservicesScalabilityOrchiestration

Page 15: Technical Side of Agile

APIwersjonowaneJSONREST

Page 16: Technical Side of Agile

Feature Toggles and Release Trains

Page 17: Technical Side of Agile

Dobre praktyki programistyczneTechnical CraftsmanshipPair ProgrammingCode ReviewCollective Code OwnershipHackaton

Page 18: Technical Side of Agile
Page 19: Technical Side of Agile

TestySmoke TestyTesty IntegracyjneTesty WydajnościoweTesty Mutacyjne (PIT Test)TDD - Test (First) Driven DevelopmentBDD - Behavioral Driven Development

Page 20: Technical Side of Agile

JakośćCoverage?RefactoringQuality EvangelistClean Code

Page 21: Technical Side of Agile

Ekosystem narzędziowyKomunikacja Oprogramowanie

Zarządzanie projektami Repozytorium kodu

Baza wiedzy Automatyzacja budowania

Instant Messanging Metryki kodu

Centralne logowanie

Dokumentacja API

Storage plików binarnych

Wyniki statycznej analizy w PR

Page 22: Technical Side of Agile
Page 23: Technical Side of Agile

DevOpsAutomatyzacja TestówAutomatyzacja Migracji Schematów Bazy DanychProvisioning ŚrodowiskaVagrant i DockerCI/CD

Page 24: Technical Side of Agile

Git FlowFeature BranchingMaster Based Development

Page 25: Technical Side of Agile
Page 26: Technical Side of Agile

Konwencje nazewniczemasterdeveloprelease/1.5feature/ID-1337-short-summarybugfix/ID-1337-short-summarycommit message: "ID-1337 short summary"

Page 27: Technical Side of Agile
Page 28: Technical Side of Agile

Pull Request

Page 29: Technical Side of Agile
Page 30: Technical Side of Agile
Page 31: Technical Side of Agile

Procesy// Ale nie będziemy o nich mówić

Release ManagementChange ManagementIncident ManagementSLA

Page 32: Technical Side of Agile

Case Study