Define the problem properly, and you're already well on your way to developing a creative approach to tackle it.

Whether you're learning a new body of knowledge, looking for new ideas to implement, or taking advantage of technology, problem solving requires first a good understanding of the issues -- so good that you can articulate it simply to others.

Then, you can classify the kind of process you need to tackle it, gain the proper expertise and skill, or utilize your experience to work on proposing a better solution.

[...] the Rachid lesson I want to emphasize here is about the danger of complexity. His approach was to always reduce a problem to its purest, most simple form. [...] Once you’re armed with this understanding, you can then, and only then, add back details (and the complexity they require) with confidence.

[...] When tackling a problem, you want to start with its simplest expression. To find a good problem and then make sense of its simplest expression, however, you need the most powerful possible combination of knowledge and skills.

The final lesson is one about pace. Committing to a faster pace to acquire knowledge and skill can greatly increase one's ability to leap ahead on problem solving.

Innovation is a diverse activity. In laboratories and factory floors, universities and coffee shops, or even over a beer after work, people are sussing out better ways to do things. There is no monopoly on creative thought.

However, we do need to be careful, because there is a big difference between a random brainstorm and a concerted effort. Innovation as an organized practice falls into four categories:

Basic Research

Sustaining Innovation

Disruptive Innovation

Breakthrough Innovation

The first thing we need to do, he cautions, is spend enough time defining the problem and the domain it applies to.

[Coding] puts the method before the problem. Before you go rushing out to learn to code, figure out what your problem actually is. Do you even have a problem? Can you explain it to others in a way they can understand? Have you researched the problem, and its possible solutions, deeply? Does coding solve that problem? Are you sure?

[...] The world of software development needs more people who know how to define better solutions than the ones we have now.

Software development is about solving problems.

+++

This week's links are about doing the research, using conversation to do some hard thinking about the model, defining the problem properly -- and simply -- and then applying deep domain expertise to propose solutions to the problem at hand.

It can take years to explore an issue properly, define it correctly, and extract the simplest expression to communicate about it clearly, so that the solution can be appropriate.

What happens when we fail? We should use the recurrence to keep searching for the proper definition of the question -- the one with purpose.