It occurred to me the other day that a lot of people don't really know what I do and how it's different from what a lot of other people do in the IT industry. If you want a detailed definition of IT, you can go here. Basically, we make computer systems that do the things we're asked to make them do (most of the time!). This industry consists of more jobs than just developers and engineers, but I'm not going to explain about the different jobs because it's unimportant to the topic.
I've been working in IT for over seven years now. For most of that time, I've been a Consultant. What does that mean? It means is that I work for a company who sells my services to another company for a fee. As a Consultant, I have a full-time job independent on whether or not my company has a contract to sell my work to another company. This is an important distinction from other people who work in IT. There are three other groups: Contractors, Full-time Employees (FTEs), and Offshore.
Consultant vs. ContractorContractors are people who contract directly to the customer, without an intermediate employer, like I have. This normally means that the Contractor is taking home more pay, but they are not receiving any benefits (i.e. insurance). Contractors, by definition, are bound to a contract with their customer, but once that contract is complete, they can either renew the contract (assuming their customer wants that), or move on to another customer. This is similar to me, but my employer also has a say in where I go. Contractors typically have to find their own gigs, or pay a placement agency to do so for them. My employer finds my gigs for me and pays me a full wage when I'm on the bench, if they can't find anything for me. When a Contractor doesn't have a gig, that person isn't earning a wage.
Consultant vs. Full-time EmployeeThe first similarity is that a Consultant and an FTE are both fully employed, complete with benefits. When I'm working for a customer, I behave like that customer is my employer. When most people ask, I don't say I work for Daugherty Business Solutions, I say I work at Best Buy as a Consultant from Daugherty Business Solutions. If I'm in a hurry, or don't want to confuse the issue, I just say that I work at Best Buy. This is also becomes one of the hardest parts of being a Consultant. When it's time to leave one customer for another one, I've already developed an affinity for the workplace and the people who I have worked with there. I've worked at eight different customers in the seven years I've been a Consultant. I'm still in contact with people from those customers through Facebook, or Twitter, etc.
Consultant vs. OffshoreThe main difference here is that I work at the customer's location. Offshore people are typically employees of a company located away from the customer's location (either in another country, or another part of the same country). As such, I get a lot of face-to-face interactions that the Offshore people don't get. From my experience, this helps me produce better results. I've worked with Offshore teams before and the results are always hit or miss. The main benefit, of course, is that the costs of Offshoring are greatly reduced compared with what a company will pay for my services. This is a real, calculable benefit, but you should also pay attention to the adage, "you get what you pay for".
Why am I a Consultant?A Contractor makes more, so why be a Consultant? There are several reasons for this. I'm lazy and don't want to have to find my own employment and I'm too cheap to pay someone to do that for me. Also, I don't have to worry about having a gap of employment when my current contract ends. If my employer can't find something right away, they'll put me on the bench and I'll do some internal work until they find something. This is the biggest benefit to me. The bench is no fun, but I'm still getting paid and I can use the time to improve my skill base or bring some value to my employer through an internal projects.
You can get stability from being a Full-time Employee, why not do that? Stability there comes with a price, monotony. If I end up not liking a customer for any reason (commute, people, atmosphere, etc.), I can request not to be renewed there when the contract is complete. As stated before, I don't have to find a new job then, I can just wait until my employer has found one. Also, not every company uses the same technology stack to develop their systems. Moving from one customer to another can increase your skill base and your personal network.
As for Offshore, until companies in the US start selling Offshore services to India and China as their labor costs increase, I'm not going to even begin to think about that.