So, if it's very hard to start a software company based on paying contractors for software development -- which seems true to me -- there's another warning here for
software contractors/consultants.
If someone is paying you, as contracting engineering talent for hire on a consulting/hourly/iteration basis, to develop an app or product they hope will be the foundation of a new business -- chances are high this won't actually work out for them (despite your competence and best efforts), and chances are high they will end up angry at you for taking so much of their money to develop something that didn't end up developing the business they wanted, with possibly legal action to try to claw back some of those funds.
I have some personal observation of this. Even doing work agilely with review every two weeks and the client only paying once they've reviewed and approved the work in that two week period, and approved your work plan for the next two week period, even with all that -- after a year or two they can still threaten or carry out legal action to try to claw back of some or all of the money they've paid you.
So, these can be very dangerous clients. And that you are trying to do your best and give them a quality product -- you aren't trying to exploit them or take advantage of them, you think you were delivering what they asked for (if they asked for the wrong things is that on you? turns out, they may think it is) -- will not necessarily keep you out of these difficulties.