You have to get sign-off from the customer that you both agree on what will be delivered.

I just got a new job yesterday - big job.

The customer was nice enough to create a spec sheet of business process for us. If they had not done this we would have needed to visit with them in advance of everything else to gather that info.

You need to know what you are automating. You need to see paper forms they might be using now. You need to understand how data comes in and how it goes through the office and what is expected on the output side of that data flow.

This customer also gave us sample screen shots that they created - also rare. If they hadn't done this we would not have prepared any screen shots in advance of starting the project.

At any rate - we worked with them for about 2 months reviewing specs from them - discussing process - watching them complete more of the spec they developed for us.

We created a task list from all this - with milestones.

And yesterday we agreed on a price - signed an agreement saying we would deliver what was in the spec. We also agreed that the spec was a living document and could change - and we would not change the price as long as the amendments were in line with the original scope of the project (careful about this one!).

We got a down payment - are going to start on steps 1,2,3 of the task list. At the first milestone we show them what we have so far. They either accept it or ask for modifications. If it's accepted we get another payment and move along on the task list.

We are big believers in the unavoidable nature of iterative development - nothing can be done on first attempt that meets the actual needs...