One decision many business owners must make is how much speculative work they can do vs how much contract work they must do.
The easiest example to use would be the home builder. Potentially, they can make more money building houses for themselves and then selling the house to the highest bidder. Many builders would like to do this as their primary business but the problem is they are completely dependent upon the market to hope they can sell the house and get a good price. Until the house is sold, the builder is responsible for 100% of the costs. Thus the builder potentially could make a lot of money but they are also taking the risk of hoping to sell the house.
The contrast is for the builder to sign a contract to build a home (or do a renovation) for a client. They would agree to a price ahead of time. This might be based on the size of the project, the number of hours or the total costs. The profit potential is more limited but the risk is also quite limited.
Many computer programmers go through this same type of decision as well. Should we develop programs we believe there is a need for and we think might be sell able or should we do contract work for others which have guaranteed.
It’s really not a case of having to choose one or the other. If possible, use the contract work to help offset the costs of the spec work until the spec work can fully pay for itself (or at the very least help offset the costs).
Frequently the spec work is the fun, challenging work and the contract work is how to pay the bills short term. Realize if you can combine the two you might have the best of both worlds.
Have a great day!