The App Health Checklist: How Healthy Is Your Application?

Use this practical App Health checklist to assess your application across observability, security, resilience, performance, testing, scalability and 11 other health dimensions.

A doctor would never declare someone healthy simply because their heart is beating.

That is a necessary sign of life, but it says very little on its own. Blood pressure, symptoms, medical history and other indicators can reveal problems that a pulse cannot.

Applications have the same problem.

Teams often judge software health using whichever signal is easiest to see: uptime is high, the bug backlog is small, or no major incident has happened recently. Those are useful indicators, but an application can satisfy all three while running on unsupported dependencies, becoming slower with every release, relying on fragile integrations or depending on one engineer who understands how production actually works.

An App Health check asks a broader question:

Is this application in a condition where we can continue relying on it, supporting it and changing it safely?

At Levelworks, we assess that through 17 App Health Aspects: Observable, Secure, Resilient, Error Free, Performant, Current & Updated, User Friendly & Delightful, Supported, Scalable, Integrable, Explainable & Debuggable, Tested, Version Controlled, Seamlessly Updatable, Well Documented, Compatible and Compliant.

This checklist turns those aspects into practical questions your product and engineering teams can answer.

[Internal Link: “What Is App Health? 17 Signs of a Healthy Application”]

How to use this App Health checklist

This is not intended to generate an arbitrary score out of 100.

A payment platform and an internal HR tool should not be assessed against identical expectations. The impact of downtime, security exposure or slow recovery is completely different.

Instead, classify each area as:

Status

What it means

Healthy

You have evidence the area is working as expected and material risks are controlled.

Needs Attention

The application works, but there is a known weakness, deterioration or uncertainty.

High Risk

There is a material weakness, little evidence of health, or failure could have serious consequences.

The important word is evidence.

“We have backups” is weaker than “we restored a backup and verified the data.”

“Users have not complained about performance” is weaker than production measurements showing important workflows remain within acceptable response times.

The checklist is useful because it exposes where confidence is based on facts and where it is based mainly on assumption.

1. Observable: Can you see what the application is doing?

If something starts going wrong, would your team know before the problem becomes serious?

Check whether:

  • Important services and user journeys are monitored.
  • Errors and exceptions are collected centrally.
  • Response-time trends are visible.
  • Resource pressure such as memory, storage or connection saturation can be identified.
  • Background jobs report failures.
  • Alerts reach somebody who owns the response.
  • Monitoring is not so noisy that important alerts are routinely ignored.

Google's Site Reliability Engineering guidance identifies latency, traffic, errors and saturation as four particularly useful signals for user-facing systems. Google SRE: Monitoring Distributed Systems

Warning sign: Users or support teams regularly discover production problems before engineering does.

[Internal Link: “Application Monitoring: What Should You Monitor in a Production App?”]

2. Secure: Are known risks under control?

Security health is not the same as “we have never been breached.”

Check whether:

  • Vulnerabilities in dependencies are being detected.
  • Important security patches are reviewed and applied according to risk.
  • Authentication and access controls still match current requirements.
  • Secrets and credentials are handled appropriately.
  • Unnecessary accounts and privileges are removed.
  • Security-sensitive configuration is reviewed.
  • Security issues have a defined escalation path.

The OWASP Top 10:2025 includes risks involving broken access control, misconfiguration, authentication, software supply chains and security logging. The NIST Secure Software Development Framework likewise treats addressing vulnerabilities in released software as an ongoing responsibility.

Warning sign: Nobody can confidently identify which vulnerable or unsupported components are running in production.

3. Resilient: What happens when something fails?

Healthy applications should expect dependencies and infrastructure to fail occasionally.

Check whether:

  • Critical components have defined failure behaviour.
  • One non-critical failure does not unnecessarily take down unrelated functionality.
  • Retry behaviour is controlled.
  • Recovery procedures exist for important failures.
  • Backups and recovery processes have been tested.
  • The business understands how much downtime or data loss it can tolerate.

AWS recommends designing systems to tolerate component failures and testing recovery rather than simply assuming resilience will work as intended. AWS Well-Architected: Reliability

Warning sign: Your recovery plan exists mainly as a document nobody has exercised.

4. Error Free: Are defects controlled or simply tolerated?

No meaningful application is literally free from every error. The important question is whether recurring user-facing errors are detected and resolved rather than becoming part of normal operation.

Check whether:

  • Production error rates are understood.
  • High-impact defects receive appropriate priority.
  • Recurring problems are investigated beyond temporary fixes.
  • Known defects do not remain indefinitely without an explicit decision.
  • Support workarounds are not quietly replacing permanent fixes.
  • Error trends are compared across releases.

Warning sign: Everyone inside the organisation knows which process occasionally needs rerunning, but nobody is fixing why it fails.

5. Performant: Is the experience still fast enough?

Performance should be judged where users experience it.

Check whether:

  • Important workflows have response-time measurements.
  • Performance is compared across releases.
  • Database operations are not steadily slowing as data grows.
  • Frontend loading and responsiveness remain acceptable.
  • Known bottlenecks have owners.
  • Real-user conditions are measured where relevant.

For web applications, Google's Core Web Vitals provide useful field measures of loading, responsiveness and visual stability.

Warning sign: Slow behaviour is accepted because “it has always been like that.”

6. Current & Updated: Is the technology still supportable?

Being healthy does not require installing every new version immediately, but the application should not drift so far behind that ordinary updates become risky.

Check whether:

  • Major frameworks and runtimes remain supported.
  • Important dependencies are within manageable upgrade distance.
  • End-of-life dates are known for critical technologies.
  • Updates are deliberately assessed rather than endlessly postponed.
  • Existing functionality still matches current business needs.

Warning sign: Applying one necessary security patch first requires several framework and runtime upgrades.

7. User Friendly & Delightful: Can users achieve what they came to do?

Technical quality does not compensate for a confusing product.

Check whether:

  • Important workflows remain easy to understand.
  • Common tasks have not become unnecessarily complicated as features were added.
  • Error messages tell users what happened and what to do next.
  • Recurring usability complaints are reviewed.
  • Accessibility regressions are tracked.
  • Support data is used to identify persistent friction.

Warning sign: Support regularly has to explain how to complete a supposedly self-service workflow.

8. Supported: Does someone clearly own the application?

An application can deteriorate quickly when post-launch ownership is unclear.

Check whether:

  • Production alerts have clear owners.
  • Users know where to report problems.
  • Support issues have a route into technical investigation.
  • Critical incidents have escalation paths.
  • Maintenance items have owners.
  • Enough application knowledge exists to support the product when key individuals are absent.

Warning sign: When something fails, the first discussion is about who is responsible for it.

9. Scalable: Can the app support expected growth?

Scalability should be assessed against realistic demand rather than theoretical infinite growth.

Check whether:

  • Traffic, transaction and data growth are tracked.
  • Critical resources have enough headroom.
  • Higher demand does not create disproportionate performance degradation.
  • Planned customer or product launches are considered in capacity planning.
  • Known technical constraints are understood before they become hard limits.

Google SRE uses saturation to describe how close a service is to an important resource limit. Google SRE: Monitoring Distributed Systems

Warning sign: Every meaningful rise in usage requires an emergency infrastructure change.

10. Integrable: Are external dependencies still reliable?

Third-party services change independently of your application.

Check whether:

  • Critical integrations are known and documented.
  • Integration failures can be detected.
  • API deprecation notices reach the right people.
  • Current API versions remain supported.
  • Credentials and certificates are managed before expiration.
  • External failures do not unnecessarily break unrelated functionality.

Warning sign: An API retirement becomes visible only when the provider's deadline is close.

11. Explainable & Debuggable: Can engineers understand failures?

Finding an error and understanding it are different capabilities.

Check whether:

  • Logs provide enough context to investigate failures.
  • Requests or transactions can be traced through relevant services.
  • Errors can be connected to affected workflows.
  • Production failures can be reproduced or investigated efficiently.
  • Troubleshooting does not depend heavily on one person's intuition.

Warning sign: Most incident time is spent discovering what happened rather than correcting the cause.

12. Tested: Can important behaviour be verified confidently?

Testing protects the application when something changes.

Check whether:

  • Critical workflows have appropriate test coverage.
  • Regression tests protect previously fixed high-impact defects.
  • Test failures are investigated rather than routinely ignored.
  • High-risk changes receive appropriate validation.
  • Tests cover relevant integrations and configuration, not only isolated code.

Warning sign: Release confidence comes mainly from the belief that “the change was small.”

13. Version Controlled: Can you reconstruct what changed?

Production software should have a traceable history.

Check whether:

  • Production application code is in version control.
  • Important configuration is controlled appropriately.
  • Releases map to identifiable versions.
  • Changes receive suitable review.
  • Production contains no unexplained manual modifications.
  • Previous known-good states can be identified.

Warning sign: Engineers are unsure whether the repository accurately represents production.

14. Seamlessly Updatable: Can the app be changed safely?

An application may appear healthy until somebody tries to update it.

Check whether:

  • Releases follow a defined process.
  • Deployment does not depend on undocumented manual steps.
  • Changes can be validated before full release.
  • Rollback or recovery is practical.
  • Urgent fixes can be deployed without extraordinary effort.
  • Routine releases do not regularly create incidents.

Warning sign: Important updates are repeatedly delayed because nobody wants to touch production.

15. Well Documented: Would knowledge survive a team change?

Documentation should be judged by whether it helps people operate and change the application.

Check whether useful documentation exists for:

  • High-level architecture.
  • Important dependencies.
  • Deployment and rollback procedures.
  • Environment and configuration information.
  • Recovery processes.
  • Operational runbooks.
  • APIs and important data flows.
  • Known limitations.

Warning sign: The fastest route to understanding a critical system is still “ask the person who built it.”

16. Compatible: Does the app still work where it promises to?

Compatibility changes even when your code does not.

Check whether:

  • Supported browsers are defined and tested.
  • Supported operating-system versions are known.
  • Important device classes remain covered.
  • Platform deprecations are tracked.
  • Compatibility defects are visible and owned.
  • Supported environments reflect the actual user base.

Warning sign: Compatibility testing happens only after a customer reports a failure.

17. Compliant: Are applicable requirements still being met?

Compliance depends heavily on the application's industry, geography, data and contractual obligations, so there is no universal checklist.

At minimum, check whether:

  • Applicable requirements have been identified.
  • Relevant technical controls have owners.
  • Application changes are assessed for compliance impact where required.
  • Evidence can be produced when needed.
  • Compliance-related configuration has not drifted.
  • Changes in requirements are reflected in the application.

Warning sign: The main evidence that the application remains compliant is that it passed an assessment several years ago.

Do not count green boxes. Look for clusters of weakness.

Once the checklist is complete, resist the temptation to convert it immediately into a percentage.

An application with 15 healthy areas and two serious weaknesses is not automatically “88% healthy.”

If the two weak dimensions are Secure and Resilient in a financial application, their importance may outweigh several perfectly healthy areas.

Look instead for patterns.

If Observable and Explainable & Debuggable are both weak, production problems may be difficult to detect and diagnose.

If Current & Updated, Compatible and Integrable are all deteriorating, the application may be falling behind the technology ecosystem around it.

Weakness across Tested, Version Controlled and Seamlessly Updatable often points to an application that works today but is increasingly dangerous to change.

Similarly, deterioration across Performant and Scalable can indicate that current usage is still acceptable while expected growth is approaching a technical limit.

This is why the 17 App Health Aspects are more useful as a connected diagnostic model than as 17 independent scores.

[Internal Link: “How the Different Dimensions of App Health Work Together”]

Test assumptions where the consequences matter most

One of the most useful outcomes of an App Health check is finding reassuring statements that have never been demonstrated.

“We have backups.”

Can you restore them?

“We can roll back.”

When was the rollback procedure last exercised?

“The application scales.”

To what load has that actually been demonstrated?

“We have monitoring.”

Would it detect failure of the workflow users care about most?

AWS recommends periodically restoring backups specifically because having backup files does not prove that recovery will work when required. AWS Well-Architected: Back Up Data

Apply the same principle throughout the health check: where failure would matter, replace assumed confidence with evidence.

Turn the findings into maintenance decisions

An App Health check should create actions, not just observations.

For each area marked Needs Attention or High Risk, record:

Question

Why it matters

What is the weakness?

Make the problem specific.

What evidence supports it?

Avoid prioritising vague concerns.

What happens if nothing changes?

Connect technical weakness to a realistic consequence.

How urgent is it?

Not every health issue requires immediate work.

Who owns the next step?

Unowned findings rarely improve.

How will we know it is healthier?

Define what evidence would change the assessment.

Context should determine priority.

A dependency being one minor version behind may simply need monitoring, while an unsupported framework carrying a relevant security vulnerability may require immediate action.

Repeat the check often enough to see direction

App Health is not a certification.

An application can improve or deteriorate after the assessment is complete, sometimes without a major incident.

Comparing health checks over time makes that direction visible. Performance may be improving while dependencies are ageing, releases may be getting safer while documentation is becoming weaker, or several previously high-risk areas may be steadily moving toward healthy.

The trend can tell you more than the snapshot.

[Internal Link: “How to Measure App Health: The Metrics That Actually Matter”]

How healthy is your application?

A useful App Health check should tell you where there is evidence of strength, where confidence is based mainly on assumption, and where one weakness is beginning to affect several other parts of the system.

That is why Levelworks looks across 17 connected App Health Aspects rather than treating uptime, security scans or performance scores as complete answers on their own.

Your application does not need a perfect result.

It needs enough visibility that the team knows where deterioration is occurring, enough context to decide which weaknesses matter, and enough ownership to address the issues that genuinely threaten the product.

The most useful outcome is therefore not:

“Our app is healthy.”

It is:

“We know where our app is healthy, where it is not, and what needs attention next.”

‍

Continue reading