Why read this?
Because almost everyone, one day, has to replace an old system with a modern ERP. And because the difference between a great project and a nightmare often comes down to very simple things: real resources, written decisions, a sustainable pace. Here, we tell a story that looks like so many others — then we give the method so that yours ends well.
The setting
Client side. A very lively cooperative, many varied users, end-of-life accounting software and handy little in-house tools. Ambition: bring everything together in an ERP, with statutory and analytic accounting, external portals and fine-grained access rights.
Provider side. A serious, motivated integrator, agile method, two-week sprints, a promise to proceed in stages. A modest starting budget, "to get the machine going", with the idea of adjusting later.
The story in brief
Based on a real case submitted to me a year ago
Act I — The momentum. They start strong. The first workshops go well. The first pieces of functionality are delivered. Everyone wants to believe in it.
Act II — The mountain behind the hill. An external portal emerges as the major topic: hundreds of users, very fine-grained access profiles. A first technical approach is tried… then abandoned: risk to data access. Everything has to be redone, more solidly — and therefore taking longer.
Act III — Time stretches, resources run short. Sprints are extended "to finalize", but the work list grows faster than capacity. The integrator announces reinforcements, hires… that never arrive. Key staff turn over, responsiveness drops. The client, for its part, cooperates: it makes trade-offs, sometimes gives up on requests that are too heavy, and even offers the help of a third party to unblock the portal.
Act IV — The final blow. Several sprints are "done", a crucial sprint is at 75%, but the migration is not delivered. The relationship breaks down. What follows plays out in court.
Where it all tipped
- Chronic understaffing: real capacity below the promise. Reinforcements announced but not confirmed, departures not covered. The project runs out of steam.
- Hesitant technical choices on the portal: a costly back-and-forth that delays everything else.
- Initial underestimation: security and access rights had not been scoped before industrializing.
- Few "official" replannings: they extend, they hope, but they don't rewrite the project contract fast enough (what is done / what is no longer done / the real deadlines and resources).
Simple lesson: With resources, a project can absorb the blows. Without resources, it breaks.
A real case that cost the provider dearly
Real case; amounts decided by the judges. Interest varies by year and payment date.
What the court ordered to be paid
- Damages (project not delivered in usable form): €120,000.
- Contribution to the other party's legal fees (article 700): €5,000 at first instance, €10,000 on appeal.
- Court costs (dépens): €74.50 at first instance; appeal costs will be set later.
- Interest at the statutory rate: it is added to the €120,000 until payment.
Visible subtotal (excluding interest and appeal costs): €135,074.50.
This ordered total is higher than the amounts invoiced and collected by the provider.
What you also pay in real life
- Lawyers: often several tens of thousands of euros depending on duration and complexity.
- Internal time: meetings, gathering documents, follow-up — never reimbursed.
- Insurance: deductible, possible premium increase, sometimes exclusions depending on the contracts.
- Provisional enforcement: you may have to pay immediately, even if you appeal.
- Reputation: weakened references, lost opportunities.
How to avoid getting there (the method that protects)
1) Lay the foundations before moving forward
- Written and signed diagnostic (what is replaced, what is kept, the flows).
- Security and access rights: a preliminary test on the portal before any large-scale development.
- Data migration: volume, quality, validated test dataset.
2) State in black and white what makes the rest possible
- Assumptions / exclusions / dependencies co-signed (and kept up to date).
- Team availability commitment: who, how much, continuity, replacement rules.
3) Replan officially
- Every change request → written note (cost, lead time) before moving forward.
- If capacity drops or complexity rises: amendment (scope/timeline/budget) or an openly acknowledged pause.
4) Manage at the right pace
- Regular committees with clear minutes: decisions, risks, actions, deadline.
- "Go/no go" milestones: if it isn't ready, you fall back cleanly, you don't stubbornly press on.
Golden rule: sign what you do, do what you signed.
Quick checklist
Goal: that everyone knows what to produce, by whom, by when, and how it is proven.
- Signed diagnostic — scoping note, flow mapping, scope replaced/kept (dated and signed PDF).
- Security & Portal – preliminary test — access mockup (profiles/permissions) + test report (minutes + screenshots).
- Data migration — migration plan, volume, quality, test dataset (execution log + discrepancy report).
- Co-signed assumptions / exclusions / dependencies — versioned appendix attached to the contract/amendment.
- Team availability commitment (SLA) — resource schedule, minimum capacity, replacement rules.
- Batched backlog & entry/exit conditions — autonomous batches, "ready to start" / "done and validated" tracked.
- Written & signed change requests — form with cost/lead time/risk impact, reference number.
- Go / no go milestones — milestone minutes (OK / KO / actions), dated decisions.
- Committees with actionable minutes — short minutes: decisions, risks, actions, owners, dates.
- Quality & acceptance — test plan, test datasets, acceptance report per batch, tracked defects.
- Official replanning in case of deviation — amendment (scope/timeline/budget) before the next sprint.
- Legal & insurance — professional liability check (scope, deductibles), compliant clauses.
- Crisis communication (if blocked) — 1-page plan (who calls whom, within 24h, options A/B).
- Closure & handover — user/operations guide, script inventory, access list, closure report.
A glossary for everyone
- Agile method: moving forward in small regular steps, with frequent feedback.
- Sprint: a two-week period to plan, build, demo and validate.
- Backlog: prioritized list of needs.
- Preliminary test (formerly POC): a quick trial to check that an idea is sound.
- Entry / exit conditions (formerly DoR/DoD): what is needed before starting / what proves it is done.
- Availability commitment (formerly SLA): how many people, how many days, and team continuity.
- Responsibility matrix (formerly RACI): who decides, who does, who helps, who validates.
- Article 700: contribution to the other party's legal fees decided by the judge.
- Dépens: court costs (bailiff, court registry…), charged to the losing party.
- Interest at the statutory rate: interest added to the sums owed as long as they are unpaid.
- Provisional enforcement: you must pay immediately, even if you appeal.