I had an idea for a software application and hired a programmer from one of the freelance programming websites. Towards the end he bailed. I even gave him extra money because the project ran over the time he said it would take. I ended up with useless software. He had excellent reviews, and was established on the freelance website

I know what I want the software to do but it seems I almost need to know programming to convey it or a wireframe or something. I had written down what I wanted it to do. But even the basic function ended up broken

Along the way as problems presented themselves i had to brainstorm solutions for the problems. As an example there could be two things named the same thing, this caused the software to crash. I would have thought the programmer would have already thought of this being a potential problem based on how I explained it would function. He then fixed it but in my mind this should have been a non issue from the get go.

So in essence my question is how do I explain what I want and should a programmer be asking me any questions ? Or do I have to have everything spelled out even if I am not a programmer because its seemed like I need to know programming to explain how I want the software to function. And where / how do I find a good one ?