GuidePatterns

The month the tool broke

The job

Time tracking. Every working hour belongs to an engagement, and invoices are built from the record. For years it took a subscription and no thought: a commercial tool, start the timer, stop it, forget it. Then the tool’s app stopped working, and the normal move sat waiting. Pick a new vendor, migrate, learn another interface.

The systems involved

The dead tool, which still held years of history behind its API. My own project management system, built myself, which already knew every client and every open task. The assistant worked in both: it exported the complete history out of the first and built time tracking into the second.

How it works

The export came first, while the account still answered: entries, durations, dates, client references, into files I own. Then a small addition to the project system, a timer and a time-entries table, where an entry belongs to a task and the task already belongs to a client. Invoice drafts read from that join. The build was small because everything it needed already existed. That is the change worth noticing: a small internal tool costs little enough now that buy-versus-build comes out differently. The gain is reach. The hours sit where the assistant can query them, beside the work they describe.

Feed Engine Group, where I am co-owner, replaced a commercial affiliate-tracking product with its own, for the same reason, so the group owns the data. The assistant works on it directly: it adds new programmes, reads trends across all of them, and drafts the emails to affiliate partners from the numbers.

Where this goes wrong

Two risks come with this pattern. The first is the export. The old system answers only until the account lapses, so the reconciliation has to happen while it still does: exported totals checked against the source’s own figures, and single records spot-checked, before anything is retired. The second is the standing cost. One maintainer means a fix waits for whatever else that person is doing that week, there is no vendor to call, and the roadmap is whatever you get round to. Both are the price of the data being reachable.

When it’s a poor fit

The fit is poor when the vendor’s product works and exports cleanly on demand; this build only happened because a dependency broke. It is also poor when several people depend on the tool daily, because one maintainer cannot promise a team uptime. And it is poor when there is no existing system to build into; standing up a platform to hold a timer reverses the economics.

My experience

The hours have lived in my own system ever since, and when something breaks next time, I am the one who fixes it.

Related

All AI pages