I’m a developer. I was trained to do technical work. I mostly get paid to do technical work. So I tend to think about problems at a technical level.
If they knew all the technical details, they’d probably be able to solve their own problems.
This black box has inputs and outputs. They want me to go inside the box and either change or add to how the inputs affect the outputs. They do this because they need the black box for some reason. Usually the reason is related to a business — they use the black box to make money, either directly or indirectly.
Again: My head is wrapped around what’s going on inside the box. The people I work for care about what’s going on outside the box. They only care about the inside of the box inasmuch as it affects what happens outside the box.
Sometimes there’s a problem here: Sometimes I want to change what happens inside the box without the people I work for asking me to.
Usually this is well-intentioned: I want to improve the code because I want to make it easier to change. Maybe four of the last five new features have been painful to add and I can see a way to make similar future features much easier with just a few changes.
Changes to the inside of the box are risky. They might affect how the inputs create the outputs. The risk might be small in a clean codebase, but it always exists. So if I’m going to make a change, I should have a reason.
Changes to the inside of the box have an opportunity cost. I have to spend time on them. Spending time on something means that I don’t spend that time on something else. So what I spend my time on matters. It should provide a benefit — at least as much benefit as that something else.
The business case for a change is our reason for doing it from a perspective outside of the technical black box. How does it improve the lives of the people I’m working for? Why is it worth the time they pay me to spend on it? Why is it worth spending that time on it versus spending that time on something else?
If you can’t give a reason for making a change that makes sense from the perspective outside of the black box, you should not make that change. Period. You introduce risk and opportunity cost at no benefit to the users of your product. That’s bad for business.