Skip to content

Application maintenance

Maintaining an app after launch

Launch is where the real cost curve starts. An application that is monitored, patched and improved in small increments gets cheaper to change; one left alone until something breaks gets more expensive every quarter until it is rebuilt.

John M Granskou11 min read

Need help with this?

Planning an application?

Define the MVP, user accounts, integrations and operating model around the real user workflow.

Observe → triage → change → verifyObserveTriageChangeVerifyContinuous, not a phaseLaunch is the start of the work
Maintaining an app after launch

The launch date is treated as the end of a project and is in fact the start of the expensive part. Everything after it — the updates, the incidents, the small improvements — determines whether the application stays an asset or quietly becomes a liability the business works around.

Key takeaways

  • Maintenance is three distinct kinds of work: keeping it running, keeping it honest, and keeping it moving.
  • Deferred dependency updates compound — a year of skipped upgrades becomes a project rather than a task.
  • Without monitoring, the first report of a failure comes from a customer, which is the most expensive channel there is.
  • Small reversible releases lower risk far more effectively than infrequent large ones.
  • Budget maintenance as a standing line item; the alternative is paying for a rebuild later.

Short answer

Maintenance is continuous, not a phase: observe what is happening, triage what matters, change it in small reversible releases, and verify in production. Applications maintained this way get cheaper to change over time.

The loop, not the phase

The loop runs continuously. Where it stops, technical debt starts accruing interest.

Three kinds of work

Conflating these is why maintenance budgets get cut: someone sees only the first tier and concludes that a working application does not need attention.

Only the third tier is visible to users. The first two are why the third stays possible.

What quietly rots when nobody is watching

NeglectedLooks fine forThen presents as
Dependency updatesMonthsAn unsupported runtime and simultaneous breaking changes
Monitoring and alertingUntil the first failureA customer reporting a broken workflow
Backup restore testingUntil it is neededA backup that exists but does not restore
Performance budgetsA few releasesA steadily slower product nobody can date
Integration credentialsUntil expiryA silent sync failure discovered weeks later
Data qualityGraduallyReporting nobody trusts and decisions made on instinct
Neglect and its arrival time

Release rhythm

Small, frequent, reversible releases are safer than infrequent large ones, because the surface area of any single change is small enough to diagnose. That requires the mundane infrastructure: automated checks, a staging environment with realistic data, and the ability to roll back without ceremony.

Where an application runs scheduled work or exchanges data with other systems, failure handling deserves the same treatment as user-facing errors — the reasoning is set out in error handling in automated workflows.

Budget it deliberately

Maintenance is not overhead on the build; it is what protects the value of the build. Businesses that carry it as a standing commitment keep shipping improvements years in. Those that defer it pay the same money later as a rebuild, and lose the accumulated product knowledge along the way. It is part of how we run application and PWA development.

A maintained application gets cheaper to change every year. An unmaintained one gets more expensive every quarter, until the only option left is to start again.

Frequently asked questions

What does app maintenance actually involve?

Dependency and platform updates, security patching, monitoring and incident response, backups and restore testing, credential and certificate renewals, performance and accessibility checks, data quality, and a steady flow of small product improvements.

How much should maintenance cost?

Planned rather than guessed. It is best treated as an ongoing capacity commitment sized to the application’s complexity and integrations, reviewed as those change — not as an occasional emergency spend.

Why do dependency updates matter if nothing is broken?

Because the cost of updating rises with the gap. Small regular upgrades are routine; two years of deferral means simultaneous breaking changes, an unsupported runtime and known vulnerabilities, all at once.

What should be monitored?

Errors with enough context to reproduce them, key workflow completion rates, integration failures, performance on real devices, and background job health. Monitoring should tell you a workflow broke before a customer does.

When is a rebuild justified instead of maintenance?

When the architecture blocks the direction the business needs to go, or when the cost of each change has risen to the point where nothing ships. Rebuilding to escape neglected maintenance simply restarts the same clock.

Next step

Scoping an application build?

Define the MVP, the accounts model and the integrations before committing to a stack.