Problem-solving and creative mindset

Stop thinking about ideas and start looking for problems The way to get startup ideas is not to try to think of startup ideas. It's to look for problems, preferably problems you have yourself. (P. Graham)

So, basically what you have to do is think of a problem that a big population is facing (recommended: including you) and then come up with a solution which is easy to implement as well as easy to scale and helps those facing the problem in the best way possible.

The reason why it is recommended to have that problem yourself is that it ensures that the problem actually exists and you are not merely making it up in your brain. Because, if you'd work on a solution for a problem that does not exists then without any doubt it'd be a failure.

Now, just start observing yourself deeply doing your daily activities and try to figure out that where you faced irritation and thought that this thing could have been better if such a feature or any other thing would have been present in it.

This is where you start coming up with some problems present in today's world waiting to be solved and now is your chance to solve them!

Don't waste time solving problems twice

Describe with precision in 1-2 sentences the problem and/or the request

Provide 3 solutions

Why looking for 3 solutions ?

 - 1 choice is no choice
 - 2 choices is a dilemma until you have 3 choices you're not a choice

Which of the 3 is your favorite and why ?

What resources of time, energy, and money would be required to implement this ?

What are 3 intelligent, practical, and viable solutions you believe we could implement to solve this ?

  1. Accept

  2. Modify or Reject with Reasons Why

  3. Provide New Alternative Solutions

Spend 80% of your time on the solution and 20% of your time on the problem.

"Wrong" way to create an open source software :

Most good open source softwares have to start as a side project. What tends to be good is solving real problems and looking at the solutions you have to these problems and notice there are some communalities like this problem quite similar to the one I just solved before so I can extract the common parts and I can put it into something and that can be coming up as an open source software project and that can work out and that's why Ruby On Rails works. Because I kept doing that I kept seeing things that were the same and taking them out and putting it in this toolbox and then I invited other people to do the same. Here is the toolbox. Use whatever you find in and if you find something in your application that is not in this toolbox, maybe you can extract that and put in it.

When an open source becomes a full time job, I think it's very often the path to consultingware, this notion of making software complex just such that you have to hire consultants, to use it, to configure it for you, to fix it for you and to train you and these are all the things you can sell a wrap to software

Programming was a hobby but almost a habit.

I always built my own tools and actually I tried to find commercial tools again. by 91, you would expect to buy your own tools. But it was expensive as hell. Unix was expensive and mainly used by banks. Once again, I will have to build my own tool. (Linux kernel)

At that time, existing commercial tools were available but too expensive he could not afford it. He decided to write his own tool. (Unix-like operating system)

Notes :

The word PROBLEM in large global terms means : - "Everything is going wrong" - "He/She will never change" - "There is no hope" - "I seem to have the world on my shoulders"

Definition of problem solving :

Systematic approach to defining the problem (question or situation that presents uncertainty, perplexity or difficulty) and creating a vast number of possible solutions without judging these solutions

Problems call forth our courage and our wisdom; indeed, they create our courage & wisdom. It is only because of problems that we grow mentally and spiritually - M Scott Peck

What is problem solving ?

We spend most of our time trying to correct the problem instead of helping the problem. This is especially harmful when we feel like the problem is "someone else's"

How we typically approach problems :

The longer we travel down this road, the more problems we create for ourselves in the process.

How we should approach problems :

This process allows you to learn from your problems, instead of gettting frustrated by them.

Once you understand the problem, turn all of your focus toward working on the solution.

Always look at the solution, not the problem. Learn to focus on what will give results.

The solution to the problem is what everyone needs. No one needs to be reminded of the problem.

Every person approaches a problem in a different way. Some focus on the problem or the reason why a problm emerged (problem focused thinking) Others prefer to think about possible solutions that help them to solve a problem (solution focused thinking)

Do not even start considering solutions until you understand the problem. Your goal should be to solve the problem within the problem domain, not the solution domain

First principles

Physics teaches you to reason from first principles rather than by analogy. So I said, okay, let’s look at the first principles

A first principle is a basic assumption that cannot be deduced any further

Know your tools

If you have a hammer, everything is a Nail

Fall in love with the problem, not the solution

Misc readings

Problem-solver and creative mindset : Example of a better problem solving approach

Disabling interactive logins for service accounts

Current approach :

  1. A boring, time-wasting, tedious task to complete

  2. I have a weird feeling of completion when I complete as many as similar tasks as these ones. Am I looking for some self-gratification to convince myself I am a self hard working guy.

  3. An help for me learning new skills or improving existing ones

  4. Wasting my time resolving a recurring problem that should have been solved once and for once

  5. Makes me feel guilty and lazy because if I do not take ownership of this request, then I am useless and I confirm I do not have skills I pretend I have

Newer approach :

  1. Did I cause this issue ? NO

  2. Did I request myself for this problem to be solved ? NO

  3. Is it a brand new problem or an issue that keeps reoccuring ?

  4. How many people are impacted ?

Remarks :

Is it because :

  1. I feel the need to repeat the same actions/solution to feel more confident in my ability to complete these tasks

  2. I like staying in what I know already

  3. I am not able to get out of this routine to face new technical challenges and then solve them either by using my current skills set and learning and applying new ones that are relevant for the problem I have to solve

  4. I lack confidence in approaching new tools, new problems

  5. I work with people that just set up a fix and leave the other work with their shit.

  6. I'm forced to fix other people's failure/shit

Real questions to ask :

  1. Am I aware of the time-wasting, boring and tedious aspect of the tasks I have to complete ?

  2. Do I feel restricted to using the same tools again and again for fixing tasks ?

  3. Do I give myself freedom to explore new tools, new ways to get rid of these tasks ?

  4. Do I want to get better at using a tool or solving new problems ?

  5. Is my job to know as many as possible tools and learn how to use each of them ?

  6. Is my duty to understand core concepts such as problem-solving to make the best use of existing tools ?

  7. Do I allow myself to create a brand new tool or a unique combination of existing tools ?

Problem-solving template :

  1. Set up a "MVP" solution aka the simplest effective solution that address your problem

  2. Test your solution and assess if it solves your problem effectively

  3. Work on the next iteration of your solution to fix any unattended behaviour/errors/ anything that do not give you what you expect

  4. Always try to improve your solution by using existing tools without over-engineering

Creative mindset

Growth mindset

They need to internalize that they can change their results by changing their process. So they need to know how to effectively create a process, alter it and produce results from that process.

His solution of building that kind of process: Keeping a journal

I believe this method of keeping a journal, creating a process, and refining it until the desired outcome is achieved will help promote a growth mindset. It keeps our mind focused on a changeable process. The results are measured and paid attention to only as an indicator of how well our process works. The process either works as intended or it doesn't, but it says nothing of the person. The process is malleable. It's not that it doesn't work, it just doesn't work yet.

On the other hand, going outside of your comfort zone forces you to adopt the growth mindset to avoid shattering under the weight of adversity. You have to focus on and adjust the process, because you can't possibly achieve the result you desire with your current process.

Back to top