Blog

alternative
20
Mar

The System Worked Perfectly. Then the CEO Asked for the Numbers.

Every software developer loves the moment a project goes live. The features work, customers can use the service, transactions are flowing through the system, and the client is happy. It feels like the project is complete.

Then, a few weeks later, reality sets in.

Management walks into a meeting and asks what seems like a simple question: "How many customers used the service this month?" Another executive follows with, "Which products are customers using the most?" Someone from marketing wants to know whether the latest campaign increased adoption, while the product team asks whether the new feature actually improved customer engagement.

Suddenly, the room goes quiet.

The system can process every transaction perfectly, but nobody can confidently answer those questions. The information simply wasn't captured in a way that makes it useful. The software was designed to perform a business process, but not to help the business understand that process.

It is a mistake that happens more often than people realize.

Many software projects are built around functionality. We focus on making sure users can register, payments go through, orders are created, or services are delivered. Those things are important because they keep the business running. But somewhere along the way, we forget that businesses don't make decisions based on transactions alone. They make decisions based on the numbers behind those transactions.

I learned this lesson while building a platform that managed digital bundle purchases. Interestingly, the platform wasn't responsible for purchasing bundles itself. That responsibility already belonged to two existing systems. One acted as the customer channel while the other handled the actual purchasing engine. My platform sat in the middle, orchestrating the process.

At first glance, it would have been easy to assume there was no need to store transaction data. After all, the other systems were already processing purchases successfully. But I kept thinking about the questions the business would eventually ask. They wouldn't be interested in whether the purchasing engine was working—they would want to understand how the service was performing.

That changed the way I designed the platform.

Instead of creating a database that only stored users and available bundles, I designed it to preserve business events. Every purchase was recorded together with information that would become valuable later: the transaction reference, its status, timestamps, the requesting user, the subscriber receiving the bundle, and the bundle that had been purchased. Every transaction was linked back to a unique user, making it possible to understand customer behaviour over time instead of looking at isolated purchases.

Those design decisions paid off.

The business could now answer questions that simply weren't possible before. They could see how many bundle transactions had taken place each month, identify how many unique customers were actively purchasing bundles, determine which bundles were the most popular, and even see which customers were driving usage. Product discussions were no longer based on opinions. They were based on evidence.

One of the biggest lessons I've learned is that numbers don't appear by accident. They are the result of intentional software design. If you don't think about the questions your stakeholders will ask six months from now, your system probably won't be able to answer them when the time comes.

The best enterprise software doesn't just automate work. It creates understanding. It gives businesses confidence in their decisions because the numbers they're looking at were never an afterthought—they were designed into the system from the very beginning.

Designing Software That Generates Business Insights, Not Just Transactions