Både føre vár og etter snar Om Shift Right og Forebyggende Vedlikehold
oredragsholdere Håkon D. Bjørgen M.sc. i teoretisk fysikk Jobbet for Accenture siden 2010 Vedlikeholdsansvarlig Teamlead og Løsningsarkitekt Kenneth Gulbrandsøy M.sc i teknisk kybernetikk Jobbet for Accenture siden 2014 Ansvarlig for forebyggende vedlikehold Scrum Master og Verktøysansvarlig pyright 2016 Accenture All rights reserved.
åde føre vár og etter snar pyright 2016 Accenture All rights reserved.
åde føre vár og etter snar Hvordan skal vi sikre kvalitet? Komplekse systemer Kritiske systemer Høyere kvalitetskrav Økt endringstakt Shift Right > Innsamling og analyse av data > Tilbakemelding fra systemet i bruk > Tilbakemelding fra systemet under utviklin > Test av systemet i produksjon Forebyggende vedlikehold Vedlikehold for å unngå eller å redusere konsekvensene av svikt i et system. pyright 2016 Accenture All rights reserved.
edlikeholdsprosesser i andre bransjer Korrektivt vedlikehold Venter til feil oppstår og utbedrer dem fortløpende. > Dato > Kjørelengde > Brukstid Regelmessig vedlikehold Deler av systemet er stadig gjenstand for inspeksjoner for å påse at alt ser ok ut. Tilstandsbasert vedlikehold Tilstanden til systemet avgjør hva som er viktig å fokusere på. Shift Right > Kontinuerlig overvåkning av tilstand > Automatisert datainnsamling og analyse > Tidlig avdekke problemer for å unngå nedetid pyright 2016 Accenture All rights reserved.
hift Right til Forebyggende vedlikehold av rogramvare pyright 2016 Accenture All rights reserved.
edlikehold er en tilbakekoblet prosess forventet avvik Tiltak System faktisk Måling tilstand Kybernetikk - teorien om kommunikasjon og kontroll basert på regulatoriske tilbakekoblinger Regulerende prosesser Scrum, energiproduksjon, opplæring, straffeprosessen, demokrati pyright 2016 Accenture All rights reserved.
vervåkning av avvik i data fra IT-systemer forenkler orebyggende vedlikehold Shift Right til Forebyggende Vedlikehold pyright 2016 Accenture All rights reserved.
strumentering er en forutsetning Automatisering av prosesser krever målinger Tilstander må være observerbare Målinger må kunne automatiseres forventet avvik Tiltak System Manuell måling er for kostbart DevOps instrumenteres typisk med faktisk Måling tilstand SonarQube, Jira, Jenkins Instrumentering - prosjektering, utvikling, montering, testing og drifting av systemer som måler faktisk tilstand til systemet som den regulerende prosessen kontrollerer pyright 2016 Accenture All rights reserved.
rktøykjede for vedlikehold av programvare (AS-IS) Oppdag! Analyser! Endre! Teste! Publiser! Custom Custom Programvare Tjenester pyright 2016 Accenture All rights reserved. 1
rktøykjede for vedlikehold av programvare (TO-BE) Oppdag! Analyser! Endre! Teste! Publiser! Industralisert og standardisert Programvare Tjenester pyright 2016 Accenture All rights reserved. 1
ksempel på «Etter snar» deteksjon og håndtering av avvik i produksjon pyright 2016 Accenture All rights reserved. 1
eteksjon av avvik i produksjon Antall innlogginger Antall transaksjoner Antall innslag i logger Metrikker Versjonshistorikk Minnebruk CPU bruk Nettverkstrafikk Sensor Detektor Avvik utløser Håndtering Historisk oppførsel pyright 2016 Accenture All rights reserved. 1
kentlig Batchjobb observert i et år 3000 2500 2000 y bane 1500 1000 v bane 500 0 pyright 2016 Accenture All rights reserved. 1
ksempel på håndtering av avvik fra produksjon Analyse Endring Systemspesifikasjoner Programvare Kjøremønster Endring i detektor Avvik Varsle relevante deler av virksomheten Batch arbeidstabell Applikasjonsdata Endring i Programvaren pyright 2016 Accenture All rights reserved. 1
an termodynamikken gi oss erdifull innsikt i levetid for programvare? Entropi er et mål på graden av uorden i et system. Termodynamikkens andre hovedsetning sier at i et isolert system kan entropien aldri avta. Den kan bare forbli konstant eller øke. 160 140 120 100 80 60 40 20 0 Kost Vedlikeholdbarhet 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 Tid Vedlikeholdbarhet er en del av ISO/IEC 25010:2011 som er en internasjonal standard på kvalitetsmål for programvare. pyright 2016 Accenture All rights reserved. 1
ksempel på «Føre Vár» deteksjon og håndtering av avvik under utvikling pyright 2016 Accenture All rights reserved. 1
etrikker og trender i måleperioden injedekning Grendekning Kompleksitet eknisk gjeld > 10k 40k videreutviklingstimer per år (ca. 15 000 timer i perioden) > 723 000 linjer kode i aktiv forvaltning (økte med ca. 8000 linjer i perioden) 2015 2016 2017 2018 2019 2020 2021 2022 2023 2 8 år pyright 2016 Accenture All rights reserved. 1 150 100 50 0
eteksjon av avvik under utvikling Testkvalitet Kodekvalitet Metrikker Datakvalitet Dokumentasjon Forutsatt programvare Sensor Detektor Avvik utløser Håndtering Sensor i applikasjonen Historisk oppførsel pyright 2016 Accenture All rights reserved. 1
etrikker og oppløsning (Testdekning) Linjedekning Mål for andel kodelinjer dekket av tester Grendekning Mål på andel av linært uavhengig stier i kildekodens kontrollflytgraf (CFG) som er dekket av tester Stidekning Et mål på andel av stier i CFG som er dekket. Fundamental sammenhenger > Alle stier er ikke nødvendigvis tilgjengelig fra punktet i koden som det testes fra Syklomatisk kompleksitet er et godt mål på hvor stor grendekning man bør ha Syklomatisk kompleksitet og linjedekning er ikke relatert pyright 2016 Accenture All rights reserved. 2
Testene som forsvant» - Deteksjon Hvilke metrikk måler hvilke avvik? 24570 120 Coverage: Fanger ikke lokale endringer Stability: Skiller ikke mellom tester og verktøykjede 24560 24550 100 24555 100 Total Count: Fanger ikke globale endringer Skip Count: Verifikasjon mot endring i Total Count 24540 24530 71,2 71,2 80 24520 60 24510 24500 24496 40 24490 24480 15 20 24470 24460 21.10 22.10 23.10 24.10 25.10 26.10 27.10 28.10 29.10 30.10 31.10 01.11 0 metrics:coverage metrics:stability metrics:skipcount metrics:totalcount pyright 2016 Accenture All rights reserved. 2
Testene som forsvant» - Håndtering Fall i antall tester ikke et problem Periode med refaktorering Flere profiler enn normalt aktivert Duplisering av tester i en periode Stor opprydning den 16.september 71,2 24555 100 80 Tiltak: «Detektoren målte bare Coverage» Avviket oppdaget i kvartalsvis gjennomgang Detektoren utvidet med Total Count 24503 15 24496 metrics:coverage metrics:stability metrics:skipcount metrics:totalcou pyright 2016 Accenture All rights reserved. 2
Både føre vár og etter snar Avdekke problemer tidlig Løse problemer før det oppstår hendelser Shift Right til Forebyggende Vedlikehold Rask deteksjon av avvik Effektiv bruk av analysekapasitet > Kan ta inn større og flere endringer med lavere risiko > Kan redusere risiko ved innføring av endringer sent i utviklingsløpet > Kan vurdere levetid ut fra vedlikeholdbarhet og enhetskostnader pyright 2016 Accenture All rights reserved. 2
rd til ettertanke «Shift right» for å bli bedre på «shift left»! pyright 2016 Accenture All rights reserved. 2