Thanks for all the input guys. I can see know that the best way to avoid problems is to setup a solid contract that:
1. spells out the type of project; a flat fee or hourly rate project.
2. spell out clear specs and expectations.
2. cover the main issues that can arise during and after development.
In my case, the main problem was poor nearly one sided sporadic communication on the part of the developer.
1. I would email or phone him on monday and he would respond maybe by the end of the week or next week.
2. He would take action on issues that needed discussion before coding and produce functionality that i did not want or ask for.
3. During the last review, he huffed about my critique on the status and functionality of the project saying that this and that was outside the scop of the project. So i said, ok, just do this one thing and nothing else. I'll take care of the rest. A week later, i get an email saying all of the issues have been corrected.
In the end, he did produce what i wanted but it was a hassle getting there. The dispatch board was estimated to cost $2450 and ended up costing $3200.