The Immor(t)ality of Legacy Projects - Dalia Simons, Wix - DevOpsDays Tel Aviv 2016
-
Upload
devopsdays-tel-aviv -
Category
Technology
-
view
45 -
download
1
Transcript of The Immor(t)ality of Legacy Projects - Dalia Simons, Wix - DevOpsDays Tel Aviv 2016
Best Practices for Maintaining Legacy Projects
The Immortality of Legacy Projects
Dalia Simons, Server Architect
Hi.o Server code is my passion and professiono Have become (not willingly) a legacy projects
expert
MY LEGACY PROJECT
The HTML Mobile Project
An Idea
For a new project
A project is not born a legacy!
Time
New Features
The projectextends and becomes profitable.
www.clipartpanda.com | www.clker.com | affordableengagement.com
A New Shiny Project
Starts gaining customers
…and Here we Are.
Bad-Written Projects
Projects that are:
● Not fully tested
● Not refactored
● Complicated code
● Spagetti code
● Can’t add new features / components
CASE STUDY
How we moved to
Customer growth drives change
CASE STUDY
How we gave up
Non functional concerns
● Load
● Scalability
● Architectural change
We decide to rewrite or deprecated
…and Here we Are.
rowdygoddess.com
● Legacy projects are kept alive (we have paying customers to support)
We are now the proud owners of a legacy project.
● If we rewrite, why not migrate?
Where to start from
worldartsme.com | http://www.istockphoto.com/illustrations/cleaning | www.freeimages.com | www.supercoloring.com
Rewrite? Refactor? Maintenance? Do Nothing?
A project is not an island
A project we interact with changes its API
A 3rd party library has an important security fix
You find a bug that requires urgent fixing
External technologies might by upgraded across the co’
https://pixabay.com/en/spacecraft-rocketship-spaceship-303592/
Maintenance (balance) is the key
http://www.istockphoto.com/vector/scales-balance-drawing-gm516375115-48738346
(costly) technical debt
(harmful) decay
Own you code
https://s-media-cache-ak0.pinimg.com/236x/5b/ae/6f/5bae6fbd9f174dcc1bbd1d9a277fd3ce.jpg
Assign an owner for each project
Rome wasn’t built in a day
http://clipartfreecollection.top/openphoto.php?img=cliparts/rome-clipart/cliparti1_rome-clipart_01.jpg
Learning a new project takes time
Keep everything under CI
#1
4 rules to stayin’ alive
● Build is always green
● Deploy to prod regularly (automatic email)
Keep up to date with dependencies
#2
4 rules to stayin’ alive
Keep everything under CI
● As long as they don’t break compatibility
● Don’t freeze dependencies (security updates, bug fixes)
● Build is always green
● Deploy to prod regularly (automatic email)
CASE STUDY
Frameworks
End-to-end services to all Server projects
● Network calls● Security Changes made
over time left some code used only by legacy projects
We isolated that code into a separate project, and found some interesting insights
Quarantine your dead code
#3
4 rules to stayin’ alive
Keep everything under CI
Keep up to date with dependencies● As long as they
don’t break compatibility
● Don’t freeze dependencies (security updates, bug fixes)
● Build is always green
● Deploy to prod regularly (automatic email)
● Don’t pollute other projects!
● Code that exists - will be used
Small steps are the key
#4
4 rules to stayin’ alive
Keep everything under CI
Keep up to date with dependencies● As long as they
don’t break compatibility
● Don’t freeze dependencies (security updates, bug fixes)
● Build is always green
● Deploy to prod regularly (automatic email)
Quarantine your dead code● Don’t pollute other
projects!
● Code that exists - will be used
● Remove deprecations
● Improve tests
● Small refactors
● Remove dead code
The boy scout rule
http://www.tocolor.pics/boy-scouts-taking-an-oath-coloring-pages/boy-scouts-taking-an-oath-coloring-pages-2/
Always keep the campground cleaner than you found it.
‘Till When?
Legacy projects are the most profitable to the company
They make money, while you spend $0 on development
EOL
Technology EOL coming up
No longer profitable
When to migrate
http://noliklechevalier.tumblr.com/post/132110537448/4-my-graffiti-boyz-bombing-spraying-art
Legacy projects are like your marriage after 10 years.
A little maintenance, done regularly, can go a long way.
This is where you are going to present your final words.This slide is not meant to have a lot of text.Thank You!Any Questions?Dalia Simons