I don't mow my own lawn. I didn't when I had a small lawn, and I don't do it now that I have a massive one. It's not simply because I believe in supporting my local services folks (though I do). Rather, I don't have the time and the skill to do so, and it's worth paying someone else who has both. As a result, my lawn looks great, and I've saved time for other endeavors.
The same calculation applies in your IT environment. When you don't have the skills or time, consultant teams can come in to do the job, such as a migration, replacing your PBX with Skype for Business, or deploying Windows 10 to all your PCs.
You might hire a consultant to handel the whole job, to teach you how to do it, or to take care of the prep work -- it all depends on what makes the most sense given your resources, internal expertise, and budget. What doesn't make sense is to do everything yourself all the time, because often you'll invest more -- and risk more mistakes -- than you should.
When choosing a consultant, here are three key considerations:
1. Confirm their skills are real
Don't be the guinea pig for Bill and Ted's first-day-on-the-job adventure. You're paying, so make sure you get every last bit of what you're paying for. You want to hear the actual plan from your new consultant, and you want several references -- not only names, but the numbers to call. If the references had a good experience, they'll happily brag about the project.
Be sure you get the details on the efforts from them and the consultant, such as the number of mailboxes moved and methods used. It's important that you hire people who know how to handle your project's size. A team that has migrated 100 mailboxes most likely doesn't have the experience to handle 100,000 mailboxes. Although the concepts are similar, the scope isn't.
2. Don't pay for their new Ferrari
Too often, you get overcharged by consultants looking to make a score. Do your homework here too. Once you settle on a few consulting teams, make sure their fees are reasonable for the job at hand.
Also keep in mind the need for deadlines with financial penalties, especially on larger jobs. You don't want to be the sucker who pays, through more fees and delays, for the mistakes of others. (You can usually detect that potential by talking to their references.) A consultant that has experience with jobs like yours should know how much to charge and not surprise you later.
You also want a clear division between the completion of the project and the potential need for follow-up consultation and services. These should be separate contracts. After all, in some cases you may not require the follow-up, or you may not want it from the same consultant.
3. Maintain control without getting in the way
There's nothing worse than having your consultant embarrass you in front of senior management by having you look out of touch, incompetent, or disengaged.
You need to know what's happening in your environment, and you need to be the one to manage the communications between your consultants and you, and between you and upper management. Sadly, too many consultants whisper in the ears of senior management about IT's "problems" on hopes of getting more work.
Keep the consultants focused on performing their tasks with a very clear picture of who they work for and who they communicate with. But at the same time, don't micromanage. They have a job to do and you are supposed to back their efforts with whatever resources and information needed to get it done.