
What to automate first in a small business
Choose a first automation by scoring the work, data, risk, ownership, and reversibility. Then validate one pilot before you expand it.
Replace risky parts of an older system in controlled stages. Learn how seams, a facade, contract tests, parallel runs, and rollback turn modernization into managed delivery.

Your older system holds prices, exceptions and working practices that nobody fully documented. A rewrite must recover that behaviour while keeping up with changes to the original. The business does not pause for the replacement.
An incremental approach moves a defined business flow across while the old route remains available during the transition. The Strangler Fig pattern describes this approach. Smaller changes limit the scope of each intervention. They do not make rollback automatic.
Modernization as a series of reversible steps
Each stage should deliver value and preserve a route back.
1. Measure behaviour
Flows, failures, performance and who actually owns the data.
2. Create a seam
Place a facade or adapter before the old system.
3. Migrate one flow
Start with a valuable but manageable slice.
4. Compare outcomes
Contracts, a parallel run and comparison across a full business cycle.
5. Retire the old path
Only after evidence, monitoring and a rehearsed rollback that worked.
Start with active screens, scheduled jobs, integrations and manual corrections. An incidental export may be the file finance needs for the monthly close. Documentation alone will not tell you which workarounds have become part of the process.
For each critical flow, record the input, expected result, system of record and dependencies. Name its owner. Include failure behaviour and the manual route people use when a provider is unavailable. Check supplier access and licences before designing a replacement that depends on them.
Choose a problem with an observable impact, such as a delayed close, repeated correction or an unsupported database. The behaviour you discover becomes the basis of regression tests. An unusual discount may be contractually valid. Changing it quietly would change the business rule rather than repair the software.
Replacing the whole application is only one option.
On a smaller screen, scroll the table horizontally.
| Choice | Consider it when | What must be true |
|---|---|---|
| Stabilize | Incidents or security debt prevent safe work | Rule changes can wait while monitoring and recovery improve |
| Refactor | The problem is in a bounded part of the code | Behaviour, tests, and an owner are known |
| Incremental replacement | A flow has a seam and operations cannot stop | The old route, measurement, and rollback remain available |
| SaaS replacement | The process is standard and differentiation adds little value | Data, integrations, pricing, and terms are acceptable |
| Full rewrite | Scope is small, stable, and can be frozen | Migration, acceptance, and retirement of the old version are prepared |
One programme can combine these choices. Sign-in may need stabilization while orders move across in stages. A regulatory constraint that rules out the old platform can also make a long period of coexistence impractical. Even a full rewrite still needs documented behaviour, data migration and a recovery plan.
Compare total ownership costs, including support, licences, infrastructure, training and parallel operation. Count internal staff time as well as the supplier quote. Our calculator offers an initial frame for potential benefit, not a promised return.
A useful seam may be an API route, a screen or an overnight import. A facade directs requests to the old or new implementation while preserving the external contract.
The hardest module is not necessarily the best pilot. Pick a flow with a clear owner, an observable result and few dependencies. It gives the team a place to prove deployment, monitoring and rollback before touching the operational core.
A translation layer can map old identifiers and states into the new domain model. Give it a removal condition. New components can remain modular until operating evidence justifies extracting a separate service.
Two applications writing the same fact can create conflicting states. Declare one system of record for every migrated flow. The other may receive a readable copy, but it does not own changes.
Moving ownership requires its own step. Validate field mappings and data quality, then use a repeatable transfer that can resume safely after interruption. Once traffic switches, stop writes on the old side or route them through the new contract.
Application-level dual writes are fragile during a partial outage. One committed change with repeatable delivery is easier to reconcile, although it still needs lag monitoring and a place for messages that cannot be processed.
For personal and financial records, decide who may alter data, how the decision is logged and how state is restored. Our security guidance helps frame those access and accountability questions.
For a calculation, both implementations can process the same input while users continue receiving the original result. Classify differences as defects, approved rule changes or consequences of historical data.
Do not repeat a payment or customer email for comparison. Use recorded inputs and an isolated mode with no side effects. Contract tests based on production examples help verify the interfaces.
Agree acceptance criteria before collecting results. Specify example data, permitted differences, response time and checks for lost events. Name the approver and the response to a mismatch. New findings during a takeover can affect scope. The business terms explain how changes are handled.
A routing switch can restore the old path only while that system can still process the requests. Database changes must remain compatible throughout the transition.
Switching a feature off is not enough once the new version has created records the old one cannot read. The plan must say how long return remains possible, what happens to new data and who makes the call. Include the worst acceptable impact and how the team will detect it.
After switching, monitor agreed outcomes, lag and manual intervention. Retire the old path after the rollback window closes and the process owner accepts the results. Otherwise the business keeps operating two systems.
Full rewrite or gradual replacement
The ability to isolate behaviour matters more than the age of the technology.
Full rewrite
Fits a small scope, well-understood rules and a coexistence period that stays short.
Gradual replacement
Protects ongoing change, unclear behaviour, and a system the business still depends on.
No audit finds every hidden rule. The first stage should therefore prove one small flow. Measure whether it reduces corrections, improves recovery or allows an old component to be retired safely. Lines rewritten do not establish any of those outcomes.
A software modernization engagement begins with that flow and its owners. Choose the technology after agreeing what the stage must preserve and how the business will accept it.
Maroš Bednár prepared the article with AI support for research and language editing. He reviewed and approved the technical conclusions, examples, and final text.

Choose a first automation by scoring the work, data, risk, ownership, and reversibility. Then validate one pilot before you expand it.
A model plan for one recurring task. Measure today’s work, set data permissions and output review, then decide whether the trial should continue.

Microservices buy independent change at a real operating cost. Compare both models through boundaries, ownership, data, deployment, and signals that justify extraction.