ยท 4 min read
Case study: the portal an SME waited 18 months for, shipped in 11 weeks.
One engagement, told in numbers. Owner-led wholesaler, about 60 people, 6 of them in and around software plus an agency. Details are shifted enough that the company cannot be recognised; the shape and the orders of magnitude are real.
The starting point
A customer portal had been "three months away" for 18 months. The agency invoiced about EUR 26 000 a month against a contract nobody in the company could technically assess, and the internal lead developer, the one person who understood both the ERP and the customers, spent his weeks reviewing the agency's work without the authority to reject it. The owner's question on the intro call: "Am I being taken for a ride?" The honest answer turned out to be: partly, and partly you built the ride yourself.
What the diagnosis found
- The contract paid for capacity, not outcomes: eight named profiles, no acceptance criteria, no delivery dates with consequences.
- Two-thirds of the portal already existed in working form; the missing third was blocked on decisions the company had never made, not on code.
- The internal lead was doing the coordination job of a head of software at the mandate of a reviewer, at risk of leaving over exactly that.
What changed
Advisory scope, 3 days a month for 6 months. The agency contract was renegotiated to a narrow maintenance scope with acceptance criteria, from about EUR 26 000 to about EUR 11 000 a month. The lead developer was promoted to head of software, with the title, the salary step, and the mandate to reject work. The portal's open decisions were forced in two workshops with the owner, and the remaining build was done by the internal team of four with the agency on call.
The numbers
| Before | After 6 months | |
|---|---|---|
| Agency contract, monthly | About EUR 26 000 | About EUR 11 000 |
| Saving, annualised | About EUR 180 000 | |
| Customer portal | 18 months late | Live 11 weeks after the decisions were made |
| Head of software | Nobody with the mandate | The person already doing the job |
| My days on the engagement | 18 in total |
Why it worked
Nothing here required new technology. It required someone who could read the contract and the codebase in the same week, say out loud that the blocker was the owner's own open decisions, and give the one competent insider the mandate he had earned. That is what oversight of a supplier looks like when it works: the agency did not become the villain, the contract just started paying for outcomes. Most owner-led companies in this situation are one promotion and one renegotiation away from unblocking themselves.
Anonymised by design: sector, sizes and timings are shifted, the structure of what happened is not. References, including for this engagement, on the intro call.