Business Problems vs. Programming Problems

Knowing the Difference
Fund this Blog

A colleague was once stuck on a task that was taking forever to resolve. Every day, he would say that he was making progress, only to later report that the solution didn't pan out. He was looking through different solutions he found online and was experimenting. After some time, I was tasked to help him get it resolved. The problem was to make sure the cash backs and cash forwards were properly calculated.

Looking at his work and different attempts, I quickly found the problem. The issue he was working on wasn't a programming problem at all. It was a business problem in disguise. It's crucial to make this distinction so we can better approach these challenges.

A Classic Business Problem

On the surface, calculating taxes seems straightforward: total_amount * tax_rate. Easy, right? Not so fast. The real complexity isn't in the multiplication itself, but in the dozens of business rules that dictate how that calculation should happen:

The solution to these questions isn't found in a programming language or an algorithm. It's found in company policy, legal interpretation, and financial strategy. A developer can implement the calculation, but they can't decide the rules. That falls squarely on the shoulders of product managers, legal teams, and finance departments.

To further illustrate, consider these scenarios often mistaken for programming problems:

Programming Problems: Where Developers Shine

In contrast, programming problems are about the how of technical implementation. These are the challenges where your expertise as a developer is paramount, and the decisions are largely yours to make within technical constraints.

You provided excellent examples:


Ask the Right Questions

The solution to my colleagues' issue wasn't to come up with the perfect algorithm. Instead it was to ask the business team to clearly define how cashback is calculated so it can be implemented in code.

The key takeaway for developers is to learn to identify when a problem transitions from a programming challenge to a business decision. Before you dive deep into endless research or complex technical solutions, pause and ask yourself:

By understanding this distinction, you can save countless hours, avoid unnecessary frustration, and ensure that you're focusing your valuable technical skills on the problems that truly require them. It also empowers you to push back appropriately, asking for clarity on business rules rather than trying to invent them yourself.


Comments

There are no comments added yet.

Let's hear your thoughts

For my eyes only