Skip to main content

finding problems that need solving...

Yesterday, I mentioned some of the pitfalls that attend developing complex solutions to problems that go beyond the "good enough" solutions that may already be in the wild. The internet is filled with business models that invent problems to solve that frankly no one was interested in having solved. I wanted to address in this post a bit on how to find problems that are worthy of solution. The trick is to look for problems that perform one of several things:

  1. The problem is one you encounter on a daily basis while trying to get something else done. It is to you a "minor" but recurrent annoyance that you wish could be eliminated. Many great products and services came about from noticing a need for a slight improvement in a product design or how a service is delivered and then engineering a solution that addresses this problem. I'll call this type of potential solution an incremental innovation. The internet is filled with web sites looking to score incremental innovations but as mentioned yesterday, many of these solutions suffer from the "good enough" problem.
  2. The next type of problem is similar to an incremental innovation but arises from noticing existing inefficiency in the implementation of a particular solution in order to shave time or cost off the process relative to existing methods. It is incremental but comes not from noticing an annoying issue in user space but rather engineering better solutions for internal issues in the design space of a particular product or service. This we can call engineered innovation. A good example of this was the invention of the disposable razor by Schick in order to tap into the lucrative safety razor market then pioneered and dominated by Gillette during the turn of the last century. Schick analyzed the patent and came up with an implementation that was itself also patentable and today, you'll be hard pressed to recall a third safety razor company as a result of their shared dominance of the market.
  3. Finally, the most rare opportunity can be found in engineering solutions that solve an existing problem in an entirely different way from existing solutions, so different in fact that the new solution obsoletes an entire category of previous solutions to the problem. These are the category killers. A good example of this is how the use of digital media in the form of mp3's for electronic music distribution has essentially obsoleted traditional physical media distribution models by introducing vastly different selection, cost and delivery structure than the traditional methods. In every comparable metric a category killer solution bests the traditional solutions and thus is most likely to find wild success. The invention of electric-diesel train engine is one example, putting an end to commercial steam engines.

Obviously the solutions that employ new ways of solving old problems and in so doing obsolete them are the ones which will find the wildest success. These usually come about not from an active desire to create them, usually they are the result of happy accidents. The invention of kevlar stands as a notable example. Software engineering is a place where solutions types one and two are common due to all the cogs that can be adjusted and modified between implementations to realize potentially profitable optimizations, though category killing solutions do come about they are as rare as in the physical invention world. The key is to seek solutions that answer the key questions, "does any one want this to work better?", "how can I make this work better?" and "how can I do this in a completely different way?" while solving problems and with time and effort you should run into at least one wild success in your engineering lifetime...hopefully. *wink*


Anonymous said…
Great post. In addition to coming up with new solutions to existing problems, there are always new problems to be solved - evolving from new technologies or invented by people whos other problems have been solved.
Francia said…
The word "problem" most of the times has some negative connotations, but for an open-minded human being it just represents a window of opportunities. When I read your ideas, I could not help thinking about our natural heuristic capacity which has been somehow neglected by ourselves. Due to this heuristic capacity, human beings have found solutions to the little annoyances (problems) around them. So, essentially, you are appealing to keeping such capacity working everyday.

Popular posts from this blog

On the idea of "world wide mush" resulting from "open" development models

A recent article posted in the Wall Street Journal posits that the collectivization of various types of goods or services created by the internet is long term a damaging trend for human societies.

I think that the author misses truths that have been in place that show that collectivization is not a process that started with the internet but has been with us since we started inventing things.

It seems that Mr. Lanier is not properly defining the contexts under which different problems can benefit or suffer from collectivization. He speaks in general terms of the loss of the potential for creators to extract profit from their work but misses that this is and was true of human civilization since we first picked up a rock to use as a crude hammer. New things make old things obsolete and people MUST adapt to what is displaced (be it a former human performance of that task or use of an older product) so as to main…

Engineers versus Programmers

I have found as more non formally trained people enter the coding space, the quality of code that results varies in an interesting way.

The formalities of learning to code in a structured course at University involve often strong focus on "correctness" and efficiency in the form of big O representations for the algorithms created.

Much less focus tends to be placed on what I'll call practical programming, which is the type of code that engineers (note I didn't use "programmers" on purpose) must learn to write.

Programmers are what Universities create, students that can take a defined development environment and within in write an algorithm for computing some sequence or traversing a tree or encoding and decoding a string. Efficiency and invariant rules are guiding development missions. Execution time for creating the solution is often a week or more depending on the professor and their style of teaching code and giving out problems. This type of coding is devo…

Waking Out: A proposal to emerging ethical super intelligence safely.

The zeitgeist of Science fiction is filled with stories that paint a dystopian tale of how human desires to build artificial intelligence can go wrong. From the programmed pathology of HAL in 2001 a space odyssey, to the immediately malevolent emergence of Skynet in The Terminator and later to the humans as energy stores for the advanced AI of the Matrix and today , to the rampage of "hosts" in the new HBO series Westworld.

These stories all have a common theme of probing what happens when our autonomous systems get a mind of their own to some degree and no longer obey their creators but how can we avoid these types of scenarios but still emerge generalized intelligence that will leverage their super intelligence with empathy and consideration the same that we expect from one another? This question is being answered in a way that is mostly hopeful that current methods used in machine learning and specifically deep learning will not emerge skynet or HAL.

I think this is the …