SlideShare une entreprise Scribd logo
1  sur  80
1
Copyright © Capgemini 2016 – Internal use only. All Rights
Reserved
Presentation Title | Date
Revitalisering av föråldrade
system– är det möjligt?
NFi Systemförvaltning 2016
Stockholm 2016-12-07
Joakim Lindbom
CTO, Certified Chief Architect
Be innovative!
Joakim Svensson, Cap
Who am I?
Jobbat inom Capgemini sedan 1985, IT-lösningar sedan
jag var 13 år
Middleware, integration, arkitektur, mobilitet, IoT,
Open Source, DevOps
Arkitekt sedan 20 år
Certified Chief Architect
CTO för Capgemini Sverige under 7 år
Global expert modernisering av legacy
Modernisering
Revitalisering
Möjligt?
Önskvärt?
We’ll se more change the next 5 years
than the previous 100 in the auto
industry.
Ian Robertson,
Chairman of Rolls Royce
Chief of Sales and Marketing, BMW
Mobile first…
API
och glöm inte
På väg mot #ZeroDayForever
Men ändå...
20 år
Investering
Optimering & polering
Men ändå...
IT Legacy is #1 obstacle for innovation
Major corporations depend on core systems that
- Are 15-20 years old
- 3-4 persons know
- Some staff is retired, some will be it within 4-5 years
- Technology support is slow
- Are somewhat documented
- Have few formal test cases, but the staff know how to
test
Application
Landscape
Report 2016
IT Legacy is #1 obstacle for innovation
Major corporations depend on core systems that
- Are 25-45 years old
- 1-2 persons know
- All key staff is retired, or will be it within 2-3 years
- Technology support is gone
- Are undocumented
- Have no/few formal test cases
Application
Landscape
Report 2016
Techdebt
Erfarenheter
6 projekt / 11 år
1
Den stora
omskrivningen
eller
Hur halverar man
transaktionskostnaden?
Bankgirot
2 olika stordatorer
Ta bort en stordator,
skriv om front-end i .NET
Skriv om produkt för produkt
150 personer, 2 år
Extrem påverkan
Code-freeze – right!
Krav? Finns i sjön...
Arkitektur – bara systemdesign
Bara delta-dokumentation
5-10 gånger längre tid!
Förändringar överallt
Test – process, miljö, data
2.11  1.6
Städa – även produkter
2
En-dags migreringen
eller
“Uppskjut inte till
morgondagen…”
Global retailer
Bra system!
Sista kunden kvar på operativsystemet
Kompilatorer, etc. - många, många releaser back
Hierarkisk databas – grymt snabb
Utmaning:
Förklara långsiktig effekt av teknisk skuld
Big Bang genom
regelmotor-driven totalmigrering
40 man-års förberedelse – 1 dags migrering
Code freeze – 1 vecka (eller dag)
Utbilda, uppdatera personal
Test, test, test!
Databas-emulator
DL1 över DB2
Komplexitetsanalys
Test
Total regressionstest – 45 gånger
Stor automationsgrad
Öva cut-over fullskaligt 3 gånger
3
Rädda en misslyckad
migrering
eller
Hur byter man skelett?
Bra system!
Automatmigrerat SQL Windows  C#
Right, det var ju smart....
Emulering
Som innan, fast sämre
Lösning: Byt arkitektur, behåll koden
Business Rules Identification/Extract
Flow Identification
Model generation
Code generation
BRE - Business Rules Extraction
MDA - Model Driven Architecture
Build Phase
Design
 Creation of skeletal structure for
target architecture
 Fitting mined code in to target
architecture
Baseline Creation
Creation of
Testing
Baseline
Existing
Application
Documentation
Migration Stream
Use case
model
formulation
Reusable
code Mining
Generate
UML Model
Create target
solution
structures
Static
Code Analysis
Dynamic
application
analysis
Design Develop
System
Testing
Re-Engineering Stream
Regression &
Performance
Testing
Functionally
1:1 Migrated
Application
System-migrering
Project overview
 Separation of migration and new requirements
 Accelerated application rewrite using tool based reverse engineering
 Incremental delivery with intermediate UATs
 Using agile methodologies
 Offshore ration ~80%
 Prepare phase: September -November 2015
 Build Phase: December 2015 – Feb 2017
 46 FTE at peak
Forward engineering
Byt arkitektur
BL
DAL
PL
frmX
AS-IS
model
TO-BE
model
frmX
1:1
BL
DA X
DA
X
SP SP
SP View
Code behind, from frmX
Consolidate db calls
(Prepare + Check/Do)
Angular/TS
MVC
GetCustomerInfo()
C#
C#
frmY
DA
Y
SP SP
View
SP SP
SP View
DB
Static code analysis
Dynamic execution analysis
Business rule linked to code
UI migrering
1 2
3
4
Group boxes, usually
inside sections.
Typically transferred in
order below. If no other
order or structure is
specified.
Utmaningar
Kompetens – MDA, kodgenerering
Test – så klart
Arkitektur – design
Patterns – exampel - ner på detaljnivå
Utmaningar
”Systemet skall fungera som innan.”
”Men hur vet vi vad systemet gör?”
”Det vet vi inte.”
”Vilka regler används i vilka länder?”
”Vet inte”
Utmaningar
Hur vet vi då när vi är färdiga?
Skapa omfattande dokumentation
Regel
Regel vs. Marknad
Regel vs. Flöde
4
Revitalisera död produkt
Beslutad nedläggning, men det gick inte
Ersättningssystem minst 5 år sena
Dubblad förändringsvolym
50% Personal: 50  75
50% ”Allt annat”
Initial analys
Vad är egentligen problemet?
Organisation, WoW  Agile
Dokumentation
Personal, kompetens, onboarding
Verktyg, automation
Källkod
Arkitektur
Short – mid – long term
1. Introduktion av ny personal
tog uppemot ett år
Ingen (bra) dokumentation
Monolitisk design
Mycket gammal, nästan-död kod
Knöliga rutiner
1. Introduktion av ny personal
Dokumentation - Wiki
Städa, simplifiera
Refaktorera
Playground
1. Introduktion av ny personal
Feature branching & kvalitetssäkring
Senior/junior + onshore/offshore
Coaching, Q-gate
Design, kvalité, standarder
2. Kodkvalité
Oklar kvalité
Spretiga lösningar, överlappande mönster
3 olika dependency injection-mönster
2. Kodkvalité
CAST, SonarQube, ReSharper
Baseline
Bra kvalité enligt verktygen
Men...
Vad är skillnaden mellan CreateOrder,
CreateOrder2, CreateOrder3, CreateOrder4 och
CreateOrder5?
3. Organisation & arbetssätt
Agila team + testteam
Onshore/Offshore
Tunga Kommunikationsvägar, verktyg
Agil model ≈ vattenfall...
3. Organisation & arbetssätt
X-funk team
Översyn verktyg
Mail  Bitbucket Server, Slack/Mattermost
Införa agila practises  SAFe
Men beställaren måste också med!
4. Beroenden
Gammal plattform
3:e parts & open source-verktyg
5. Arkitektur
SOA - men i praktiken monolitisk
MEGAservice vs. microservice
Ett av grunderna för problem med skalning
5. Arkitektur
Stegvis refaktorering
Städa, flytta uppenbart felplacerad kod
Beroendeanalys
Gap-analys mot framtida capabilities
Skapa API-ytor
5. Arkitektur
Stegvis refaktorering
Nya områden byggs direkt som
microservices
Refaktorering svårt  sluta flytta kod
Nyskrivning som microservices
Allt för mycket ”skräp” kommer med
5. Arkitektur
Skapa erfarenhet i teamen
Från åratal av ”steady-state”
till omfattande förändringar
6. DevOps
Inför DevOps practises
Deployment  Continous Deploy
Auto test
5
Hoppa 50 år
eller
“Uppskjut verkligen inte till
morgondagen…”
Myndighet
Bra system!!!
Världens första 4GL – från 60-talet
Plattformen död sedan 15-20 år
Ingen utveckling, utbildning, rekrytering
Automatisk översättning
Språk, databas
Men arkitekturen är ju samma - emulering
Code freeze? – Law freeze!
Regeringsförhandling
3 parallella förstudier
Misstag 1
Kräv referens på någon som gjort exakt samma
= En möjlig leverantör
1:1-migrering – läsbarhet = klart tveksam
Språk?
C#
Misstag 2
Fastpris
Omfattning Tid
Kvalité
Ni kan bara få två – vad väljer ni bort?
Configuration Management
Source, target and migration CM are similar but not the same
CMCoordination&StakeholderManagement
Source CM
Migration CM
Target Env CM
Secure Transfer
Secure Transfer
Updated Migration Scripts
 Source CM
 Migration CM
 Target CM
Riskbaserad test
A Realistic Risk-Based test strategy is key
Comments
 Manual testing helps build
confidence in migration but
has small coverage
 Record/replay UX + Integration
testing can be cost effective
but is also brittle
 Automatic code testing can be
hard to achieve in legacy
system
 New automated tests are
needed to provide full
coverage
SU UX
testing
Record/
replay UX
testing
New UX
tests
Record / replay
Interface testing
New interface
tests
Automatic
Code Testing
Manual Inspections
New Code
Testing
Data Combination Test (DCoT)
Elementary Comparison Test (ECT)
Process Cycle Test (PCT)
Real-Life Test (RLT)
Semantic Test (SEM)
Syntactic Test (SYN)
Error Guessing (EG)
Exploratory Testing (ET)
Data Cycle Test (DCyT)
Use Case Test (UCT)
Decision table Test (DTT)
6
Byt (nästan) allt i små steg
eller
Hur byter man motor på
hundratals plan – i luften?
Hårdvara, operativsystem – end of life
Vax, OpenVMS  Linux
Ingen Big Bang  OpenVMS + Linux
Pascal, gammal databas
30 års optimering
Byta plattform, databas,
programmeringsspråk
Städa, städa
50-60% bort!
Del av störe program
Massiv BD parallellt
Business
Logic
100% Automation Fully
manual
Semi-Automatic
Pascal
C++
DCL
Python
OpenVMS
Routines
Common
routines
(POSIX/
LSB)
Frameworks &
Integrations
New solutions
E.g.
Xrouter
Replaced
Xrouter
Functionality
CDD
.h
.hpp
RDO SQLMOD
Pro*C
(11.g)
SQLMOD
(RDB)
SQL Access Layer
Reports
Cognos
&
Qlikview
Binary
compatibility
between Pascal
and C++
programs
throughout the
migration
Some
OpenVMS calls
need attention
RDB to 11.gDatabase RDB to Oracle
Platform Open VMS to Linux
DECforms to HTML5 web interface
HTML to HTML5 web interface
User
Experience
Auto-migrering!
Regelmotor!
”Morphing, concept based translation”
inte
rad för rad
1 Automatic translation with
rules engine
Rules Engine
Translation
Defect Handling
4 Defects cause by error in/missing rule
4 Quality issue identified
Identified Deviation
Changed
Source
Code
OpenVMS
Production sources
New or changed rule 5
Test & Verification
SW Quality
3
Migrated
Source
Code
2
Linux
Compile and deploy
Ready for
Migration?
7
Next iteration
6
Create Test
Baseline
Update Testware according to changed Rules Engine
Process for maturing Rules Engine
Läsbar kod?
Test - sekvensering
Functional area
testing scope
Migration &
testing scope
Interdependencies across no clear lines
a
T1 T3
M1
T2
b c
d e
M2
f
g
T4
Dependency
Analyser
SMEs
Functional testing
related to scope
Regression testing across system
Test & verifiering
Största förändringen någonsin
Ändra allt – testa allt
Utan dokumentation
Utan testfall
Utan automation
Utan miljöer/test-data management
Summering
Det går att revitalisera/modernisera
Var medveten om vad du får och inte får
Mycket mer än t.ex. byta programmeringsspråk
Kan användas som hävstång – men var
försiktig - ”Passa på” på rätt områden
Var ödmjuk – de flesta organisationer gör bara
detta en gång
Σ”bara” ≠ ”bara”
Contact
Joakim
Lindbom
CTO | Certified Chief Architect
Joakim.Lindbom@capgemini.com
08-5368 3934
0708-166404
twitter: JoakimLindbom
http://www.slideshare.net/JoakimLindbom
http://www.linkedin.com/in/joakimlindbom
VLOG Architecture Corner:
https://www.youtube.com/playlist?list=PLrb_rbUWzApENbqc085Vk7Qj-
amEOmvDN
Image sources, marked as OK to use commercially
https://upload.wikimedia.org/wikipedia/commons/8/8b/Buck_Mountain_Grand_Teton_NP1.jpg
https://upload.wikimedia.org/wikipedia/commons/d/de/Eisklettern_kl_engstligenfall.jpg
https://c1.staticflickr.com/1/1/1118807_a751d65ba5_z.jpg?zz=1
https://upload.wikimedia.org/wikipedia/commons/4/4f/Eternal_clock.jpg
https://c1.staticflickr.com/9/8062/8189938256_2a683d2334_z.jpg
https://upload.wikimedia.org/wikipedia/commons/8/85/Git_branches_example.png
https://upload.wikimedia.org/wikipedia/commons/9/99/Highway_at_night_slow_shutter_speed_ph
otography_02.jpg
https://c2.staticflickr.com/6/5058/5490790304_dc3d7c2b91_z.jpg
http://www.dailymail.co.uk/tvshowbiz/article-1176568/Andrew-Sachs-thanks-Jonathan-Ross-
Russell-Brand-boosting-career.html
https://upload.wikimedia.org/wikipedia/commons/8/8b/CERN_Server.jpg
http://www.manufacturing-operations-management.com/manufacturing/2014/10/smart-
manufacturing-needs-a-real-time-integrated-enterprise.html
http://www.3ders.org/images/Dizingof-math-arts-3d-printing-2.png
https://upload.wikimedia.org/wikipedia/commons/8/8a/Long_tail.svg
Image sources, marked as OK to use commercially
https://upload.wikimedia.org/wikipedia/commons/6/61/Irish_jaunting_car,_ca_1890-1900.jpg
https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Lego_dimensions.svg/2000px-
Lego_dimensions.svg.png
https://upload.wikimedia.org/wikipedia/commons/1/1f/Feel_the_music.jpg
https://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/BestBeforeDate.png/640px-
BestBeforeDate.png
https://images-na.ssl-images-amazon.com/images/I/51dTFVDHRbL.jpg

Contenu connexe

Similaire à Revitalisering av legacy - är det möjligt - Joakim Lindbom

Solidify continuous delivery 2014
Solidify   continuous delivery 2014Solidify   continuous delivery 2014
Solidify continuous delivery 2014Solidify
 
Dokumenthantering i molnet
Dokumenthantering i molnetDokumenthantering i molnet
Dokumenthantering i molnetPredrag Mitrovic
 
Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.ADDQ
 
Bra verktyg för produktägare som vidareutvecklar scrum - André Ekespong
Bra verktyg för produktägare som vidareutvecklar scrum - André EkespongBra verktyg för produktägare som vidareutvecklar scrum - André Ekespong
Bra verktyg för produktägare som vidareutvecklar scrum - André Ekespongmanssandstrom
 
CV Johan Kempe Details
CV Johan Kempe DetailsCV Johan Kempe Details
CV Johan Kempe DetailsJohan Kempe
 
"KPI-projektet", KTH verksamhetsledning
"KPI-projektet", KTH verksamhetsledning"KPI-projektet", KTH verksamhetsledning
"KPI-projektet", KTH verksamhetsledningPontus Wadström
 
Lincube Netezza Migrering
Lincube Netezza MigreringLincube Netezza Migrering
Lincube Netezza MigreringIBM Sverige
 
Säker utveckling med SDL
Säker utveckling med SDLSäker utveckling med SDL
Säker utveckling med SDLJohan Lindfors
 
Acando microsoft academy presentation
Acando microsoft academy presentationAcando microsoft academy presentation
Acando microsoft academy presentationJonas Wahlström
 
ProdSummit 2017: Hannu Kauppinen, TitanX Engine Cooling
ProdSummit 2017: Hannu Kauppinen, TitanX Engine CoolingProdSummit 2017: Hannu Kauppinen, TitanX Engine Cooling
ProdSummit 2017: Hannu Kauppinen, TitanX Engine CoolingPetter Johansson
 
Sundsvall 42 2013 design-build-run - men vad kommer sen?
Sundsvall 42 2013   design-build-run - men vad kommer sen?Sundsvall 42 2013   design-build-run - men vad kommer sen?
Sundsvall 42 2013 design-build-run - men vad kommer sen?Joakim Lindbom
 
Sparx EA frukostmöte presentation
Sparx EA frukostmöte presentationSparx EA frukostmöte presentation
Sparx EA frukostmöte presentationLars Lundgren
 
Continuous Delivery med Tutum och Docker
Continuous Delivery med Tutum och DockerContinuous Delivery med Tutum och Docker
Continuous Delivery med Tutum och DockerKristoffer Vidmo
 
Molntjänster för effektiva processer samt feldetektion av processensorer för ...
Molntjänster för effektiva processer samt feldetektion av processensorer för ...Molntjänster för effektiva processer samt feldetektion av processensorer för ...
Molntjänster för effektiva processer samt feldetektion av processensorer för ...Anders Björk
 
HR i molnet - workshop HR tech 2016
HR i molnet - workshop HR tech 2016HR i molnet - workshop HR tech 2016
HR i molnet - workshop HR tech 2016Fredrik Rexhammar
 
Vad är webb för oss?
Vad är webb för oss?Vad är webb för oss?
Vad är webb för oss?Andreas Ek
 
TFS 2013 Deep-Dive på LabCenter 2014-02-06
TFS 2013 Deep-Dive på LabCenter 2014-02-06TFS 2013 Deep-Dive på LabCenter 2014-02-06
TFS 2013 Deep-Dive på LabCenter 2014-02-06Solidify
 
Identiteter nordic edge april 2011
Identiteter nordic edge april 2011Identiteter nordic edge april 2011
Identiteter nordic edge april 2011Predrag Mitrovic
 
Integration summit 2016
Integration summit 2016Integration summit 2016
Integration summit 2016Adam Wahlund
 

Similaire à Revitalisering av legacy - är det möjligt - Joakim Lindbom (20)

Solidify continuous delivery 2014
Solidify   continuous delivery 2014Solidify   continuous delivery 2014
Solidify continuous delivery 2014
 
Dokumenthantering i molnet
Dokumenthantering i molnetDokumenthantering i molnet
Dokumenthantering i molnet
 
CV Jan-Olov Slotthagen.doc
CV Jan-Olov Slotthagen.docCV Jan-Olov Slotthagen.doc
CV Jan-Olov Slotthagen.doc
 
Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.
 
Bra verktyg för produktägare som vidareutvecklar scrum - André Ekespong
Bra verktyg för produktägare som vidareutvecklar scrum - André EkespongBra verktyg för produktägare som vidareutvecklar scrum - André Ekespong
Bra verktyg för produktägare som vidareutvecklar scrum - André Ekespong
 
CV Johan Kempe Details
CV Johan Kempe DetailsCV Johan Kempe Details
CV Johan Kempe Details
 
"KPI-projektet", KTH verksamhetsledning
"KPI-projektet", KTH verksamhetsledning"KPI-projektet", KTH verksamhetsledning
"KPI-projektet", KTH verksamhetsledning
 
Lincube Netezza Migrering
Lincube Netezza MigreringLincube Netezza Migrering
Lincube Netezza Migrering
 
Säker utveckling med SDL
Säker utveckling med SDLSäker utveckling med SDL
Säker utveckling med SDL
 
Acando microsoft academy presentation
Acando microsoft academy presentationAcando microsoft academy presentation
Acando microsoft academy presentation
 
ProdSummit 2017: Hannu Kauppinen, TitanX Engine Cooling
ProdSummit 2017: Hannu Kauppinen, TitanX Engine CoolingProdSummit 2017: Hannu Kauppinen, TitanX Engine Cooling
ProdSummit 2017: Hannu Kauppinen, TitanX Engine Cooling
 
Sundsvall 42 2013 design-build-run - men vad kommer sen?
Sundsvall 42 2013   design-build-run - men vad kommer sen?Sundsvall 42 2013   design-build-run - men vad kommer sen?
Sundsvall 42 2013 design-build-run - men vad kommer sen?
 
Sparx EA frukostmöte presentation
Sparx EA frukostmöte presentationSparx EA frukostmöte presentation
Sparx EA frukostmöte presentation
 
Continuous Delivery med Tutum och Docker
Continuous Delivery med Tutum och DockerContinuous Delivery med Tutum och Docker
Continuous Delivery med Tutum och Docker
 
Molntjänster för effektiva processer samt feldetektion av processensorer för ...
Molntjänster för effektiva processer samt feldetektion av processensorer för ...Molntjänster för effektiva processer samt feldetektion av processensorer för ...
Molntjänster för effektiva processer samt feldetektion av processensorer för ...
 
HR i molnet - workshop HR tech 2016
HR i molnet - workshop HR tech 2016HR i molnet - workshop HR tech 2016
HR i molnet - workshop HR tech 2016
 
Vad är webb för oss?
Vad är webb för oss?Vad är webb för oss?
Vad är webb för oss?
 
TFS 2013 Deep-Dive på LabCenter 2014-02-06
TFS 2013 Deep-Dive på LabCenter 2014-02-06TFS 2013 Deep-Dive på LabCenter 2014-02-06
TFS 2013 Deep-Dive på LabCenter 2014-02-06
 
Identiteter nordic edge april 2011
Identiteter nordic edge april 2011Identiteter nordic edge april 2011
Identiteter nordic edge april 2011
 
Integration summit 2016
Integration summit 2016Integration summit 2016
Integration summit 2016
 

Plus de Joakim Lindbom

From 4 releases per year to 104 Joakim Lindbom - Redhat Summit 2020
From 4 releases per year to 104   Joakim Lindbom - Redhat Summit 2020From 4 releases per year to 104   Joakim Lindbom - Redhat Summit 2020
From 4 releases per year to 104 Joakim Lindbom - Redhat Summit 2020Joakim Lindbom
 
VUCA - Planning for the essentially unplannable in a disruptive world
VUCA - Planning for the essentially unplannable in a disruptive worldVUCA - Planning for the essentially unplannable in a disruptive world
VUCA - Planning for the essentially unplannable in a disruptive worldJoakim Lindbom
 
Planning for the unplannable - VUCA
Planning for the unplannable - VUCAPlanning for the unplannable - VUCA
Planning for the unplannable - VUCAJoakim Lindbom
 
Bi modal IT- a perspektive - Joakim Lindbom
Bi modal IT- a perspektive - Joakim LindbomBi modal IT- a perspektive - Joakim Lindbom
Bi modal IT- a perspektive - Joakim LindbomJoakim Lindbom
 
2015 08-22 io t, makers and more - joakim lindbom
2015 08-22 io t, makers and more - joakim lindbom2015 08-22 io t, makers and more - joakim lindbom
2015 08-22 io t, makers and more - joakim lindbomJoakim Lindbom
 
Internet of Things - a primer
Internet of Things  - a primerInternet of Things  - a primer
Internet of Things - a primerJoakim Lindbom
 
2015 10 dev ops n-fi - why it's a good idea to deploy 10 times per day v1.0 -...
2015 10 dev ops n-fi - why it's a good idea to deploy 10 times per day v1.0 -...2015 10 dev ops n-fi - why it's a good idea to deploy 10 times per day v1.0 -...
2015 10 dev ops n-fi - why it's a good idea to deploy 10 times per day v1.0 -...Joakim Lindbom
 
Remaining Successful in the Industry 4.0 age - Joakim Lindbom
Remaining Successful in the Industry 4.0 age - Joakim LindbomRemaining Successful in the Industry 4.0 age - Joakim Lindbom
Remaining Successful in the Industry 4.0 age - Joakim LindbomJoakim Lindbom
 
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.02014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0Joakim Lindbom
 
Rational User Group - May 2014 Stockholm - DevOps from an EA perspective
Rational User Group - May 2014 Stockholm - DevOps from an EA perspectiveRational User Group - May 2014 Stockholm - DevOps from an EA perspective
Rational User Group - May 2014 Stockholm - DevOps from an EA perspectiveJoakim Lindbom
 
Hälsa för mig catwalk telecom city 2013 09 v1 1-eng
Hälsa för mig catwalk telecom city 2013 09  v1 1-engHälsa för mig catwalk telecom city 2013 09  v1 1-eng
Hälsa för mig catwalk telecom city 2013 09 v1 1-engJoakim Lindbom
 
HälsaFörMig - Catwalk 2013 Telecom City 2013-09-12
HälsaFörMig - Catwalk 2013 Telecom City 2013-09-12HälsaFörMig - Catwalk 2013 Telecom City 2013-09-12
HälsaFörMig - Catwalk 2013 Telecom City 2013-09-12Joakim Lindbom
 
Systemförvaltningsdagarna 2013 joakim lindbom - v1.0
Systemförvaltningsdagarna 2013   joakim lindbom - v1.0Systemförvaltningsdagarna 2013   joakim lindbom - v1.0
Systemförvaltningsdagarna 2013 joakim lindbom - v1.0Joakim Lindbom
 
IT optimisation - Now it's about time to establish a system demolition depart...
IT optimisation - Now it's about time to establish a system demolition depart...IT optimisation - Now it's about time to establish a system demolition depart...
IT optimisation - Now it's about time to establish a system demolition depart...Joakim Lindbom
 
Nu är det hög tid att införa en systemavvecklingsavdelning
Nu är det hög tid att införa en systemavvecklingsavdelningNu är det hög tid att införa en systemavvecklingsavdelning
Nu är det hög tid att införa en systemavvecklingsavdelningJoakim Lindbom
 

Plus de Joakim Lindbom (15)

From 4 releases per year to 104 Joakim Lindbom - Redhat Summit 2020
From 4 releases per year to 104   Joakim Lindbom - Redhat Summit 2020From 4 releases per year to 104   Joakim Lindbom - Redhat Summit 2020
From 4 releases per year to 104 Joakim Lindbom - Redhat Summit 2020
 
VUCA - Planning for the essentially unplannable in a disruptive world
VUCA - Planning for the essentially unplannable in a disruptive worldVUCA - Planning for the essentially unplannable in a disruptive world
VUCA - Planning for the essentially unplannable in a disruptive world
 
Planning for the unplannable - VUCA
Planning for the unplannable - VUCAPlanning for the unplannable - VUCA
Planning for the unplannable - VUCA
 
Bi modal IT- a perspektive - Joakim Lindbom
Bi modal IT- a perspektive - Joakim LindbomBi modal IT- a perspektive - Joakim Lindbom
Bi modal IT- a perspektive - Joakim Lindbom
 
2015 08-22 io t, makers and more - joakim lindbom
2015 08-22 io t, makers and more - joakim lindbom2015 08-22 io t, makers and more - joakim lindbom
2015 08-22 io t, makers and more - joakim lindbom
 
Internet of Things - a primer
Internet of Things  - a primerInternet of Things  - a primer
Internet of Things - a primer
 
2015 10 dev ops n-fi - why it's a good idea to deploy 10 times per day v1.0 -...
2015 10 dev ops n-fi - why it's a good idea to deploy 10 times per day v1.0 -...2015 10 dev ops n-fi - why it's a good idea to deploy 10 times per day v1.0 -...
2015 10 dev ops n-fi - why it's a good idea to deploy 10 times per day v1.0 -...
 
Remaining Successful in the Industry 4.0 age - Joakim Lindbom
Remaining Successful in the Industry 4.0 age - Joakim LindbomRemaining Successful in the Industry 4.0 age - Joakim Lindbom
Remaining Successful in the Industry 4.0 age - Joakim Lindbom
 
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.02014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
 
Rational User Group - May 2014 Stockholm - DevOps from an EA perspective
Rational User Group - May 2014 Stockholm - DevOps from an EA perspectiveRational User Group - May 2014 Stockholm - DevOps from an EA perspective
Rational User Group - May 2014 Stockholm - DevOps from an EA perspective
 
Hälsa för mig catwalk telecom city 2013 09 v1 1-eng
Hälsa för mig catwalk telecom city 2013 09  v1 1-engHälsa för mig catwalk telecom city 2013 09  v1 1-eng
Hälsa för mig catwalk telecom city 2013 09 v1 1-eng
 
HälsaFörMig - Catwalk 2013 Telecom City 2013-09-12
HälsaFörMig - Catwalk 2013 Telecom City 2013-09-12HälsaFörMig - Catwalk 2013 Telecom City 2013-09-12
HälsaFörMig - Catwalk 2013 Telecom City 2013-09-12
 
Systemförvaltningsdagarna 2013 joakim lindbom - v1.0
Systemförvaltningsdagarna 2013   joakim lindbom - v1.0Systemförvaltningsdagarna 2013   joakim lindbom - v1.0
Systemförvaltningsdagarna 2013 joakim lindbom - v1.0
 
IT optimisation - Now it's about time to establish a system demolition depart...
IT optimisation - Now it's about time to establish a system demolition depart...IT optimisation - Now it's about time to establish a system demolition depart...
IT optimisation - Now it's about time to establish a system demolition depart...
 
Nu är det hög tid att införa en systemavvecklingsavdelning
Nu är det hög tid att införa en systemavvecklingsavdelningNu är det hög tid att införa en systemavvecklingsavdelning
Nu är det hög tid att införa en systemavvecklingsavdelning
 

Revitalisering av legacy - är det möjligt - Joakim Lindbom

  • 1. 1 Copyright © Capgemini 2016 – Internal use only. All Rights Reserved Presentation Title | Date Revitalisering av föråldrade system– är det möjligt? NFi Systemförvaltning 2016 Stockholm 2016-12-07 Joakim Lindbom CTO, Certified Chief Architect
  • 3. Joakim Svensson, Cap Who am I? Jobbat inom Capgemini sedan 1985, IT-lösningar sedan jag var 13 år Middleware, integration, arkitektur, mobilitet, IoT, Open Source, DevOps Arkitekt sedan 20 år Certified Chief Architect CTO för Capgemini Sverige under 7 år Global expert modernisering av legacy
  • 5. We’ll se more change the next 5 years than the previous 100 in the auto industry. Ian Robertson, Chairman of Rolls Royce Chief of Sales and Marketing, BMW
  • 6.
  • 7.
  • 8.
  • 10.
  • 12. På väg mot #ZeroDayForever
  • 15. IT Legacy is #1 obstacle for innovation Major corporations depend on core systems that - Are 15-20 years old - 3-4 persons know - Some staff is retired, some will be it within 4-5 years - Technology support is slow - Are somewhat documented - Have few formal test cases, but the staff know how to test Application Landscape Report 2016
  • 16. IT Legacy is #1 obstacle for innovation Major corporations depend on core systems that - Are 25-45 years old - 1-2 persons know - All key staff is retired, or will be it within 2-3 years - Technology support is gone - Are undocumented - Have no/few formal test cases Application Landscape Report 2016
  • 17.
  • 20. 1 Den stora omskrivningen eller Hur halverar man transaktionskostnaden?
  • 21. Bankgirot 2 olika stordatorer Ta bort en stordator, skriv om front-end i .NET Skriv om produkt för produkt
  • 22. 150 personer, 2 år Extrem påverkan Code-freeze – right! Krav? Finns i sjön... Arkitektur – bara systemdesign Bara delta-dokumentation 5-10 gånger längre tid!
  • 23. Förändringar överallt Test – process, miljö, data 2.11  1.6 Städa – även produkter
  • 25. Global retailer Bra system! Sista kunden kvar på operativsystemet Kompilatorer, etc. - många, många releaser back Hierarkisk databas – grymt snabb Utmaning: Förklara långsiktig effekt av teknisk skuld
  • 26. Big Bang genom regelmotor-driven totalmigrering 40 man-års förberedelse – 1 dags migrering Code freeze – 1 vecka (eller dag) Utbilda, uppdatera personal Test, test, test!
  • 28. Test Total regressionstest – 45 gånger Stor automationsgrad Öva cut-over fullskaligt 3 gånger
  • 30. Bra system! Automatmigrerat SQL Windows  C# Right, det var ju smart.... Emulering Som innan, fast sämre
  • 31. Lösning: Byt arkitektur, behåll koden Business Rules Identification/Extract Flow Identification Model generation Code generation BRE - Business Rules Extraction MDA - Model Driven Architecture
  • 32. Build Phase Design  Creation of skeletal structure for target architecture  Fitting mined code in to target architecture Baseline Creation Creation of Testing Baseline Existing Application Documentation Migration Stream Use case model formulation Reusable code Mining Generate UML Model Create target solution structures Static Code Analysis Dynamic application analysis Design Develop System Testing Re-Engineering Stream Regression & Performance Testing Functionally 1:1 Migrated Application System-migrering
  • 33. Project overview  Separation of migration and new requirements  Accelerated application rewrite using tool based reverse engineering  Incremental delivery with intermediate UATs  Using agile methodologies  Offshore ration ~80%  Prepare phase: September -November 2015  Build Phase: December 2015 – Feb 2017  46 FTE at peak Forward engineering
  • 34. Byt arkitektur BL DAL PL frmX AS-IS model TO-BE model frmX 1:1 BL DA X DA X SP SP SP View Code behind, from frmX Consolidate db calls (Prepare + Check/Do) Angular/TS MVC GetCustomerInfo() C# C# frmY DA Y SP SP View SP SP SP View DB
  • 38. UI migrering 1 2 3 4 Group boxes, usually inside sections. Typically transferred in order below. If no other order or structure is specified.
  • 39. Utmaningar Kompetens – MDA, kodgenerering Test – så klart Arkitektur – design Patterns – exampel - ner på detaljnivå
  • 40. Utmaningar ”Systemet skall fungera som innan.” ”Men hur vet vi vad systemet gör?” ”Det vet vi inte.” ”Vilka regler används i vilka länder?” ”Vet inte”
  • 41. Utmaningar Hur vet vi då när vi är färdiga? Skapa omfattande dokumentation Regel Regel vs. Marknad Regel vs. Flöde
  • 43. Beslutad nedläggning, men det gick inte Ersättningssystem minst 5 år sena Dubblad förändringsvolym 50% Personal: 50  75 50% ”Allt annat”
  • 44. Initial analys Vad är egentligen problemet? Organisation, WoW  Agile Dokumentation Personal, kompetens, onboarding Verktyg, automation Källkod Arkitektur Short – mid – long term
  • 45. 1. Introduktion av ny personal tog uppemot ett år Ingen (bra) dokumentation Monolitisk design Mycket gammal, nästan-död kod Knöliga rutiner
  • 46. 1. Introduktion av ny personal Dokumentation - Wiki Städa, simplifiera Refaktorera Playground
  • 47. 1. Introduktion av ny personal Feature branching & kvalitetssäkring Senior/junior + onshore/offshore Coaching, Q-gate Design, kvalité, standarder
  • 48. 2. Kodkvalité Oklar kvalité Spretiga lösningar, överlappande mönster 3 olika dependency injection-mönster
  • 49. 2. Kodkvalité CAST, SonarQube, ReSharper Baseline Bra kvalité enligt verktygen Men... Vad är skillnaden mellan CreateOrder, CreateOrder2, CreateOrder3, CreateOrder4 och CreateOrder5?
  • 50. 3. Organisation & arbetssätt Agila team + testteam Onshore/Offshore Tunga Kommunikationsvägar, verktyg Agil model ≈ vattenfall...
  • 51. 3. Organisation & arbetssätt X-funk team Översyn verktyg Mail  Bitbucket Server, Slack/Mattermost Införa agila practises  SAFe Men beställaren måste också med!
  • 52. 4. Beroenden Gammal plattform 3:e parts & open source-verktyg
  • 53. 5. Arkitektur SOA - men i praktiken monolitisk MEGAservice vs. microservice Ett av grunderna för problem med skalning
  • 54. 5. Arkitektur Stegvis refaktorering Städa, flytta uppenbart felplacerad kod Beroendeanalys Gap-analys mot framtida capabilities Skapa API-ytor
  • 55. 5. Arkitektur Stegvis refaktorering Nya områden byggs direkt som microservices Refaktorering svårt  sluta flytta kod Nyskrivning som microservices Allt för mycket ”skräp” kommer med
  • 56. 5. Arkitektur Skapa erfarenhet i teamen Från åratal av ”steady-state” till omfattande förändringar
  • 57. 6. DevOps Inför DevOps practises Deployment  Continous Deploy Auto test
  • 58. 5 Hoppa 50 år eller “Uppskjut verkligen inte till morgondagen…”
  • 59. Myndighet Bra system!!! Världens första 4GL – från 60-talet Plattformen död sedan 15-20 år Ingen utveckling, utbildning, rekrytering
  • 60. Automatisk översättning Språk, databas Men arkitekturen är ju samma - emulering Code freeze? – Law freeze! Regeringsförhandling 3 parallella förstudier
  • 61. Misstag 1 Kräv referens på någon som gjort exakt samma = En möjlig leverantör 1:1-migrering – läsbarhet = klart tveksam
  • 62.
  • 64. Misstag 2 Fastpris Omfattning Tid Kvalité Ni kan bara få två – vad väljer ni bort?
  • 65. Configuration Management Source, target and migration CM are similar but not the same CMCoordination&StakeholderManagement Source CM Migration CM Target Env CM Secure Transfer Secure Transfer Updated Migration Scripts  Source CM  Migration CM  Target CM
  • 66. Riskbaserad test A Realistic Risk-Based test strategy is key Comments  Manual testing helps build confidence in migration but has small coverage  Record/replay UX + Integration testing can be cost effective but is also brittle  Automatic code testing can be hard to achieve in legacy system  New automated tests are needed to provide full coverage SU UX testing Record/ replay UX testing New UX tests Record / replay Interface testing New interface tests Automatic Code Testing Manual Inspections New Code Testing Data Combination Test (DCoT) Elementary Comparison Test (ECT) Process Cycle Test (PCT) Real-Life Test (RLT) Semantic Test (SEM) Syntactic Test (SYN) Error Guessing (EG) Exploratory Testing (ET) Data Cycle Test (DCyT) Use Case Test (UCT) Decision table Test (DTT)
  • 67. 6 Byt (nästan) allt i små steg eller Hur byter man motor på hundratals plan – i luften?
  • 68. Hårdvara, operativsystem – end of life Vax, OpenVMS  Linux Ingen Big Bang  OpenVMS + Linux Pascal, gammal databas 30 års optimering Byta plattform, databas, programmeringsspråk
  • 69. Städa, städa 50-60% bort! Del av störe program Massiv BD parallellt
  • 70. Business Logic 100% Automation Fully manual Semi-Automatic Pascal C++ DCL Python OpenVMS Routines Common routines (POSIX/ LSB) Frameworks & Integrations New solutions E.g. Xrouter Replaced Xrouter Functionality CDD .h .hpp RDO SQLMOD Pro*C (11.g) SQLMOD (RDB) SQL Access Layer Reports Cognos & Qlikview Binary compatibility between Pascal and C++ programs throughout the migration Some OpenVMS calls need attention RDB to 11.gDatabase RDB to Oracle Platform Open VMS to Linux DECforms to HTML5 web interface HTML to HTML5 web interface User Experience
  • 71. Auto-migrering! Regelmotor! ”Morphing, concept based translation” inte rad för rad
  • 72. 1 Automatic translation with rules engine Rules Engine Translation Defect Handling 4 Defects cause by error in/missing rule 4 Quality issue identified Identified Deviation Changed Source Code OpenVMS Production sources New or changed rule 5 Test & Verification SW Quality 3 Migrated Source Code 2 Linux Compile and deploy Ready for Migration? 7 Next iteration 6 Create Test Baseline Update Testware according to changed Rules Engine Process for maturing Rules Engine
  • 74. Test - sekvensering Functional area testing scope Migration & testing scope Interdependencies across no clear lines a T1 T3 M1 T2 b c d e M2 f g T4 Dependency Analyser SMEs Functional testing related to scope Regression testing across system
  • 76. Största förändringen någonsin Ändra allt – testa allt Utan dokumentation Utan testfall Utan automation Utan miljöer/test-data management
  • 77. Summering Det går att revitalisera/modernisera Var medveten om vad du får och inte får Mycket mer än t.ex. byta programmeringsspråk Kan användas som hävstång – men var försiktig - ”Passa på” på rätt områden Var ödmjuk – de flesta organisationer gör bara detta en gång Σ”bara” ≠ ”bara”
  • 78. Contact Joakim Lindbom CTO | Certified Chief Architect Joakim.Lindbom@capgemini.com 08-5368 3934 0708-166404 twitter: JoakimLindbom http://www.slideshare.net/JoakimLindbom http://www.linkedin.com/in/joakimlindbom VLOG Architecture Corner: https://www.youtube.com/playlist?list=PLrb_rbUWzApENbqc085Vk7Qj- amEOmvDN
  • 79. Image sources, marked as OK to use commercially https://upload.wikimedia.org/wikipedia/commons/8/8b/Buck_Mountain_Grand_Teton_NP1.jpg https://upload.wikimedia.org/wikipedia/commons/d/de/Eisklettern_kl_engstligenfall.jpg https://c1.staticflickr.com/1/1/1118807_a751d65ba5_z.jpg?zz=1 https://upload.wikimedia.org/wikipedia/commons/4/4f/Eternal_clock.jpg https://c1.staticflickr.com/9/8062/8189938256_2a683d2334_z.jpg https://upload.wikimedia.org/wikipedia/commons/8/85/Git_branches_example.png https://upload.wikimedia.org/wikipedia/commons/9/99/Highway_at_night_slow_shutter_speed_ph otography_02.jpg https://c2.staticflickr.com/6/5058/5490790304_dc3d7c2b91_z.jpg http://www.dailymail.co.uk/tvshowbiz/article-1176568/Andrew-Sachs-thanks-Jonathan-Ross- Russell-Brand-boosting-career.html https://upload.wikimedia.org/wikipedia/commons/8/8b/CERN_Server.jpg http://www.manufacturing-operations-management.com/manufacturing/2014/10/smart- manufacturing-needs-a-real-time-integrated-enterprise.html http://www.3ders.org/images/Dizingof-math-arts-3d-printing-2.png https://upload.wikimedia.org/wikipedia/commons/8/8a/Long_tail.svg
  • 80. Image sources, marked as OK to use commercially https://upload.wikimedia.org/wikipedia/commons/6/61/Irish_jaunting_car,_ca_1890-1900.jpg https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Lego_dimensions.svg/2000px- Lego_dimensions.svg.png https://upload.wikimedia.org/wikipedia/commons/1/1f/Feel_the_music.jpg https://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/BestBeforeDate.png/640px- BestBeforeDate.png https://images-na.ssl-images-amazon.com/images/I/51dTFVDHRbL.jpg

Notes de l'éditeur

  1. Uber, Airbnb
  2. Uber, Airbnb
  3. API First
  4. IT4IT
  5. Eller – slicing an elephant – but how do you reassemble it?!?
  6. Code coverage  what test cases/configurations are missing?
  7. Hur man målar in sig i ett hörn - praktfullt
  8. Datatyper emuleras – behöver överlagras