I’ve always been interesting in selling software, but in the past I would get lost in features and loose track.
One tip that really helps staying focused is a combination being ‘agile’ and using Git (or any other version control system, but Git works particularly well).
If you have a hard time staying focused, this usually leads to your codebase having half baked features scattered throughout. How does this happen? Well since you have issues with focus, you jump around from feature to feature and before you know it you have lost track of what feature you are working on and what is completed and what isn’t.
Solution?
If you force yourself to work on a single user story, and create a feature branch in git (branches are cheap with git!), you are guaranteed to have a single change in your branch, and your trunk will have stable version of your project.
You can of course do things in many ways depending on your workflow, but another thing to force yourself to do is commit early and often. Don’t make multiple changes to your codebase and commit things when you have 1.5 changes on the go.
And lastly, setup a dev server on ec2 and ship your app as early as possible, it will really help keep you going during your ups and downs.