Rewrite or improve your existing software? How to decide

Compare the work needed to improve your current product with the full cost and risk of replacing it. Start with the business requirement and the evidence in the existing system.

If your software is difficult to change, you need a decision about how to move it forward. That could mean a targeted repair, replacing one part of the system or building a new version.

The decision applies to websites, mobile apps and internal business tools. Compare the options against the result your business needs, the work already required and the effect on people using the current product.

Define the requirement that the current system cannot meet

Write down the actual problem. You may need a new workflow, support for a different platform, a more reliable integration or a release process another developer can use. Describe how you will know the requirement has been met.

Then identify what prevents the current product from meeting it. Ask for evidence from the code, dependencies and operating setup. A difficult change and an impossible change need different plans.

List what a replacement must preserve

Inventory the workflows, stored data, integrations and access rules people depend on. Include administrative tasks, reporting and recovery procedures as well as the visible customer features.

For a website, include important URLs and content. For mobile software, include supported devices and release requirements. For business systems, include the tasks staff perform around the software and the records they must retain.

Compare three practical options

A targeted improvement changes the affected area while keeping the rest of the system. Estimate the repair, the checks needed around it and any remaining limits.

A gradual replacement moves a defined part of the product to a new implementation. Identify the boundary, how old and new parts will exchange information, and how you will confirm that users can move safely.

A full replacement rebuilds the agreed product. Include data migration, parallel operation, training, testing and retirement of the old system in the estimate. Identify which assumptions could change the scope.

Test the most uncertain assumption

Before committing to the full project, investigate the question most likely to change the decision. That might be whether a difficult integration can be replaced, whether data can be migrated accurately or whether an important workflow can be isolated.

Give this investigation a clear question, a defined limit and a written result. Use the result to revise the scope before agreeing a larger delivery plan.

Agree delivery and acceptance before development

For the chosen option, define the deliverables, review points and checks. Explain how existing users will continue working and what happens if a release or migration does not meet the acceptance criteria.

Include ownership, documentation and continued support. The plan should leave your business able to operate and develop the result after the initial project ends.

If you need evidence before choosing an approach, you can commission a scoped software review.

For a project that already has a clear direction, discuss the implementation with me.

Previous
Previous

Why large screen files can make software harder to change