Architecture & Use-case
"Technology looking for a Problem" or "Boiling the Ocean" !!!
How many times we heard these 2 statements in the computer industry? It's more common in the startup world.
What is the fix? The short answer is "a use-case".
Let's take a look at 2 examples:
[1] Java --> "Fix C++ complexity"
Nearly 20 years back, the great engineers of Sun(Patrick Naughton, James Gosling, Bill Joy and many others) did not like the complexity of C++ programing language. They went & solved their own problem. The result is Java. (Click on Naughton's link to read about why even Java born!)
Like them, there were million other engineers hated C++ complexity. So they joined the party with Java. This resulted in massive success of Java. Rest is history.
[2]Hadoop -->"Write once-read many times"
Google had a problem with big data. There was no solution available. They built map/reduce, GFS to solve their problem and published a paper about it. Yahoo had the same problem. Doug Cutting designed & built Hadoop. Then there are 1000 other companies are having the same problem. The result is success of Hadoop.
If we look at these 2 examples,
- Use case is obvious (C++ complexity OR write once-read many times)
- No solution available to solve this problem
- Many people has the same problem
It's very critical to have a clear understanding of at-least "one use-case" before designing new products. If not, it will end up either looking for a problem or let's boil the ocean type solution in 1.0 time.