There are a lot of parties in the technology world that use the terms “Consultant” and “Contractor” interchangeably. It is important to outline the differences between the two, and determine, when looking at bringing an individual or party into a project, that you understand who you are working with.
A [Technical] Contractor is someone who has a specific technical skillset, such as a background in an application, programming language, or platform, who can build out a solution based on requirements that have been specified. Of course, such persons (or groups of people) range from highly skilled to marginally incompetent. The one uniting factor is that they do not have the ability to step out of their area of expertise and offer a high level assessment as to what should be done in a given area, or even recommend that an entirely different technology from their skillset be used. For example, hiring someone with a deep understanding of SharePoint will lead to a SharePoint centric solution; hiring someone who loves Open Source solutions, will lead to an architecture based on Open Source concepts. A Contractor delivers what they know how to deliver, for a given price – they cannot, and will not, be able to give objective views as to what should be done; they can implement, but not architect.
A [Technical] Consultant is someone who often has a deep skillset in one or more technologies, and can implement and deliver solutions based on these technologies. However, these individuals (or parties) can actually stand back from the stated solution and make recommendations and provide insights into how these solutions should be implemented; whether they have anything to do with their specialized skill set or not. This ability to provide objective information about a solution, and work with their customers to come up with a solution that fits the need is where they can set themselves apart and bring a tremendous amount of value to the table.
There are many Contractors pawning themselves off as Consultants, to the detriment of their customers and clients. It is not the responsibility of the client to understand how to implement something, or what the best approach to a technical solution is; but it is their responsibility to find the appropriate resource for the job at hand, and to understand the difference in nature between a Contractor (skilled hired hand) and a Consultant (a partner to the business, and a skilled implementor).