My dad is a Vietnam Vet. He doesn't talk much about his war experiences, but one thing he did tell me is that there are two types of soldiers. Those who can pull the trigger and those who can't. This was brought to mind today after meeting with a fellow business owner and hearing the situation he's found himself in with respect to his software project. The business owner is working with an intelligent, experienced developer. But, after several years and many, many $$, he still doesn't have an app that he can use. His business has seen $0 ROI on his extensive software investment, even after all this time.
This got me thinking that there are two kinds of programmers. Those who launch, and those who don't. As a business owner or software project sponsor, my advice to you is to always look for evidence that you have a software developer/team who launches. If possible, start looking for this evidence before you start the project. Does this person or team have a track record of launched/live projects. Do they have working software out in the field that you can look at in it's native environment?
If it's a new person/team, or if you've already started, look for this type of evidence with your project. Is working software being delivered to you on a regular basis (weekly/biweekly/monthly)? Or do you get an occasional dog an pony show, displaying the software to you on a screen, but not available for you and your staff to use, experiment with on your own, interact with in between demos.
You should know in fairly short order if you have the kind who launches or not. If it seems to be the kind who does not, don't wait years. Cut your losses and start looking for the kind who launch.