"The role of a consultant is to act as an advisor or extension of the process. Without an educated opinion or strong skill set a consulting can just be an unnecessary expense."

- Rob Shaver
Consulting - Lexington Kentucky

Will the services be guaranteed?

First you need to be sure that any service that you pay for is guaranteed. Recruiting companies have the advertising budget and it is easy to end up doing business with them. If you have not done business with consulting groups please take this advice and demand all work be guaranteed.

Will code generation and other cost saving techniques be used?

A majority of software development tends to be repatative programming. You can spend hours typing set firstname=firstnameTextbox, lastname=lastnameTextbox and on and on. Repetative programming is just as costly as the business logic you are primarily focused on. Ask about methods used to lower development cost by automation and code generation.

Where will testing and development be performed?

Make sure a separate environment is used for development. Allowing your production environment to be used for development will lock you into spending more if something goes wrong, you may even hear "We have to charge you more to either finish the project or undo what we have done." Virtualization allows us to reproduce your environment and develop your solution without affecting your business.

Can you relate payment to a timeline?

Correlating payments with milestones can be an effective means for guiding both parties. This is almost as important as demanding the services rendered are guaranteed. Using milestones is not always an option but when practical I would consider it mandatory.
Devomni Corporation