- How much competition there will be (market saturation).
- Who your target market will be.
- How large your audience can become.
- What you can charge for the finished product.
- How much time and effort development will require.
This first step is figuring out what you will be creating. For example if you decided to create a recipe generating program that uses AI in order to propose new and interesting recipes, you'll be screwing yourself over: there are already loads of free recipe sites to compete with, the program would take ages to write due to the complexity of the proposed AI, and you couldn't justify charging anything substantial for the recipes alone because there are already plenty of cheaper (proven) alternatives.
I learnt this lesson the hard way...from personal experience and subsequent failure. The story of my first attempts at developing a commercial software product deviates a little from this article, if you don't want to read that story the core take-aways can be found below:
How to decide on a product
The take-aways are actually really simple: research, research, research!
Before doing anything else research what's in demand, research your competition, research (or at least estimate) the time it will take to create your product, and research how much you could justify selling it for. If it looks like there will be a problem for any of the above reasons, try and think of another product or refine your idea so that it targets a better niche audience.
A good way to decide if a product idea is worth pursuing is to use the following two value. The first of these is the Gross Sales Income, this can be calculated by taking the total size of the target audience (n), multiplying by the percentage you think you can can attract to your product (a), further multiply by the percent of those individuals that are likely to make a purchase (p), and finally multiply by the cost per sale (c).
The second value you need is the cost to produce and market your program, i.e the Total Cost. Total Costs can be calculated by multiply your hourly rate (r) (for example you might value your time at $10/h), by the total expected dev hours (h), and adding in other expenses (o) such as marketing costs can domain cost.
Total Cost = r × h + o
By using the above equations a profit of zero is not actually bad - it means that you have made back all the dev time spent on the project at your target hourly rate.
A negative profit value means it's probably not worth your time to pursue.
And finally a positive profit value means that your make more money out of the product that the value of the time you put in (this is obviously a very subjective measure). If you have a substantial positive profit value, you should move on to the next step of making design decisions.
So you've done your research, done all the maths, come up with a positive profit value, and have settled on a product idea where the profit from selling it would justify the time and effort of creating it in the first place. That means it's time to create it. There are still choices to make before development can be done - design choices amongst other - including what language to use, whether to do it yourself, whether it should be online or offline, what platforms it needs to run on etc... but we'll cover all that in our next article.
One should note that the above equations can be 'abused' somewhat if you were orignally contracted to create the product in question (and thus got paid to make it) - but more on that later.