The project
iComply is the software UK dental practices use to stay on top of compliance and turn up to a CQC inspection with everything in order. Four of us rebuilt it from scratch over eighteen months in Django and React: compliance tasks and calendars, audit readiness, dashboards, subscriptions and single sign-on across the rest of the Agilio suite. The old product was functional and unloved, and the replacement was a genuine step up for the people living in it every day.
How it fits together
- A ground-up rebuild of the legacy compliance product in Django, PostgreSQL and React, by a team of four engineers over eighteen months.
- Compliance tasks, policies and calendars: the recurring work that keeps a practice inspection ready, plus the dashboards that show a group where it stands.
- Subscriptions and single sign-on, so iComply sat properly alongside the other products in the Agilio suite instead of beside them.
- A finance module, and inside it the double-entry ledger that gives this entry its lesson.
The trade-offs that mattered
Demo every week, without exception
A working build in front of the client every week for eighteen months. It kept scope honest, surfaced misunderstandings while they were still cheap, and meant nobody was surprised at the end. It is the practice I have taken to every project since.
Design the replacement, do not port the old one
The system being replaced worked and nobody enjoyed using it. Treating the rebuild as a chance to rethink the interface, rather than a like-for-like port, is where most of the value to daily users came from.
Double-entry, because they said dual-ledger
A single offhand phrase became six weeks of accounting machinery: journals, balancing entries, tax handling. Nobody asked what they meant by it, because the term sounded specific enough that asking felt like admitting ignorance. That silence cost more than the six weeks, because every later feature had to be threaded through it.
What I took from it
The delivery was the best I had worked on: weekly demos, feedback gathered in the room, decisions made in front of the client rather than guessed at. Then late on, they mentioned in passing that they wanted a dual-ledger system, and we took the phrase at face value. Six weeks of double-entry accounting and tax handling later it turned out they had read the term somewhere and did not know what it meant. What they wanted was a simple finance ledger: about a week of work. Instead we handed them a system they had to live with every time they asked for a new feature, and the pain compounded for months. The demo habit that served us for eighteen months is exactly what we skipped on the one thing nobody had put on a screen. Ask what a term means even when you are certain you will look daft asking.