Nearly ten years ago, an engineering company that designs and builds one-off machines asked us for something modest. Its engineers filled in paper time cards each week, someone typed them up, and someone else chased the ones that were missing. Could we put that online?
That system now runs most of the company. Here's how it got there, and why we think it's the right way for software like this to grow.
Phase one: time cards
The first version did one job well. Every employee could fill in their week from the office, from home or from a phone. The system knew who still owed a time card and sent the reminders itself. Hours were booked to projects and types of work, so for the first time the company could see where its time actually went, and compare it with what each job had been budgeted.
That last part mattered more than anyone expected. Once the hours were reliable, the obvious next question was what each project was really costing.
Then parts, purchasing and the rest
A one-off machine is mostly hours and parts. With the hours in place, parts came next: part lists for each project, broken into sub-assemblies, turned into purchase orders, approved, and checked off as goods arrived. Late deliveries now show up against the project they'll hold up, rather than being found on the shop floor.
After that came the sales pipeline, so that enquiries and quotes live in the same place as the projects they turn into, and a growing set of reports, from a single project's margin to an overview of the whole company on one page.
None of this was planned at the start. Each piece was added when the last one had proved itself, and each one paid for the next.
Nobody commissioned a company-wide system. They commissioned time cards, and kept going because it worked.
Keeping it current
Software that lasts this long has to be looked after, not just kept running. Over the years we've:
- Given it a new interface, so it's as pleasant to use as anything the team uses at home, without changing the data underneath.
- Built up thousands of automated tests that check the system's behaviour every time we make a change, so improvements don't break what people rely on.
- Started moving it onto a modern database platform, with those tests there to confirm the results come out the same before and after.
Today it holds a couple of hundred thousand parts, tens of thousands of purchase orders, and close to a decade of time cards. It's still looked after by the people who built it.
What we'd take from it
- Start with the job everyone hates. Time cards weren't glamorous, but they were a weekly irritation for everybody, so the benefit was felt immediately.
- Good data makes the next step obvious. Reliable hours led straight to project costs, and project costs led to everything else.
- Grow it, don't replace it. A system that adapts as the business changes is worth far more than one that's perfect on the day it launches.
You can see what the system looks like today in our engineering operations case study. And if your team has its own version of the time card problem, we'd like to hear about it.