I've been down the path of systems development several times - some eventually successful, others not.
Regardless of how simple or complex you think the software is, you need to follow a process to prevent you pulling your hair out, spending 10x more than planned, and burning through dozens of programmers/developers.
Here's what I usually do:
a) Write a scope document
This is a plain English document, specifying exactly what functionality the software has, and how it is to behave. Include, if possible, wireframes or sketches of what the user interfaces will look like - in creating these you'll think of 100 things you hadn't thought of RE the functionality of the software as a whole
b) Specify milestones
So that your developer/programmer has something to work towards, specify way-points and milestones along the road. This will tell you if you're off course, or on track.
c) Stick to the damn scope!
Nothing will kill your project faster than varying the scope mid-development. It's tempting to add things as you think of them, and to change things, but wait for v1.1 or v2. It's simply too much of a distraction to keep going back to the drawing board - and you'll just piss off your programmers (who, after all, are people too) because they won't have any sense of having achieved anything because you keep moving the goal posts
d) Get buy-in from the coders
Whoever is doing your code needs to commit to $x per component/module/milestone. It's the only way to go. I typically, after finishing the scoping document (sometimes 20+ pages including wireframes) have my programmers propose their own milestones, and payments at each point. If you're working with good people, these will often be suitable at face value, and the project can begin.
Golden points;
1) there is no such thing as a cheap coder, even if his hourly rate is low. His f**k ups will cost you more than you can imagine.
2) an idea (whether software or other) is entirely worthless - the only value is in execution. I don't say this to be nasty, I say it so that you hopefully approach this project with the right attitude, understanding that just 'having an idea' doesn't make you money.