Usually developers like to think of an idea and just start coding. Which is exactly what I did for my first couple of products. But to have the best chance of success, you actually shouldn't write a line of code until you have a plan for a few very important things.
Ignoring Product Market Fit
"There's a gap in the market, but is there a market in the gap?" is a common quote that describes this perfectly. Technical founders often don't have a well rounded enough understanding of the market they're in, and just think their tech skills will be enough.
Make sure you have an idea of the right audience for your product, and make sure they are actually willing to pay for it. Have plans to pivot to new audiences if it doesn't work out.
Not Having a Plan for Monetization
Can you even sell your product? What does the overhead look like? Do your tools and libraries have permissive enough license for you to use them for a commercial product?
Make sure you are pricing your SaaS correctly to cover everything. Ideally, you should be revenue positive after your first client. You should also consider pre-selling your product so that you're revenue positive before you even launch.
Not Researching Competition
Sometimes technical founders don't check competition at all. When they do, usually their plan is to make a simpler version of their competition's product and undercut on pricing. But often undercutting the competition isn't enough.
Instead, what can you offer that your competitor can't? Do some research into your competitors and how their customers feel about their product. Find what their customers need that they aren't getting and offer it in your product.
Not Having a Marketing Strategy
How are you actually going to bring your product to your target audience? SEO on your product's website alone will not likely get you anywhere near where you want to be on the search result pages.
You will need to find out where your target audience is when they need you the most, and find a way to be there to help them. This can be done through ads, social network content, email campaigns, or even cold calls.
Developers are notoriously bad at predicting how long it takes them to do something. Which I completely understand. Development on a new project often involves learning some kind of new skill, library, or framework. And the time it takes to do that can depend on documentation, and whatever other resources are available online. Quality in the learning resources can vary wildly, so some things that you'd think would take you a few minutes wind up taking you a week.
I usually take the amount of time that I think a job will take and multiply it by 4. If it seems like a lot of time, then great, you'll finish early and be a hero. Most of the time, I find the padded number winds up being accurate when you factor in bugs and other issues that pop up that you didn't initially know about.
But the real unsung hero here is outsourcing. I know you don't want to because you can do it yourself. But just because you can, doesn't mean you should. Outsourcing the simple stuff can let you focus on the real business problem you're trying to solve.
Too Much Focus on Technical Features
Don't fall in love with the technical aspects of your product too much. Remember that all your customers care about is what's in it for them. They don't care about how fast your server is, they just want to know how that benefits them directly. If it doesn't benefit them enough or at all, maybe don't put any more time into that particular feature or don't spend any money marketing it. Benefits > Features.
If you're a technical founder, me too! Make sure you subscribe to my blog if you want more tips on things to look out for while building your product.