Maintaining Third-Party Software: You Don't Need the Original Developer

Most businesses eventually inherit software they did not build themselves.

It might have been created by an agency, developed internally by someone who has since left, acquired as part of another business, or commissioned years ago from a supplier that no longer supports it.

The application may still be important. Staff may use it every day. Customers may depend on it. Other systems may rely on its data.

The problem is that nobody is really looking after it anymore.

This is far more common than many organisations realise, and it does not necessarily mean the software needs to be replaced.

Experienced software engineers take over systems built by other people all the time.

Software still needs attention after the project ends

A software project might have a completion date, but the software itself continues operating in an environment that keeps changing.

Operating systems are updated. Browsers change. Cloud services evolve. External APIs are modified or retired. Security vulnerabilities are discovered. Programming frameworks reach end of support.

At the same time, the business keeps changing as well.

Staff want improvements. Customers expect new functionality. New systems need to be integrated. Security requirements become more demanding.

An application can look exactly the same to users while becoming progressively riskier underneath.

That is why software maintenance is not simply about fixing bugs when something goes wrong. It is about keeping a system secure, reliable and maintainable over time.

We can take over software somebody else built

At JAC, we do not need to have built the original application to work on it.

Taking over existing codebases is a normal part of software engineering.

The first step is understanding what exists. That may involve reviewing source code, application architecture, databases, hosting environments, integrations, deployment processes, security, dependencies, testing and documentation.

Sometimes the documentation is excellent. Often it is incomplete. Occasionally there is almost none.

That does not make the system impossible to support.

Experienced engineers can reconstruct how software works by examining the code, infrastructure and data, then progressively documenting the important parts.

Over time, an unfamiliar application becomes a known and manageable system.

Legacy does not mean bad

The word "legacy" often gets used as though it means broken or obsolete.

That is not necessarily true.

A system that has been reliably supporting an important business process for ten years may be extremely valuable. Replacing it simply because a newer technology exists may create more cost and risk than it removes.

The more useful questions are whether the technology is still supportable, whether the system can be secured, whether developers can reasonably modify it and whether maintaining it continues to make commercial sense.

If the answers are positive, there may be no reason to rebuild the application.

In many cases, progressive modernisation is a much better option.

Modernisation can happen gradually

Software modernisation does not have to mean a complete rewrite.

An older application may benefit from upgrading its runtime, updating frameworks and dependencies, moving infrastructure, improving testing or strengthening cyber security.

A dated user interface can be modernised while retaining the underlying business logic. An older system can be given APIs so it integrates more easily with modern software. Deployment can be automated without rewriting the application itself.

This allows organisations to reduce risk progressively while preserving the parts of the system that continue to deliver value.

JAC's approach is to change what needs changing, not rebuild things simply because they are old.

The biggest risk may be knowledge

One of the most common risks we see in long-running software systems has very little to do with the technology itself.

Only one person knows how the system works.

That person might be an employee, contractor or original developer. They know how the application is deployed, which services talk to each other, which unusual behaviours are expected and what to do when something fails.

If a business-critical system depends on a single person being available, the organisation has a significant continuity risk.

Good maintenance gradually reduces that dependency.

Documentation improves. Access is clarified. Deployment becomes repeatable. Backups are understood and tested. Monitoring becomes visible. Technical knowledge is shared across more than one person.

The system becomes an organisational asset rather than somebody's personal knowledge base.

Maintenance should fit the importance of the system

Not every application needs a permanent development team.

Some systems require frequent feature development. Others may need periodic upgrades and security work. Some simply need experienced engineers available when something breaks or needs changing.

The right support model depends on how important the application is, how often it changes and how much operational risk the business is prepared to carry.

JAC can provide that support at the level that makes sense.

We can keep the lights on, modernise a system progressively, work alongside an existing supplier or help determine when replacement genuinely becomes the better option.

Start with a software health check

If you have inherited a system and are not confident about its condition, a software health check can be a sensible starting point.

We can assess the technology, hosting, security, maintainability and development processes, then provide a practical view of what should happen next.

That might include immediate risks, sensible upgrades and longer-term opportunities, as well as things that are perfectly safe to leave alone.

Knowing what not to change is part of good engineering too.

JAC is a software engineering firm rather than a product vendor, which means we are comfortable working across different platforms, technology stacks and generations of software.

You do not need to start again simply because the original developer is gone.

If your organisation depends on software that nobody is properly maintaining talk to JAC for a free no-obligation upfront consultation. We can help you understand what you have, what condition it is in and what actually needs to happen next.

Zachary Bailey

Zac is a tactical software architect and Managing Director at James Anthony Consulting (JAC), which he founded in 2014. With two decades of IT experience, he specialises in delivering custom software solutions to SMEs and driving effective team communication. Zac’s expertise spans project management, technical troubleshooting, and advanced domain knowledge in health and retail e-commerce. His leadership has propelled JAC’s growth, establishing it as a trusted provider in Adelaide and beyond.

Next
Next

Software Project Rescue: Mend It, Don't End It