You forgot to mention one early step:
Research market/niche viability. Are there enough likely customers out there for what you want to build and sell?
It's a good idea to do this up-front before sinking hundreds of hours into a project, only to find that A: Few want it or (more infuriatingly) B: Many want it, but in a different form.