Joshua gives an honest and thorough profile of the range of consultants.
There is a common misunderstanding in the IT industry that Linux does not offer professional support. I was recently speaking with one of my peers who was having trouble with a Windows NT server that was handling file and print sharing for a medium-sized network. My associate was frustrated because Windows NT does not handle high-bandwidth situations well. If an end user were to drag a very large file over their network, the load on the server would go up considerably.
I asked my peer why he did not use a solution such as Linux with Samba. The answer I received was interesting. It was not “Linux, are you kidding?” or “Linux sucks!” It was “What if it breaks, and frankly, who do I hold liable if it does?” I had to give him a sidelong glance, since one of my company's (http://www.commandprompt.com/) focuses is managed-Linux services.
While talking to other clients, I have received many similar responses. The press has gone to extraordinary efforts to promote Linux. It has also gone to extraordinary efforts to damn Linux. In the end, the press, the key marketing tool of the Linux industry, has missed the entire point. The point is that professional, commercial, Linux-support corporations do exist. Instead the press has concentrated on either Internet-related support resources such as USENET or the Linux Documentation Project (http://www.linuxdoc.org/). They also mention companies like LinuxCare or Red Hat. The problem is you cannot touch, praise or, if necessary, physically strangle Red Hat, LinuxCare or comp.os.linux.networking.
Don't get me wrong. I am playing devil's advocate here. The major firms like Red Hat, VA Linux and LinuxCare have their place in the support marketplace. They are excellent with phone-based support—if you want to pay $325 US per incident to Red Hat. I have news for you: that is more expensive than Microsoft. LinuxCare rides in at $180 per hour and you specify the cap. Excellent: I get to pay $180 an hour and hope they can fix it. What happens if they don't? At least with Red Hat support is incident-based.
If you are a medium- to large-sized corporation, Red Hat or LinuxCare may be good for you. They offer the type of service that a lot of smaller consultants cannot; they are always available. They can usually offer quicker response times because they have people waiting by the phone just to take the call. They also have a lot of internal resources that they can call upon. If one engineer does not have the answer, the one sitting next to him might.
Price is not the only disadvantage. An engineer cannot see what is happening. They must be told, and understanding and accuracy can be lost in the translation. Of course, you could allow the engineer remote access to your machine.
Documentation can be an issue as well. When was the last time you used phone support and, when you were finished, received a detailed summary of what the person did, how much time it took them and what, exactly, was fixed?
To this end, small consulting firms and independent consultants are a good fit for many corporations. If you have 1-100 users, they may be your best solution. The consultant is a sure-fire way to make sure you get your hands on someone if something is broken. Typically, they are local, and sometimes you may even know where they live. There are many consultants who will actually be more knowledgeable than the standard engineers at a place like Red Hat. The consultant will have a tendency to work more directly with machines, have a personal lab and try new things.
The willingness of consultants to experiment can be both good and bad. The good side is the consultant will be familiar with more of the software and solutions that Linux can provide. The bad side is the consultant may find a good solution and charge the customer to install it, when, in actuality, the customer is being charged for the consultant to learn how to install and use the program.
I should stress that this is not usually the case. The business perspective is that you shouldn't have to pay someone to learn how to provide you with the service you need. In technology, however, a customer will often demand a type of technology that the consultant does not know. The business can either pay the consultant to learn and install it or find a consultant that already has knowledge of the technology. It is the consultant's responsibility to be honest with the customer about his or her level and breadth of knowledge.
So, how do you find a consultant? That is a tough one. The largest database of Linux consultants is the Linux Consultants Search and Guide located at http://www.linuxports.com/. It currently has over one thousand entries, with locations ranging from California to Turkey, and you can search via mail code, keyword or other options.
Another possibility is your local Linux user group. You can find a list of them at http://www.linux.com/lug/ [see also Groups of Linux Users Everywhere (GLUE) at http://www.ssc.com/glue/groups/]. Linux User Groups can be an easy way to network and find someone to help you with your Linux machines. If you are trying to locate a Linux consultant, the most difficult part will be finding a good one. Many consultants are extremely independent. They want to remain entirely autonomous; they want to do things their way, and unless you speak geek, they communicate poorly.
The trick is to find a consultant that you can communicate with. If you can find a consultant that communicates well, you will get a lot farther. There is a reason many large consulting firms, Linux or otherwise, have a customer service department or sales people to take your initial calls. Technical people can be very hard people to deal with on a common level. If you are uncomfortable with computers, they can be even more difficult to deal with. To know whether you have found a good consultant is difficult, but there are a couple of things that you can look for:
A good consultant will be patient without being condescending. They will communicate with you. They will explain everything they have done or will do in complete detail. They will do so more than once, if necessary.
He or she will provide everything in writing. If they are completing a project for you, large or small, they will provide a project plan. The project plan can be as simple as a half sheet of paper for certain tasks, or it may be ten pages for others. It just needs to be documented. If it is a service call, the consultant will provide more detailed communication as the call progresses. They will help the customer decide what actions to take. When the call is completed, they will provide a written analysis of what they did and how it fixed the problem. The analysis will be repeated on their billing.
He or she will bid on everything that they do. They will say, “I think it will take two hours to complete this job.” However, it is important for the customer to realize that computers have attitude problems and that most consultants work on a time-and-materials basis. It may take more or less time than the initial estimate. It is the consultant's responsibility to make sure that the customer understands this.
A good consultant will happily provide a list of references that verify their knowledge and ethics. A note on this: Linux is young, and there are a lot of new consultants out there just trying to get by. Do not be afraid to use an untried consultant. If you are concerned about their skills, counterbid the price. Ask them if they will come out, without charging you, to assess the problem. Tell them that you will happily pay their full rate, plus the time they spent to assess the problem, if they give you a reasonable assessment and are able to fix the problem. This will allow you to judge their mannerisms, assess how they will perform and give you a general feeling as to whether or not you can work with the consultant.
A good consultant will not do only Linux. There are a ton of consultants out there who say “We only do Linux.” It is supposed to make them seem like a better consultant, at least technically. The problem is (unless you are a Linux-only company) you will have to deal with many different vendors.
I have a customer that has WTS (Windows NT Terminal Server) 4.0/Citrix, AIX, Linux and SCO. I have to manage all of these machines plus the users that are connecting to them. If I were just a WTS person, I would not be of much use to them. (But yes, I advocate switching all to Linux at every opportunity.) It is very important for the consultant to understand your environment. Do not expect them to be an expert in every environment, but a basic understanding of the environment is important. The ability to perform most common administrative tasks of other environments is also important.
On the other hand, do not expect that the person that has been handling your Windows NT network has a clue about Linux. Linux is a completely different beast than Windows NT. It operates differently and takes a different kind of love to make it work. Linux will run without trouble for years at a time if you have the right person to take care of it. If you get the wrong person, it will be a source of heartache forever. If you are thinking about migrating to Linux and you want to use your existing consultants, make sure that they have actual implementation experience with Linux.
If this is what a good consultant does, you may be asking yourself why your consultant is not doing these things. There is a drawback to having a good consultant. The truly good consultants, if they are following everything I've described, would have to bill you like a lawyer just to stay alive. When I call my lawyer, even to ask a simple question, I am billed for that phone call. In order for the firm to remain profitable they must bill me. It may only take ten minutes of their time on my end, but it could easily take 30-45 minutes to document the call, give it to the assistant, have the assistant record the call and put the notes of my call in the file for future reference. If you get six of those phone calls a day, that is three hours of time that needs to be billed.
As mentioned previously, the consultant, just like a lawyer, operates on a time-and-materials basis. In order to provide the customer with the level of service just described, the consultant would have to charge more than the standard rate. They would have to take time, and thus money, to create all the documentation. They would have to charge you to communicate, negotiate and sometimes to simply put up with you. The customer may always be right, but it doesn't do the customer any good if the consultant can't get his work done. The more of the consultant's time that the customer takes up, the more expensive the consultant will be. Do not micromanage the consultant; build a relationship of trust with him or her, but make sure he or she sticks to what you agreed upon. It is a very fine line.
Given all of this to consider, how can you tell a good consultant from a bad one? There is much more to a good consultant than technical know-how. There are varying degrees of bad consultants, and I don't think that very many of them are truly bad. Personally, I have a difficult time dealing with “management”. The people wear the ties, read PC World and think they have a clue really get on my nerves. Does this make me a bad consultant? No, not if I communicate professionally and am patient with the guy wearing the tie who just read the latest issue of PC World.
Again, most consultants aren't bad consultants. The majority of problems that I have seen between consultants and companies were caused by a lack of communication. If you lack good communication skills you will always have difficulties. Communication between the customer and the consultant takes two forms: customer management and consultant management.
A good consultant will have good customer-management skills. Customer management is the ability to communicate with the customer without intimidating, insulting or badgering. It is the ability to resolve issues without becoming defensive. It is the ability to address a customer as an equal but provide boundaries within which they can work with you. The easiest mistake to make as a consultant is to take a call after hours but charge the customer a normal rate. A few may call this customer service, but customers by nature and by good business sense (attempting to save money) will try to take advantage of that. If you do it once, you can mistakenly set a precedenct.
Conversely, a good customer will manage their consultant. The consultant must understand clearly what their role is and what it is the customer would like them to do. If the consultant does not understand these things, you will consistently run into, “But I thought...” or “Wait, you told me....” If you utilize consistent procedures, thorough communication and clearly expressed expectations, you will see the majority of your consulting issues fall by the wayside.