DEV Community

Cover image for The last human skill standing
Sagi h
Sagi h

Posted on

The last human skill standing

With AI anyone can build anything today. My 16-year-old cousin built her personal app with a little push in the right direction. Yet there is one skill that will stay human forever: Problem solving.

AI can build a solution, but for what? To solve a problem you must first see it.

There are three kinds of people:
People who do not know they have a problem.
People who learned to live with the problem.
People who see the problem and act to solve it.
The third kind is rare. Maybe you know someone who acted and fixed the thing everyone complained about.

But you? Even if you notice a problem, you wait for someone to hand you a solution on a silver platter. Maybe you look for an app on the app store or wait for the IT department to do something.

Until something is presented to you, you keep living in the discomfort and accept the situation. Even when something is presented to you, you still feel an itch - "Something is still off."

As with anything in life, you either adjust to the process, or the process adjusts to you. Why didn't you build the solution yourself? The app that would've solved it.

I'll answer that: you thought it was impossible, and you still do. You have a hard glass ceiling above you.

Honestly, it's not your fault: we all start there.

You were probably never taught how to approach a problem. Heck, you barely even know how to spot a problem to begin with.

As a software engineer, with over 10 years of experience and more solved problems than I can count, let me open your eyes and make you see your daily challenges, and how personal apps can save you time and money.

I'll share with you the exact thinking process of entrepreneurs, good software engineers and problem solvers to find a solution to a real challenge.

Know this - the skill can be learned. You can become the one who acts. Allow me to give you the same push I gave my cousin.

Good software solves a real problem

Look at your phone or laptop and see that it is full of apps someone else built. Each app tries to solve a particular problem you once had or still face, and the only reason you have them is that you have no choice. You adjust your process around the app. I bet there is more than one app you wish you did not have to use.

First you need to understand what types of problems there are, and what is considered "good software".

Good software solves one real problem, and there are three kinds of problems: core, specialized and what I call hyper-specialized problems. Core problems lie at the base of the others. Everyone faces those problems one way or another. E.g. communication - email, boredom - games, presentation - PowerPoint, data management - Excel.

Specialized problems are problems that not everyone faces, but many do. They are a combination of several core problems, for example:
Apps for money management, calorie tracking, the apps you use at your job.

Hyper-specialized problems are unique. Have you ever told yourself, "Damn, I wish this app existed - it would have saved me a ton of work", or "This app is so bad, there are 10 ways to do it better" or maybe you noticed a task that you do again and again that an app can automate?

There is a reason why there are no solutions for these problems. There is no money in them. No one faces them but you.

But this does not mean there is no value in solving them. The exact opposite, in fact. Here is where "personal software" comes into play. For a stranger, personal software that solves your hyper-specialized problem might be useless indeed, but for you, it is invaluable.

Personal software can save you a ton of time, completely automate a task you do, show you things you never knew about yourself. Honestly, the only limit is your imagination. Personal software can completely transform your life.

To solve a problem, you must see it first

We humans tend to confuse familiarity with understanding. Try it yourself - take zippers for example, since we are all familiar with them. First, rate yourself from 1 to 10, where 1 means you have no idea how it works and 10 means you make zippers in your backyard (if you actually make them in your yard, pick toilets or locks). Then explain it, step by step, and rate yourself again.

You quickly realize that there are holes in your understanding, and suddenly the clarity you felt disappears and the gaps appear. Leonid Rozenblit and Frank Keil ran this exact experiment in 2002. They named the phenomenon the "illusion of explanatory depth".

You might think you understand your morning, your job, or your evening. Write it down, step by step, and include the challenges and the problems you face.
What do you do repeatedly but don't like?
What is that workaround that you are proud of?
What's harder than it should be?
What is it you try to achieve?
What annoys you?

What is it you do in your job? Be specific, write the process down. For example:
A nurse who needs to triage patients in the ICU.
A lawyer who needs to be ready for a case.
An engineer who needs to solve something.
A shop owner who needs to keep track of his inventory.

The first step towards solving the problem is to stop reacting to life for a minute, and become a 10. You need to externalize the process - write it down, and see the problem reveal itself. Looking at the process is far more effective than thinking about it.

Now look at what you wrote with the simple assumption that nothing is good enough and everything can be better.

Pick one challenge that bugs you, and elaborate on the process you currently follow to achieve the goal. What are the apps you use that help you achieve it? How do you use them? Write down the exact process from requirements to achieving the goal.

Let's take Joe the copywriter as an example.

Joe's boss sends him an email with a task: "Write me a piece about how our new product is the best in the world."

Joe's favorite tool to write his drafts is his pen and paper. That's how he thinks best.

He drafts a 2,000-word article on how the new product is the best in the world, feels good about the draft, and needs to start editing.

Joe edits his work on his laptop, and for this, his tool of choice is his text editor - "Obsidian". He does not really like it, but it does the job. But there is a problem - he can't edit paper.

To get the text from paper into the software, he takes photos of his pages, then uploads them to Google Drive so he can download them to his laptop.

Once the images are there, Joe asks AI to transcribe each image to text, and then, after each transcription is ready, he copies each transcription, and creates a file for each in Obsidian to start editing.

You see, Joe adapts his process to the software. Every tool is a good solution to a particular problem Joe faces. But this entire process gets on his nerves, and takes like 30 minutes, from draft to edit - each time.

Good solutions on their own, but the process is still faulty - the time and effort are the problem.

The second step is to break the story into small actions, from the very beginning (the email) until the task (the copywriting) is complete. Write it in painstaking detail.

Joe gets a task from his boss via email.
Drafts with his pen and paper.
Takes photos of his pages.
Uploads them to Google Drive.
Downloads the images to his laptop.
Asks AI to transcribe each image to text.
Creates Obsidian files for each transcription.
Edits the files.

Once the story is written down, the third step is to create the magic chain.

The magic chain

A solution to a problem is just a process, and a process is a series of small actions.

The magic chain is the simplest and most effective framework to visualize the process, its actions and the requirements.

For every action in life, you put something into it and get something out of it. The magic chain is made up of actions - the magic. More often than not, we do not need to know how the action actually happens so long as it works.

An action has an input and an output. The input is the resource needed to begin the action. E.g. a bit of information like text or a number, or a physical item like a pen and paper, literally anything! Having no input is in and of itself considered a type of input.

The action takes the input, applies some magic to it and produces an output. Just like the input, the output can be of any form or type, and can be completely different from the input.

Input → Magic → Output

Then we form the connections of the chain. An output of one action is the input to another, and multiple connections create a process - the chain.

Input → Magic → Output → Magic → Output → Magic → Output

Let's go back to Joe's steps and look at them again. You'll be able to see a clear chain appear, so we only need to form it. What does the action need? And what does it produce?

Email, pen, paper → Writing → Draft
Draft → Phone → Digital image
Digital image → Upload → Digital image in Google Drive
Digital image in Google Drive → Download → Digital image on the laptop
Digital image on the laptop → AI → Text
Text → Create file via Obsidian → Text file
Text file → Editing in Obsidian → Boss is happy

The chain makes the entire process and its actions from start to end crystal clear.

The fourth step is to name the pains.

You do that by looking at what you already produced: the story, the steps, the chain, and asking yourself: Where is the pain? What takes too much time? What is annoying? What do you hate doing in that process? What is repeated?
Look at the chain, notice there are 3 steps just to move the image from the phone to the laptop.
The editing sucks because of the editor.
There are 2 actions to transcribe each image.

So, what is the solution?

"The formulation of a problem is often more essential than its solution, which may be merely a matter of mathematical or experimental skill. To raise new questions, new possibilities, to regard old problems from a new angle, requires creative imagination and marks real advance in science." - Albert Einstein

If you did all the steps, you probably already know the solution and what to fix. Finding and defining the problem well - is the hardest and most important part.

Write down the ideal process you wish you had. Do not limit yourself. Imagine the software you think will solve the problem. You don't have to imagine each button and how it looks, just what you want it to do, based on the pains.

Joe's problem is the process because it is unnecessarily long. He adjusted himself to the apps and what the market offers. His process, from a request to an edited piece, could be optimized significantly.

What if Joe could create his own personal software and automate the whole process? Making it take 2 minutes instead of 30, and, while he's at it, replacing his "not-so-liked" text editor with something that is tailored for his process?

All he wants is a simpler editor than Obsidian - a file explorer and basic text editing capabilities. He wants to ease the whole paper-to-digital process, and with a click of a button - transform the image to text.

What is left to do is to clean the wish and form a request. E.g.
I want to create an app, with the following requirements:
A simple text editor with bolding, headers, list capabilities, and a file explorer.
A way to easily share images from a phone to a laptop.
With a click of a button, transcribe the image to text.

This is no longer fiction for Joe. He can leverage AI and ask it to build the app for him. He can do that today and so can you with any challenge you face.

Notice the request is the prompt. Feed it into AI and let it cook. You can ignore the jargon, and just ask AI to build your personal software. Ask it to run the personal software, and be amazed by what comes out.

Once you have the initial app, continue, and do not stop here. Refine and improve, iterate and make sure the process is ideal. Maybe you do not like how it looks? Ask it to improve the design - literally. Do not overthink it! Tell it what you do not like, what to change, what to move, colors and sizes. In your own words. Build your personal software.

Be like Joe, solve your own problems

Joe is me. I needed a solution to the long, annoying process, so I didn't wait for someone else to hand it to me on a silver platter. I knew no one would build it: the problem was mine alone.

I started with the tools I knew and adjusted my process to them. I hated it, so I solved it. I built Writor, a simple text editor that makes it easy to go from pen and paper to digital. As a bonus, using my own software surfaced new challenges, so I just asked AI to add the solution.

As a software engineer with 10+ years of experience, I tell you one thing right now and you better believe me: You do not need to know how to code in order to create your personal software. Ignore what all of the "professionals" tell you!

There is a tectonic shift in code. Leverage it to your advantage!

I did not pay attention to the code that runs Writor at all - I do not need to. It does the job and it works well enough for me. That is the only thing that matters!

All you need to do to start is to spot and define the challenge - the pain. Pay attention to it, look for it - you are constantly surrounded by pains like it and now you can solve them, in ways you never imagined before.

If you want help to start, feel free to contact me. I'd be happy to.

Top comments (0)