I like consultants, I really do. Sometimes
exact right thing to do is to hire a consultant. They are
perfect solution under many circumstances. If you've got a quick, well-defined project, then by all means get on
phone and call in a specialist. If you need a skill which you do not have on-staff, then perhaps a consultant is just
ticket.Just make sure you've counted
silver before they start and after they leave.
Does that sound harsh? You bet. You see, managed correctly a consultant is an excellent resource to help complete projects and get special tasks completed. Improperly managed consultants often wind up costing a small fortune and produce less-than-adequate results.
Don't get me wrong, it's not usually
consultants fault. No, not by a long shot. Generally consultants are reasonably honest and try to do a good job. You can almost always trace problems with consultants (over billing, under producing or just plain doing
wrong thing) to a failure to properly manage and control
project.
You see,
success or failure of a project depends upon one variable and only one variable (baring actual criminal behavior on
part of team members):
skill and abilities of
project manager. If project management is weak, then
project will almost certainly fail. The weaker
manager
more likely
project is to go over budget, to run into unforeseen problems and to, at
worst case, utterly fail. On
other hand,
better a project is managed,
more likely it is to complete on budget, on schedule and with a minimum of disruption.
Some of
rules that I follow when dealing with consultants are:
Communicate very clearly - Be sure your consultants have an excellent understanding of what they are to accomplish. One method that I use is to require regular meetings, and I ask my consultants to write up
minutes as a report to me. By reviewing these minutes, I can catch any miscommunications and correct them before they get translated into incorrect solutions. The purpose of having them write up
minutes is simple - they tell me their understandings of what they heard and committed to in
meeting.
Plan everything carefully - I like to manage projects as a pyramid. I begin small with an initial analysis (often a proof of concept), then expand into a larger analysis, then a design, implementation and finally quality assurance and installation. The reason I do this is
first phase (proof of concept and perhaps some analysis) are done time and materials but are very short. Once this is done,
analysis can be done with some reasonably accurate cost estimates (just for this analysis, though). And once that is done,
rest of
project should be fixed-price.
Validate ALL assumptions - As you work through projects, create an assumptions document. ALL assumptions should be listed in this document. What is an assumption? Anything which has not been verified through actual testing, or, in other words, something taken on faith. Every single project failure that I've seen has been
result of an unverified assumption of one form or another. And every single assumption is an opportunity for your consultants (and other variables as well) to destroy your project.
Consultants are not your employees - Do not under any circumstances treat them
same as your normal staff. The IRS and other government agencies will get very upset if you even think about treating them
same as your normal employee. In addition, you will find your people will quickly come to highly resent them (and you) if you do so.
Consultants do not get special treatment - If special requests from consultants help them get
job done quicker and faster, then by all means go ahead. However, consultants are generally expected to provide their own tools (laptops and such), do not get training on your dime, and should not receive permanent working conditions. According to
IRS, consultants are temporary, must supply their own materials, and must be short term.
Consultants are there to do a job - It's best, in my experience, to hire a consultant (or consulting group) for a specific task at a time. You need, say, a SQL 2000 server installed and optimized, then hire a SQL 2000 consultant to do
job. When he's finished, let him leave. Later, when you need an Apache web server built, then hire a consultant with Apache experience. If you need a payroll system modified to suite your company, then hire a consulting team for that purpose. The point is you use them to get a job done, then let them go.
Consultants are not loyal to you or your company - Keep this in mind at all times. A consultant has no long term commitment to your company (if he does, then he's not a consultant, he's an employee). Therefore, do not expect or demand long term loyalty or thinking.