A structured way of finding legitimacy of any solution
In a straightforward 2-step mental inquiry, you can generally quantify the suitability and legitimacy of almost anything from coding solutions to important choices in life.
We often come up with ideas that do not qualify as a viable solution to a problem. On the other hand, sometimes, they (those who oppose our legit ideas) develop solutions that are not even a legitimate alternative to ours. Often, we are on our own, making decisions for ourselves. It all boils down to the following question:
How can we measure the applicability of a solution?
Medical professionals are often quite systematic about triaging a situation, evaluating an instrument and choosing a method. A nursing journal article1 inspired writing this post, attempting to answer the above question.
Choose any of the following goals, and it will become a great candidate solution for the problem you are trying to solve.
- Be always accurate
- Be never inaccurate
Well, never and always are the strongest adverbs, so striving towards them is the best we can do. Therefore, when presented with a solution, ask yourself the following questions:
- Is it accurate and valid? Meaning, is it satisfying the core and quality attributes required, according to the problem defined?
- Is it consistent and reliable? Regardless of the input type and size and at any given time, does it reliably satisfy (1)?
We come across this debate all the time. RDBMS vs. NoSQL. A team is designing a logging app, and someone preferred PostgreSQL in their proposed solution. Another team was designing a social network solution, and they proposed to rely entirely on MongoDB.
Let us propose a couple of hypotheses for the scenarios above.
The premise of a logging solution is that it'd get out of the app's way and be super fast. Can we develop a logging solution using a RDBMS? Sure. Can it be as performant, perhaps no? Even if it is performant, will it remain that way on the arrival of a large quantity of data. Highly unlikely.
The premise of a social network is to retain and query the social graph and help people find new contacts based on their connections. Can we build a social network entirely on a document store? Yes. Will it be as convenient to find degrees of separation from one connection to others, let us say, as a graph database? Highly doubt that.
We can use the aforementioned thinking tool to challenge any such potential solution.
What if the ideas need work?
There are no bad ideas. Less than ideal ideas can be recoverable. Try to put them at the center of the above graph and try to remain along the yellow line. When it cannot be recovered, we can still log it for future reference tagging as "ideas considered." This is a great practice many under-estimate the value of.
A mental exercise can quickly and methodically evaluate a candidate solution to a problem in just two questions and helps you start to ask the right questions.
1 Heale, R. and Twycross, A., 2015. Validity and reliability in quantitative studies. Evidence-based nursing, 18(3), pp.66-67.