I hurt myself a lot. I don't mean physical pain, though. I cause myself unnecessary mental anguish. I'm impatient to an extreme. I get an idea and want to jump on it immediately. In most cases, this means I promptly sit down and start writing code. The code works, and is definitely a rough approximation of the idea. I rejoice, until I realize that the idea was underdeveloped. This annoys me, because I've heard countless times, "Ideas are worthless, execution is everything". While technically true, this is an oversimplification that leads people to focus purely on execution.
Ideas aren't worthless, they are the foundation the execution is built on. The quality of the execution directly correlates to the quality and maturity of the idea. I resisted this thought for years; as someone who builds this resistance came natural to me. There is a space that lives between where the idea sprouts and the building begins that must be extended and stretched.
Ideas grow in mental gardens; the most successful people exert impressive energy to ensure the soil is as nurturing as possible. This effort lets ideas sprout in abundance. But once an idea sprouts, we must also focus on cultivating that idea before it is harvested. If we react to an idea just as it first sprouts, it is too fragile. I spent many years plucking my unripe ideas from my mental garden, trying to cook up something great but only disappointing myself.
Fortunately, other people let their ideas grow a little longer and then share them to help people like myself. With this new perspective I feel at peace giving my ideas more time to grow. Even better, I don't suffer from my impatience. Best yet is a simple method for hastening the maturity of ideas:
Find the Great Story First
Every great products starts with a story.
Every great story starts with an idea.
The product story is still just a story. It should be an enjoyable, readable, non-technical story that identifies pain and frustration. This is a story with all the trimmings, from start to finish with characters and a plot. If the idea does not help the protagonist become a superhero then the story isn't done yet. If the story isn't done, the idea isn't either. The story will fertilize the idea, making it so strong that the execution becomes simple. It doesn't mean the idea will have mass appeal or even be successful, but it will at least be mature.
I spent the last week writing out two stories. The first was difficult, because it was retrospectively writing about my software to track recurring habits that I've been running for over 2 years. It was about me, and others, that struggled to maintain habits. What made it difficult was that it was real. It feels awkward writing about my own weaknesses, even if in the end I succeeded.
The second story comes from an idea that is still a sprout. It's challenging in a different way because the product doesn't exist, it's only an idea. Ideas are entirely hypothetical and I struggle with the feeling of making promises I won't keep. Additionally, I have to fight my urge to prematurely reap the idea and begin building, even mentally (which I am certainly guilty of already).
It's very clear to me now that the way to build a successful product is to find the great story beneath it. Without this, the product will be scattered and have a lacking focus. With a lacking focus, it won't find users. Without users, it will never be a success.