Skip to content

Maintenance vs Development ​

Not all work is equal. Some tasks keep the system running as it is; others change what the system is. Understanding the distinction is essential because each type of work follows a different process, pricing model, and expectation of effort.

Maintenance ​

Maintenance preserves the existing system.
It keeps current behaviour intact, stable, and safe. No new thinking is required—only restoration to a known state.

Maintenance includes:

  • Fixing bugs where functionality has regressed from what was originally delivered
  • Restoring broken features to their intended behaviour
  • Applying dependency updates, security patches, and other routine technical upkeep
  • Adjusting configuration, content, or copy without altering logic or workflow
  • Minor tweaks that do not introduce new decisions, exceptions, or user journeys

If the system behaves the same before and after the work, it is maintenance.

Development ​

Development changes how the system behaves.
It introduces something new—capabilities, workflows, decisions, or user experiences that did not exist before.

Development includes:

  • New features, new screens, new workflows, and new logic
  • Enhancing existing functionality beyond its original scope
  • Integrations with other systems or services
  • Changes that alter user journeys or add exception handling
  • Work requiring engineering judgement, UX consideration, or architectural choices

If the system can do something after the work that it could not do before, it is development.

The Practical Divider ​

The intent behind the work determines the category:

Maintenance preserves. Development transforms.

Most confusion arises from small requests that appear trivial but have hidden consequences—often framed as “can you just…”.

To classify correctly, ask:

Does this request: ​

  • Require new decisions?
  • Change user behaviour or outcomes?
  • Introduce new exceptions or conditions?
  • Require scoping or architectural consideration?

If yes to any of the above, it is development, regardless of size.

Why This Distinction Matters ​

Different expectations apply:

AspectMaintenanceDevelopment
PurposePreserve existing behaviourIntroduce or change behaviour
ProcessQuick triage and fixDiscovery, design, and build
RiskLowVariable—can be high
PricingTypically retainerProject or scoped estimate
OwnershipDelivery teamProduct & Technology Lead involved where required

Misclassification leads to disappointment: maintenance budgets evaporate, delivery dates slip, and assumptions collide.

This distinction ensures work is routed correctly, costed appropriately, and delivered with the care it deserves.

Summary ​

If the work restores something that already exists, it’s maintenance.
If the work changes how the system behaves, it’s development.

When in doubt, classify by impact, not size.