If there is one thing I have learned over the last few years, it is to work on side projects. I don't mean that I have created many successful businesses, but the fact of dedicating time to ideas outside my working hours.
Most of those projects have ended up in the famous side-project graveyard, that place where you keep your backups, but some of them have become useful and are still online.
These would be some of the lessons I have learned over time:
Define a goal
Without a doubt, this is the first thing to do if you decide to start a new project. Define a clear objective. It does not always have to be to generate a successful business, there can be many other totally valid objectives, for example: learn a new technology, or simply put into practice something that in your main job you could not do, for example, if you are a programmer and you like to design, or do marketing.
By this I don't mean that you have to plan the whole project, but it is true that it helps a lot to have a clear set of steps to follow to get to where you want to go. This is something I try to keep simple and I use a simple list in my personal task app. In my case I use Things.
Set aside time
Add time to your calendar where you plan to spend time on your project. I always take a few minutes on Sunday to plan my next week, and when I say plan, I mean look at my calendar, and set aside time slots for things I want to do.
It may sound weird, but it's something I've been doing for years and it helps me to mentally organize what I want to do. And I don't just mean work-related things, I add things like going to the supermarket, doing sports, cleaning the house. This also makes me set aside time to read, learn or work on my projects. It is the way I have found to avoid procrastination and falling into the temptation of activities that do not bring me anything of value and that were not intended for that moment like, for example, getting up on a Sunday and turning on the TV to watch Netflix or Youtube. I'm not saying it's not something that can't be done, but it's not something I want to do on a Sunday morning.
Ok, you've got the goal, you've planned the next steps, you've set aside time and now you're in front of the computer, it's time to execute. Choose well what you want to execute and if it is really something you can finish in the period of time you have set aside.
Something that has helped me a lot is to choose very specific tasks that provide immediate value. For example, if there is something that brings more users to your project, prioritize and choose that kind of tasks, after all, it is probably one of your goals, and that is to get users to start using your product.
Try to listen to user feedback, what they appreciate most about your product. Don't hesitate to ask them directly, it's something that many will see as a positive thing. I have written many emails directly to users asking them why they signed up and what they really expect from the product. Another important thing to find out is why they would be willing to pay, I'm sure many answers will surprise you.