Shortcuts should be temporary
You take a shortcut to get a feature out for an important customer demo. They love it and sign up. This convinces an investor to fund the next stage of the startup. Great decision!
Two years later the latest developer on the project wonders why the hell everyone has to work round this shortcut. So much code has been built on top of it that it’s going to take a big effort to replace it with something that doesn’t need workarounds. Bad decision?
My take is the original decision, in the context of a startup searching for customers and growth, is good. You need to show the value of your product to your potential customers when you have them in front of you. A perfectly coded feature two weeks after they’ve chosen someone else isn’t worth much.
The mistake is not fixing the shortcut before too much code and data depends on it. It is all too easy to move onto the next feature, either forgetting about the shortcut or putting a ticket on a backlog that’s unlikely to get picked up. Your engineering team should be strong enough to make the time to get this work done before it becomes too much of a drag on productivity.
What was the last shortcut you took? How much effort would it be now to do the non-shortcut version? Is that on your plan?