Why ERP Implementations Stall, and How to Spot It Early

You signed in Q1, go-live slipped, and the floor still runs on spreadsheets. The 5 reasons ERP projects stall, and how to spot each one early.

You signed with the ERP vendor in Q1 and were promised go-live by Q3. It is now the following spring, the invoices keep coming, and the floor still runs on the old spreadsheets.

That is a common way for an ERP implementation to go wrong, and it is rarely the software's fault. Nobody involved was incompetent. The project ran out of patience before the system ran out of gaps, usually through one of 5 failure modes, and by the time it was visible the budget to correct it was gone.

This post covers those 5, how to tell which one you are in, and what to do about it. It is written for an owner partway into an implementation that is not going well, or about to start one and trying to avoid it.

Failure mode 1: the requirements were gathered from the wrong people

Requirements typically get collected from managers, in a conference room, describing how the process is supposed to work. The people who actually run the process are on the floor, and they are not in the room.

The gap between the documented process and the real one is where implementations die. The real process includes the workaround for the part that never fits the standard flow, the spreadsheet that bridges two systems, and the thing that only one person on second shift knows how to do. None of that reaches the requirements document, so none of it reaches the build. It surfaces at go-live, when it is expensive.

The correction is unglamorous. Interview the operators before writing a line of code, on site, watching the work. In field operations this means a ride-along. What you are collecting is not a wish list, it is the real shape of the operation.

Failure mode 2: the scope was the whole company

Buying an ERP tends to trigger an instinct to fix everything at once, because the license is priced for the whole thing and partial adoption feels like waste. So the project scope becomes every department, every workflow, one cutover.

That structure has no early signal. The first honest feedback arrives at go-live, which is also the last moment you can afford to change anything. A project with an 11-month feedback loop is not a project, it is a bet.

The alternative is to pick the highest-friction workflow, ship it, and let it be judged. It produces an uncomfortable conversation in month 1 instead of month 11, which is the entire point.

Failure mode 3: nothing was real until it was too late to react

Most implementations show the customer configuration screens and project plans for months before showing them anything that behaves like their system. Abstraction is comfortable for the vendor and useless for the buyer, because nobody can react to a Gantt chart.

Put a rough, branded version of the system in front of them in the first days. Not functional, just theirs, with their logo and their vocabulary. It turns a scary abstract software project into a concrete thing people can point at and correct. Corrections in week one are free.

Failure mode 4: adoption was treated as training

This is the one that quietly kills systems that technically work. The build finishes, a 2-day training happens, and 6 weeks later half the floor is back on the old spreadsheet because the new screen takes 40 seconds and the spreadsheet takes 10.

A system nobody uses is worth less than the spreadsheet it replaced, because now you are paying for both. Adoption is not a training event at the end. It is a design constraint from the start, and the constraint is simple: if the new way is slower than the old way at the moment of capture, it will lose.

The teams that get this right treat the people side as equal to the software side. In practice that means an in-app tutorial that walks each user through their own job, and a way for them to get certified on the system rather than sitting through a session and signing a sheet.

Failure mode 5: you cannot change it without a ticket

The operation changes the week after go-live. It always does. A new customer requirement, a new station, a new part family. If every change is a vendor ticket with a quote and a queue, the system starts drifting from the operation immediately, and the gap only widens.

Within a year the workarounds are back. Not because the ERP was wrong at go-live, but because it was frozen at go-live while the shop kept moving.

This is a structural question, not a software one, and it comes down to who holds the development environment. Manufacturing data sovereignty covers the 4 dimensions that decide it, and extensibility is the one that governs this failure mode.

Finance Accounting, invoicing, payroll. Usually the part that works.
Planning ERP and MES: orders, routings, inventory, schedule.
The handoff layer Spreadsheets, paper travelers, email threads, whiteboards. Where the floor and the system actually meet.
The floor Machines, operators, inspection, shipping.
Figure. Most replacements swap the planning layer and leave the handoff layer untouched. The handoff layer is where the data is lost, and it is the layer a new system inherits unchanged.

Where each approach tends to break

ApproachMost common failure modeWhen you find out
Big-suite ERP, full cutoverScope and adoptionAt go-live
ERP plus heavy customizationFrozen at go-live, driftMonth 6 to 12
Internal buildKey-person riskWhen the developer leaves
Partner build, phasedUnder-scoping the first sliceWeek 2 to 4

The bottom row is not immune to failure. It fails earlier and cheaper, which is the only property that reliably distinguishes projects that recover from projects that do not.

The contrarian part: a stalled implementation is often the correct outcome

Not every stalled ERP project should be rescued. Some stall because the operation discovered, halfway in, that the system does not fit how it actually runs. That is not a failure of the project, that is the project working. The expensive mistake is pushing through to go-live on a system everyone already knows is wrong, because the invoices are sunk and cancelling looks worse than shipping.

Sunk cost is the most reliable predictor of a bad ERP outcome we see. The question to ask is not how much has been spent. It is whether the people who will use it every day believe it fits.

A 5-question check

Run this on an implementation in flight. Every no is a failure mode already in motion.

1. Did anyone who does the work daily get interviewed on site before the build started?
2. Is there a single workflow that will go live and be judged before the rest is built?
3. Has anyone outside the project team touched something that behaves like the real system?
4. At the moment of capture, is the new way faster than what it replaces?
5. After go-live, can your team change a form or a report without a vendor ticket?

0 to 2 yes means the project is on the standard path to a stall. 4 or 5 means you are running it the way it should be run, whoever is building it.

What this looks like when it works

At GatorStep, a marine manufacturer, the shop moved off Microsoft and Odoo onto one system in 2.5 months and has run on it since August 2026. GatorStep holds the development environment.

At Newpark, field data now moves from the field to the invoice without anyone retyping it.

Questions we get

We are 8 months in and not live. Is it recoverable? Usually, but not by continuing on the same plan. The move is to carve out one workflow, get it into real use, and let that tell you whether the underlying system fits. Continuing to build in the dark is what turns a late project into a dead one.

Our vendor says the delays are our fault for changing requirements. Requirements change because operations change. That is normal and any approach that treats it as an exception will keep producing this argument. The real question is whether the system can absorb change after go-live without a quote.

Should we finish this implementation or start over? Ask the people who will use it daily whether it fits how they work. If the answer is no and it has been no for months, more budget will not change it. If the answer is mostly yes, the problem is probably scope sequencing rather than the system.

How long should this take for a mid-market manufacturer? The first workflow in production should be weeks. GatorStep moved off Microsoft and Odoo onto one system in 2.5 months. If the plan says a year before anyone touches anything, the plan has no feedback loop in it.

Is a phased rollout not just slower? It is slower to full coverage and much faster to the first useful thing. It also means the mistakes are found while they are still cheap. Full cutover optimizes for a date. Phased rollout optimizes for being right.

What happens to our existing systems? Most of them stay. QuickBooks, shipping, and the tools your team already knows usually keep their jobs and get connected. Wholesale replacement is a choice, not a requirement, and it is the choice that produces the most failure modes at once.

What is next

If you are early, the highest-value thing is not selecting software. It is drawing the real process, from the people who run it, before anyone quotes a build. If you are mid-implementation and stalling, carve out one workflow and get it into real hands this month.

If you are partway in and want a second read on which failure mode you are in, write to Kol with where the implementation stands. If you are weighing paths rather than rescuing one, can I build my own ERP? compares building, buying, and partner-built on cost and failure modes, and the NetSuite alternatives cover the buy path in detail.