Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
PHP Development

Keeping an Application Healthy

Last updated:

Neglect, not age

An application maintained continuously for ten years can be entirely pleasant to work on. One left untouched for three can be almost impossible, because every dependency is several major versions behind and nothing can be updated in isolation.

The difference is routine maintenance, which is cheap when continuous and expensive when deferred.

What routine maintenance means

  1. Security updates applied within days
  2. Dependency updates monthly, with tests
  3. PHP version kept on a supported release
  4. Automated vulnerability auditing on every build
  5. Tests kept passing, not disabled when inconvenient
A disabled test is worse than a missing one, because it creates the impression of coverage. Fix it or delete it.

Technical debt is a decision

Some shortcuts are correct decisions under time pressure. The problem is not taking them; it is not recording them, so they are never revisited.

  • Record the shortcut and why it was taken
  • Note what it would take to do properly
  • Revisit when touching that area anyway
  • Fix it before it blocks something important

Improve what you touch

Rather than a separate refactoring project, improve the code you are already changing. Over time the frequently-changed parts become clean and the untouched parts remain as they are, which is the correct allocation of effort.

Refactoring code nobody touches is spending effort where it produces no return.

Budget for it

ApplicationAnnual maintenance
Simple, stable10–15% of build cost
Active business application15–25%
Many integrations20–30%

Unbudgeted maintenance means no maintenance, which means an application that becomes progressively more expensive to change.

Frequently asked questions

How often should dependencies be updated?

Security releases within days, others monthly. Deferring updates makes each subsequent one harder.

What if updating breaks things?

That is what tests and staging are for. If updating is frightening, the fix is tests rather than avoiding updates.

How do we know how much debt we have?

Static analysis tools give an indication. A more useful measure is how long a typical change takes compared with a year ago.

When is an application beyond maintaining?

When understanding it costs more than replacing it. That is rarer than it feels, and usually the result of years of deferred maintenance.

Keep reading

Application that has not been updated in years?

The version and dependency situation is the urgent part. Happy to assess where it stands.

Book a free 30-minute call Get a project estimate WhatsApp us

Related services

What we build for problems like this one

Web DevelopmentCustom Software Development