The typical CRM development process, even within a single phase of an overall CRM implementation program for your business, is broken down into a number of major areas. These include enhancements to be made to the accounts model, to contacts, to projects, as well as the custom reports and charts you may need.
While some of these alterations may interact with each other, many of them will not. It should be pretty easy to identify clusters of functionality that are fairly independent of each other.
Usually, the best practice is to have the partner develop these offsite, and then introduce each new function cluster to you for evaluation one at a time (typically through a development website that is exposed just to you). Unless you have spent the time and money to develop a remarkably detailed specification, there will always be issues, such as, "I thought that control would be a drop-down, not a radio button", or "I wanted the tab order to go like this …", or "When you select...