SlideShare a Scribd company logo
OLD CODE, NEW TRICKSOR, HOW I LEARNED TO LOVE LEGACY CODE AND YOU CAN, TOO.
By M. Scott Ford
Founder, Corgibytes @mscottford
@mscottford
WHY WAS THIS MY FAVORITE PROJECT?
@mscottford
DISSATISFIED?
WHY WAS I SO
• Product vs. Services?
• Desktop vs. Web?
• Startup vs. Enterprise?
• Hacker vs. Craftsman?
• Self Employed?
@mscottford
PRODUCT LIFE CYCLE
INTRODUCTION
GROWTH
MATURITY
DEVELOPMENT
@mscottford
PRODUCT LIFE CYCLE
INTRODUCTION
GROWTH
MATURITY
DEVELOPMENT
OBSCURITY
DECLINE
@mscottford
PRODUCT LIFE CYCLE
INTRODUCTION
GROWTH
MATURITY
DEVELOPMENT
OBSCURITY
DECLINE
MAKING
@mscottford
PRODUCT LIFE CYCLE
INTRODUCTION
GROWTH
MATURITY
DEVELOPMENT
OBSCURITY
DECLINE
MAKING
????
@mscottford
PRODUCT LIFE CYCLE
INTRODUCTION
GROWTH
MATURITY
DEVELOPMENT
OBSCURITY
DECLINE
MAKING
MENDING
MAKERS VS MENDERS
@mscottford
@mscottford
MAKERS
• Speed to Market
• Rapid Prototyping
• Minimum Viable Product
• Likes Experimenting
• Energized by Big Launch
@mscottford
MENDERS
• Repair Technical Debt
• Reduce Entropy
• Bug Fixes & Integrations
• Likes Stable & Steady
• Energized by Small Wins
@mscottford
DEVELOPER LANDSCAPE
HACKER CRAFTSMAN
@mscottford
DEVELOPER LANDSCAPE
HACKER CRAFTSMAN
MAKING
MENDING
@mscottford
DEVELOPER LANDSCAPE
HACKER CRAFTSMAN
RAPID
PROTOTYPING
MAKING
MENDING
@mscottford
DEVELOPER LANDSCAPE
HACKER CRAFTSMAN
RAPID
PROTOTYPING
SOLID
MAKING
MENDING
@mscottford
DEVELOPER LANDSCAPE
HACKER CRAFTSMAN
RAPID
PROTOTYPING
SOLID
FIRE 

FIGHTING
MAKING
MENDING
@mscottford
DEVELOPER LANDSCAPE
HACKER CRAFTSMAN
RAPID
PROTOTYPING
SOLID
FIRE 

FIGHTING
????
MAKING
MENDING
@mscottford
DEVELOPER LANDSCAPE
HACKER CRAFTSMAN
RAPID
PROTOTYPING
SOLID
FIRE 

FIGHTING
SOFTWARE

REMODELING
MAKING
MENDING
SOFTWARE REMODELING
@mscottford
SOFTWARE REMODELING
@mscottford
activities that reduce software entropy
@mscottford
SOFTWARE ENTROPY
@mscottford
Modification increases complexity,
unless a conscious effort is made.
Using software means
continuous modification.1
2
Lehman,	
  M.	
  M.;	
  Belady,	
  L.A.	
  (1985),	
  Program	
  evolu=on:	
  processes	
  of	
  soCware	
  change,	
  Academic	
  Press	
  Professional,	
  Inc.,	
  San	
  Diego,	
  CA
SOFTWARE ENTROPY
@mscottford
The longer it’s been
since the last time a
program has been
modified, the more
expensive it will be
to make the next
modification.
BULLDOZE VS REMODEL
@mscottford
@mscottford
WHEN TO REMODEL?
@mscottford
WHEN TO REMODEL?
FEATURES 

YOU HAVE
@mscottford
WHEN TO REMODEL?
FEATURES 

YOU HAVE
FEATURES 

YOU NEED
@mscottford
WHEN TO REMODEL?
FEATURES 

YOU HAVE
FEATURES 

YOU NEED
REMODELING

JUSTIFICATION
@mscottford
REMODELING PRINCIPLES
@mscottford
REMODELING PRINCIPLES
Language

Matters
project?
How do you describe a
LEGACY
@mscottford
@mscottford
WHAT COLOR IS YOUR FIELD?
• Talking positively about our work helps us feel good about it.
• Consider the following:
@mscottford
LANGUAGE MATTERS
NEGATIVE POSITIVE
Legacy
Brownfield
Rescue
Spaghetti Code
Antiquated
Existing Code
Restore
Remodel
Revitalize
Vintage/Classic
• Some terms used by the Agile community begin to break down
when talking about existing projects.
• Consider the following:
– Sprint vs. Iteration
– Estimate vs. Forecast
@mscottford
LANGUAGE MATTERS
@mscottford
Modern 

Techniques
REMODELING PRINCIPLES
Language

Matters
• Would a doctor treat you using only medical knowledge
available in the year you were born?
• When working on an old house, would you limit yourself to only
tools available the year it was built?
• You DO NOT have to limit yourself to old tools and techniques.
@mscottford
USE MODERN TECHNIQUES
@mscottford
Modern 

Techniques
REMODELING PRINCIPLES
Language

Matters
Respect

The Past
• Look at work as a form of software archaeology.
• Practice giving and receiving critiques.
• Retrospective Prime Directive becomes invaluable. Reserve
judgement. 

“Regardless of what we discover, we understand and truly believe that
everyone did the best job they could, given what they knew at the time, their
skills and abilities, the resources available, and the situation at hand.”
@mscottford
RESPECT THE PAST
• How to give a good critique:
–Critique the code: never the author.
–Call attention to the good things, 

as well as opportunities for improvement.
–Make it clear that you are stating opinion and not fact.
• Practice at http://exercism.io
• git blame
@mscottford
RESPECT THE PAST
@mscottford
Modern 

Techniques
Systems, 

Not Goals
REMODELING PRINCIPLES
Language

Matters
Respect

The Past
• Goals work great for initial launch, not so well for maintenance.
– Ex: Better to establish system where tests are added with
every commit than set a “goal” of 100% test coverage.
– Continuous Integration
– Continuous Deployment
– Automated Code Review
@mscottford
SYSTEMS, NOT GOALS
• Some of our favorite tools for creating maintenance systems:
– Style Cops (rubocop, FxCop)
– Linters (jslint, csslint, xmllint)
– Quality (Code Climate, BitHound)
– Continuous Monitoring (Honeybadger, Airbrake, New Relic)
– Continuous Deployment & Integration (CodeShip, Jenkins,
Travis CI, Circle CI)
– Chat-Ops (Slack, Gitter, HipChat) @mscottford
SYSTEMS, NOT GOALS
QUESTIONS?
@mscottford
@mscottford
Contact Info
@mscottford
corgibytes.com

More Related Content

PDF
Why we don't innovate?
PPTX
Rapid Prototyping - a good idea for Startups - battling the human condition
PPTX
The Sixth "W"
PPTX
Programação simultânea em pares
ODP
New Ideas for Old Code - Greach
PDF
Embracing the Red Bar: A Technique for Safely Refactoring Your Test Suite
PDF
Introduction to Mob Programming
Why we don't innovate?
Rapid Prototyping - a good idea for Startups - battling the human condition
The Sixth "W"
Programação simultânea em pares
New Ideas for Old Code - Greach
Embracing the Red Bar: A Technique for Safely Refactoring Your Test Suite
Introduction to Mob Programming

Viewers also liked (7)

PDF
When code gets_older
PDF
The Craftsman Developer In An Agile World
PDF
Code Refactoring
PPT
Software documentation
PPTX
Clean architecture
PDF
Google Design sprint
PDF
Documentation in the agile software development process
When code gets_older
The Craftsman Developer In An Agile World
Code Refactoring
Software documentation
Clean architecture
Google Design sprint
Documentation in the agile software development process
Ad

Similar to Old Code, New Tricks (20)

PDF
MenderCon 2020 Keynote Presentation
PDF
Nick Fine - Scientific Design
PDF
Forgetting to Drain The Swamp + Other Lessons of Running a Creative Business
PDF
Innovation, Brand Engagement and the Maker Movement
PDF
Emergent Patterns in DevOps
PDF
IT Pro Job Search Strategies 2017 Centriq
PPTX
Practical Cyber: Lessons from 500,000 Miles of Security Evangelism
PDF
Creating A Digital Content Factory: Getting Started with Intelligent Content
PDF
Coder Job Search Strategies 2017 Centriq
PDF
The Black Magic of Engineering Management
PDF
The Black Magic Of Engineering Management
PDF
Some Perspective (Nspire Discovery Series)
PPTX
WTI Framework Preso.pptx
PDF
Breaking the myths of the rockstar developer - Drupalcon Vienna 2017
PPTX
Writing a Persuasive Document
PDF
The #Hiring Manifesto
PDF
Reading an ad, writing an application, getting a job... with an anthropology ...
PPTX
Antony Williams, the ChemConnector – a career path through a diverse series o...
PDF
SpringOne Tour: The Influential Software Engineer
PDF
ITM - Delivering the Promise of Cross-Media with Premedia
MenderCon 2020 Keynote Presentation
Nick Fine - Scientific Design
Forgetting to Drain The Swamp + Other Lessons of Running a Creative Business
Innovation, Brand Engagement and the Maker Movement
Emergent Patterns in DevOps
IT Pro Job Search Strategies 2017 Centriq
Practical Cyber: Lessons from 500,000 Miles of Security Evangelism
Creating A Digital Content Factory: Getting Started with Intelligent Content
Coder Job Search Strategies 2017 Centriq
The Black Magic of Engineering Management
The Black Magic Of Engineering Management
Some Perspective (Nspire Discovery Series)
WTI Framework Preso.pptx
Breaking the myths of the rockstar developer - Drupalcon Vienna 2017
Writing a Persuasive Document
The #Hiring Manifesto
Reading an ad, writing an application, getting a job... with an anthropology ...
Antony Williams, the ChemConnector – a career path through a diverse series o...
SpringOne Tour: The Influential Software Engineer
ITM - Delivering the Promise of Cross-Media with Premedia
Ad

More from M. Scott Ford (9)

PPTX
Lessons Learned Migrating from Jekyll to Next.pptx
PDF
PyGeekle 2022 - A Deep Dive into Measuring Dependency Freshness with LibYear
PDF
Communication is Just as Important as Code
PDF
MenderCon 2021 - Keynote
PDF
Moving a Monolith to Kubernetes
PDF
Makers and menders - Finding Talent for Legacy Code Projects
PDF
A deep dive into measuring dependency freshness with lib year
PDF
Building a Bridge to a Legacy Application: How Hard Can That Be?
PDF
Important metrics for Measuring Code Health
Lessons Learned Migrating from Jekyll to Next.pptx
PyGeekle 2022 - A Deep Dive into Measuring Dependency Freshness with LibYear
Communication is Just as Important as Code
MenderCon 2021 - Keynote
Moving a Monolith to Kubernetes
Makers and menders - Finding Talent for Legacy Code Projects
A deep dive into measuring dependency freshness with lib year
Building a Bridge to a Legacy Application: How Hard Can That Be?
Important metrics for Measuring Code Health

Recently uploaded (20)

PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
history of c programming in notes for students .pptx
PPTX
L1 - Introduction to python Backend.pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
ai tools demonstartion for schools and inter college
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
System and Network Administraation Chapter 3
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Introduction to Artificial Intelligence
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Nekopoi APK 2025 free lastest update
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
ISO 45001 Occupational Health and Safety Management System
history of c programming in notes for students .pptx
L1 - Introduction to python Backend.pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Design an Analysis of Algorithms II-SECS-1021-03
ai tools demonstartion for schools and inter college
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
CHAPTER 2 - PM Management and IT Context
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Online Work Permit System for Fast Permit Processing
VVF-Customer-Presentation2025-Ver1.9.pptx
Odoo POS Development Services by CandidRoot Solutions
Upgrade and Innovation Strategies for SAP ERP Customers
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
System and Network Administraation Chapter 3
Softaken Excel to vCard Converter Software.pdf
Introduction to Artificial Intelligence
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Nekopoi APK 2025 free lastest update
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf

Old Code, New Tricks