How is a "Software Developer" different from a "Software Consultant"? What makes a consultant?
I have seen a lot of people claiming themselves to be a "software consultant". These consultants do what a normal software developer does, write code, estimate tasks, fix bugs and attend meetings etc. The only difference being the financials, consultants end up earning more. Then how is a software developer different from a "consultant"?
In addition to the main question, I would like to know how can a software developer become a consultant? Are there any specific guidelines for a consultant? Do they need to amass certifications and write up research papers? Please do not confuse the software consultant with a management consultant. Software consultants I have seen are not managers.
You can charge a lot more as a consultant; it's basically a self-assigned BS term to be able to market yourself to unsuspecting companies that think the more they pay for some moron calling himself a consultant, the better off they are.
On the flip side, the company does not have to hire an employee, so in the long run it can actually cost less to pay a consultant. Speaking with a little less skepticism than @Steven, in theory when you pay a consultant, you get his years of expertise in a particular field.
@steven, you may or may not be right. I have seen companies telling their employees to offload as much as possible work to consultants and in plain English, screw the consultant as much as possible. The companies I am talking of include fortune 500. Those are management consultants which get paid for all the BS.
The consultant develops stuff that the developer has to fix or completely rewrite later because it's all crap. True story.
@MetalMikester and again it depends on the consultant. And show me a developer creates software without bugs.
A "software consultant" is a software developer who is a consultant, right? So your question is really, what makes someone a consultant? And there are three things typically called consultants 1) Contract (temporary) employees 2) Employees of consulting firms 3) Freelance consultants. 1 & 2 are really semantically the same. The difference is whether you hire the person or the consultancy on a temporary basis. 3 is someone who has their own business.
Here's a list of softies
Software developer - is an employee on the full-time payroll and does the job of implementing the requirements for the application. Developers skip around on different projects working as when directed by their employers.
Software consultant - is not an employee, and is brought in to provide advice (consultancy) as to how the application should be implemented using current industry approaches. Often the consultant provides technical advice on how to configure a large application (SAP, Oracle etc). Consultants, in my experience, are not generally programmers.
Software contractor - is not an employee, and is brought in to provide skills and expertise in current industry approaches. Typically the contractor works on a single project and sees it through to completion, programming as required. They are not under the direction of their employers, although they may assist in other areas as a professional courtesy.
How do you become a Software Consultant?
Usually as a result of working for a software consultancy that hires you out on a daily basis. Imagine you work for Oracle and some large company needs assistance in setting up middleware. You're a permanent employee working on a contract basis for a third-party. This isn't always the case (see next section), but it is the usual path.
How do you become a Software Contractor?
Usually as a result of creating your own company and letting recruitment agents know that you're available for work (programming, consulting, both...) . The agency then hires you out on a daily basis, subject to certain contractual terms. You can go direct, but it's much more difficult (the agent's role is to land the client, your role is to provide the expertise).
Damn, first I read @FrustratedWithFormsDesigner's reply and I thought I could follow. Now I read this contradicting reply, and I'm lost again. :) Care to fight it out? :)
@FrustratedWithFormsDesigner is absolutely fine, I'm just being pedantic more than anything.
@Steven Jeuris: Gary has given a little more detail between "consultant" and "contractor". In my experience, the two roles very often (but not always) overlap and the lines get blurry, so I didn't go to that level of detail.
@Gary Rowe, when you say consultants are not generally prohrammers, does that mean a developer/programmer will make a better consultant? I am a developer and would love to be a consultant.
@Kumar Developers make good technical consultants because they have the programming know-how that the IT department needs to get the software to do what they want. Remember, being a consultant is more to do with the nature of relationship between you and person who pays you.
Technically the definitions aren't entirely correct as you don't need to be self-employed. Most software consultants and contractors I know (I'm a contractor myself) are employees at firms (such as Accenture, IBM, Logica etc.) that offer those services.
I'm confused by the responses to "Nick" about software engineers. @TheMuffinMan Did your id used to be "Nick"?
In my experience contractors don't usually get started by "creating your own company and letting recruitment agents know that you're available for work (programming, consulting, both...)". I find that that is more common for consultants. Most contractors I know work as regular employees for a 'body shop' like Phelonius wrote. Perhaps your description fits more in the SAP/Oracle world than in the product development world that I know.
@GaryRowe, interesting answer. There is a guy with last name of Dietrich that would tell you that working for a company that gave you the title is not a consultant because he is still working for somebody else or something like that. Not sure if you have heard of this individual, he writes a lot of blogs about it. I personally don't have enough experience either way to say.