Technical Side of Agile

Post on 17-Jan-2017

413 views 1 download

Transcript of Technical Side of Agile

Matt Harasymczuk

Techniczna strona Agile

Matt Harasymczuk MattAgile.com +48 7332 31337

Manifesto of agile software development

Agile vs. agilityHealing the divide between business and

programming

-- Kent Beck, 1999

Agile to nie tylko Scrum

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

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

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

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

Część technicznaOrganizations which design systems are constrained to

produce designs which are copies of thecommunication structures of these organizations

-- Conwey's Law

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

ZespołyInfrastrukturalneProduktoweAplikacje Klienckie

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

Mikroserwisy// tylko po krótce

DDDMicroservicesScalabilityOrchiestration

APIwersjonowaneJSONREST

Feature Toggles and Release Trains

Dobre praktyki programistyczneTechnical CraftsmanshipPair ProgrammingCode ReviewCollective Code OwnershipHackaton

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

JakośćCoverage?RefactoringQuality EvangelistClean Code

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

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

Git FlowFeature BranchingMaster Based Development

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

Pull Request

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

Release ManagementChange ManagementIncident ManagementSLA

Case Study