Logical Debt is the Missing Root Cause of Software Product Failures
Failures happen regardless of how good we are at doing things, but why are we so keen to prepare to fail?
What’s the logical debt I introduced in Logical Debt is Much More Devastating Than Technical Debt? Let’s discover it together through a story!
Once upon a time, high-skilled engineers were attending a product build kick-off. The slogan of the meeting was “Our product delivers users efficiency.” The product goal was to automate some always-the-same tasks and free the users’ time for more worthy activities.
The product manager started the kick-off meeting by describing with examples and numbers how inefficient the users’ lives were without the product they would build.
“Then, we add a killer feature: our product will provide users with the capability of defining how to automate their tasks and even re-defining the tasks to automate. They’ll do everything they need!” — The product manager exclaimed.
A murmur was heard among the participants. The product manager ignored it and continued praising the ideas supporting the product they would soon sell: users will do everything.
“How can we test ‘everything?’ — One of the high-skilled engineers asked.
“This is a technical problem I expect you to solve! Our Company pays you to address complex stuff!” — The product manager replied scornfully.
“What do you mean by ‘technical problem?’ My question is logical. You can control defined behaviors. Vice versa, you can’t control undefined behaviors. It’s simple. I mean, it’s common sense that you can’t test a behavior you don’t know.” — Quietly replied the high-skilled engineer.
“The number of possible automation and task definitions is astronomic. I can’t list all of them!” — The product manager yelled.
“The theoretical number is astronomic, but do users need those astronomical number of possibilities? We need to learn their mindset and infer a few possibilities our product must offer.” — The high-skilled engineer analyzed.