You didn't specify which kind of software you want, its objectives, area, so this is going to be very generic.
* At first, you provide the details for the project. I run through it and make sure I understand each and every piece of specification.
* We agree on the deliverables (what you expect to get from me): executable file, source code, installer, user manual, etc.
* We agree on how many development stages; at the end of each stage you get a more complete solution.
* We agree on validation criteria for each stage (what makes an acceptable solution - usually, test cases that the program must pass)
* I estimate the required time frame to complete the task, and we adjust everything to match requirements, time and money restrictions.
* You approve the plan and I begin development.
Of course, small tasks require less planning and we can skip or collapse unnecessary steps. This is just a general schema.
I've been a professional programmer developing Windows software for 20+ years.