Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Welcome
#DevBoss
@CorecomIT
www.corecomconsulting.co.uk
Schedule for this evening
● 6.00pm - Networking
● 6.30pm - Welcome and Introduction: Lewis Horwell, Corecom Consulting
● 6.40pm – Presentation from Keith Williams, Software Development Manager,
IRIS Software
● 7.30pm - Buffet and Refreshments
● 8.00pm - Group Discussions
● 8.30pm - Refreshments and networking
www.corecomconsulting.co.uk
Transforming
Legacy
Applications
Keith Williams
DevBoss
May 2019
Hi, I’m Keith!
• Development Manager for Cascade HR
• Currently modernising Cascade
• Long history of creating legacy messes
https://www.iris.co.uk
https://www.cascadehr.co.uk
DevBoss May 2019 Presentation
DevBoss May 2019 Presentation
Agenda
Why transform?
How to transform?
Case studies
What is transformation?
Technical
Language shift
New architecture
Cleanup
Infrastructure
Hosted to cloud
Desktop to web
Web to app
Product
Bespoke to SaaS
Feature pivot
UX revamp
Examples
• Rewrote from JSP to Angular
• Upgraded to .NET Core
• Moved from desktop to the web
• Replaced Access with SQL Server
• Migrated to the Cloud
• Moved to hosted SaaS model
Business
is central
Business
Goals
Faster
Cheaper
Better
More
WHY?
What is legacy software,
and why do we need to
transform it?
Why not?
Commercial
reasons
App is End-of-Life
Regulatory
environment
Cost doesn’t justify
benefits
Bad
technical
reasons
Following the latest
fad
Developer ego
Lack of interest in the
business
OK… WHY?
Reasons to transform
Recruitment Retention Security Performance
Productivity Maintainability Operability Features
The risks of NOT changing
STAGNATION CULTURE COMPETITION
HOW? Strategies for legacy
transformation
Pre-flight checklist
Get
business
buy-in
1
Survey your
portfolio
2
Source
control
3
Set up
CI/CD
pipeline
4
Clear the dead
wood
• Marie Kondo your codebase
• If it never went live, it’s going in the bin
• Break up mono-repositories if possible
• Aggressively target code “noise”
Find some edges
• Utility apps, customer portals, mobile sites
• Split off, refactor
• Choose the smallest one, try a rewrite
• Proving ground for new tooling
Types of
Transformation
The Fixer-Upper
Do the maintenance
• Upgrade dependencies
• Remove dead code
• Refresh styles
• Pay down technical debt
Trade-offs
PRO
• Low up-front cost
• Keep the lights on
• No customer migration
• Deliver as BAU
• Quick returns
CON
• Core tech debt remains
• Can’t fix a broken model
• Still the same tech
• Still the same app
Case study: Ultimate Manager
• ASP.NET WebForms
application
• Rotting since 2010
• Upgrade to .NET 4.7
• Update all
dependencies
• Lift-and-shift to Azure
PaaS
• 3 months to market
If the tech isn’t that bad, and the app is
stable, maybe it just needs some TLC
The Strangler
Side-by-side
• Plan and build a new architecture
• Start writing side-by-side
• Small, incremental deliveries
• Slowly “strangle” the legacy app
• Maintain backwards compatibility
Trade-offs
PRO
• No impact on users
• Iterative improvement
• Continual feedback
• No customer migrations
• Clean new architecture
CON
• Can’t fix a broken model
• Can’t fix broken data
• Compromise for compatibility
• Split dev resources
• Two codebases to maintain
Case study: Cascade “Novo”
• Classic ASP/ASP.NET
WebForms app
• 2.7 million LoC
• New ASP.NET Core +
Angular app
• Modern service-based
architecture
• Dependency on common
database
• 6 months to EA, 12 to
market
If the tech is bad, but the data is sound,
make a new view of the data
The Big Bang
Nuke the site from orbit
• File  New Project
• New model, new architecture, new code
• One big upgrade, no going back
• Reimagine product from ground up
Trade-offs
PRO
• Clean new architecture
• New model to suit business
• Easier to recruit developers
• Faster than Strangler
CON
• Long wait for pay-off
• Must migrate customers
• Must admit old app is EOL
• Split dev resource
• Legacy distractions
• Easy to underestimate
• Risk of solving old problems
Case study: Sunrise
• ODIN: Classic ASP/COM
app, 1 million LoC
• Sunrise: Ground-up
rewrite, no shared code
or data
• Migrate existing
customers one by one
• ASP.NET MVC + Azure
PaaS architecture
• 3 years to market
If the tech is bad, and the app doesn’t
suit the business, you might as well re-
write it from scratch
QUESTIONS?
Buffet and Refreshments
www.corecomconsulting.co.uk
Group Discussions
www.corecomconsulting.co.uk
“How do you transition Senior Engineers into
leadership roles?”
www.corecomconsulting.co.uk
Discussion 1:
“What are the best approaches
to gain buy-in for change?”
www.corecomconsulting.co.uk
Discussion 2:
“When working in an agile
environment, how do you avoid too
many meetings and not enough
coding?”
www.corecomconsulting.co.uk
Discussion 3:
Thank you
#DevBoss
@CorecomIT
www.corecomconsulting.co.uk

More Related Content

DevBoss May 2019 Presentation

Editor's Notes

  1. Hi - I'm Keith, and I'd like to start with a confession: During my 16 years in this industry, I have created many, many legacy applications I've build PHP monstrosities and Access nightmares. Even the apps that I thought were cool and cutting edge in 2006 are now clunky WebForms and WCF graveyards. The tech that I advocated as new and exciting in 2010 is now just so much technical debt that will never be paid down.
  2. First, let's look at when you might NOT want to transform an app