Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
17  
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. –  Steven Ellliott Jr May 16 '11 at 18:52
14  
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. –  Robert Harvey May 16 '11 at 18:53
15  
@Steven I don't think it makes you a moron to want to earn more money... –  rmx Jun 8 '11 at 10:05
2  
The consultant develops stuff that the developer has to fix or completely rewrite later because it's all crap. True story. –  MetalMikester Feb 27 '13 at 20:42
4  
@MetalMikester and again it depends on the consultant. And show me a developer creates software without bugs. –  CoffeeCode Mar 13 '13 at 21:43
show 1 more comment

14 Answers 14

up vote 55 down vote accepted

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).

share|improve this answer
    
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? :) –  Steven Jeuris May 16 '11 at 19:26
1  
@FrustratedWithFormsDesigner is absolutely fine, I'm just being pedantic more than anything. –  Gary Rowe May 16 '11 at 19:27
12  
@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. –  FrustratedWithFormsDesigner May 16 '11 at 19:29
2  
@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. –  Gary Rowe May 17 '11 at 7:52
2  
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. –  Spoike Feb 1 '13 at 8:13
show 4 more comments

A "Software Consultant" differs from a "Software Developer" based on terms of employment. The "Software Consultant" is hired as a contractor for a specified period of time and for a very specific task/role/project whereas the "Software Developer" (who is not a contractor or consultant) is a full-time staff member on salary, and may have multiple roles/projects within the company.

"Sofware Consultant" could refer to a developer/programmer who is employed on a contract-basis rather than a developer/programmer who is employed on a full-time basis. It could also refer to someone who give guidance and high-level project management/design/architechture, as others have mentioned, though in my experiences the title "Software Consultant" usually ends up being someone who works 60-90% of the time as a developer/programmer and is employed on a contract rather than full-time.

Any developer can be a Consultant by working as a contractor. To do this it usually is a question of either being a freelance contractor, or working with a consulting firm.

share|improve this answer
2  
Well, I worked for a startup as a contractor, didn't get even a single penny extra. On top of it even worked on weekends for a pizza and diet coke and that too in San Jose. On the other hand, my "consultant" cow-workers got paid for every single hour they worked on weekend or late evening. San Jose part is to emphasise that people do work for free even in Silicon Valley :P –  Kumar May 16 '11 at 19:06
4  
In this case it might be that the "Consultants" simply had better contracts (or weren't afraid of enforcing them, or had some Consulting firm backing them up) than the "Contractors" (you). Did your contract specify that pizza and diet coke were acceptible compensation (and why didn't you at least hold out for regular Coke)? –  FrustratedWithFormsDesigner May 16 '11 at 19:08
1  
not true - many developers are also contractors –  Steven A. Lowe May 16 '11 at 19:52
1  
@Frustrated "whereas the Developer is a full-time staff member on salary" –  Steven A. Lowe May 16 '11 at 20:14
1  
+1 for the rewording which does clarify the issue –  Gary Rowe May 16 '11 at 21:33
show 2 more comments

I don't see any different between "consultant" and "contractor" other than that the consultant somehow strikes me as classy and potentially more expensive. :)

In either case, I've called consultants/contractors "software developers" when they were working in a development role, but I also expect that when I hire someone as a "consultant" that they are going to do some level of hands on mentoring of the permanent employee team. I expect that when I hire a consultant, I'm hiring someone who already has experience in the technology that I'm hiring them for, and that it's quite possible that most of my permanent team is already coming up speed on the particular details of that technology. So I expect that my team will pump the consultant for information and the consultant will manage to both provide smart time-saving answers to the team and get a certain amount of hands work done at a faster speed/better quality than my just-coming-up-to-speed regular employees.

In other cases, I've hired consultants to be permanently "consulting" - meaning they aren't doing any hands on work, they are teaching the team to be a better team or to be better with a given tool or technology.

As the other posts say, I don't expect that consultants will be permanent. I do expect that regular employees will be permanent, or at least will have an affiliation with the company that lasts beyond a single project or a short time period.

If you want to become a consultant and charge accordingly, I'd say you need some resume building. When I review consultant resumes, I look for a really solid depth of experience on cutting art tools and technologies. It varies from domain to domain, but I'm looking for someone who's implemented complex stuff at the bleeding edge, so that they've already hit the learning curve on the technologies I'm trying to implement. Most of the consultants I know are addicted tinkerers. They work hard in the day time and then spend their evenings running even farther ahead in their areas of speciality because they know that they need hands on skills to sell to their next employment.

share|improve this answer
2  
+1 for some excellent points –  Gary Rowe May 16 '11 at 19:29
1  
So as a hiring manager/person apart from experience do you also look for certifications and research papers done by the consultant? How do you interview them? AFAIK, one hires a consultant when they lack the skill and then how do you check that resume is not bogus and person does have those skills? –  Kumar May 17 '11 at 3:40
    
Personally, I'm not a huge fan of papers and certifications. It's a bonus if they've got them, but if I'm looking for someone who knows something fairly cutting edge, then I don't expect that there's a certification that will help, and not everyone is a paper writer - after all writing a paper and writing good code are pretty different things. I can generally tell that someone is giving me bullsh-t if I ask them to explain an architecture using a given technology and they make no sense. I usually have enough depth in the area I'm managing to be able to keep up past the BS level. –  bethlakshmi May 17 '11 at 13:55
    
Some how I missed your reply, not sure why. Anyway, thanks. But not all the organisations have an expert to select a consultant. So is it like you "hire" a consultant to find you a consultant? Consider this, an organisation working in hard code MS technologies needs an expert for Unix, how would they select the consultant? Is it like hiring the most famous one based on social/professional networking & not evaluating the tech skills? –  Kumar May 18 '11 at 6:29
    
I'm not saying I'm an expert in the area... when I need to go way outside my area, I'm still asking questions of the consultant and asking him to explain. I also tend to ask the general "what do you think the top 10 things to avoid in your area of expertise". This usually lines up to SOMETHING I know about, or I can do a bit of research on forums like Stack Overflow and see if the guy is on the money. The biggest mistake I ever made was hiring a guy who didn't make any sense when he explained stuff. I thought it was my lack of knowledge... turns out the guy didn't make sense to anyone. –  bethlakshmi May 18 '11 at 14:05
show 1 more comment

Consultants are supposed to improve the business not just develop some software.

I've been a developer for over 30 years. I've only known enough to be a consultant for the last ten or so.

share|improve this answer
add comment

How to become a software consultant:

  1. Go to a copy shop and print some 100 business cards with your name, your phone number, your mail adress and the title "Software Consultant".
  2. Mission accomplished: You are now a software consultant.
share|improve this answer
add comment

It's too bad the question is framed as it is. I think a better question might be "How is a 'software contractor' different than a 'software consultant'?" It is these terms that really raise the question, at least here in the U.S.

The term 'software developer' can apply across any type of employment, developer being the type of role or resource one serves. The contractor/consultant issue revolves around employment issues, and again, I am speaking in reference to how it works here in the U.S. But to really answer this question definitively (and you will see, even that is difficult to do!), first we need to define some terms and explore some history.

A software developer, regardless of how they are employed, creates software, and probably does many other tasks related to the creation of software, usually with the exception of a management role, although even that is quite common on some projects, such as team leads. Software project and program managers rarely get involved in the nuts-and-bolts activities of creating software (aside from team leads). Again, these are roles.

As to employment and payment, there are several types (applicable to U.S.). The most common type of employment is regular or 'direct,' where the worker is on the payroll of the company developing the software. They fill out a W-4 with the employer each year and receive a W-2 from that employer at the end of the year for their taxes.

Outside of direct employment, there are contractors, and (depending on definition) consultants. The term 'contractor' is a bit misleading, however. Technically, a contractor is an entity or person who signs a contract with the client company, in this case the one developing the software. But the reality is, nearly all contractors in the U.S. work through a contracting company (also refered to as 'body shops' and even less complimentary terms); they do not 'contract,' per se, directly with the client. These so-called contractors actually fill out a W-4 with the contract company -- not the client -- each year and receive a W-2 from that contract company at the end of the year for their taxes. They are taxed the exact same way as their directly-employed brethren and sisteren. As far as the IRS is concerned all W-2 workers are direct employees.

The point here is that it is the 'contracting company' that actually signs a contract with the client company, not the so-called contractors (the 'contract employees'). The contract employees are actually employed by the contract company, and the contract company is the party to the contract with the client. So the contract and direct employees working on a software project are essentially the same in terms of taxation, and usually work in adjacent cubicles with no particular special status, the only major difference being that contractors are limited to a certain time they can continue working on the project for that client. This is because the contracting company they work for is not supposed to keep them there for longer than that time or our IRS may reclassify them as direct employees, and the parties (client and contracting firm) to the contract would become liable for the difference in taxes.

In my own experience, contractors are often extended by HR trickery, re-classifying a contract employee from, say, 'contractor' to 'temp' or the like. Clients that wanted to keep me on have done that on occasion. The client companies do have to be careful though; the IRS may audit them to determine the true relationship of those contractors. If the IRS finds that the client has been treating them like direct employees, keeping them on site indefinitely for instance, the client becomes liable for any benefits those (now-regular) employees were not receiving as contract employees. And the contracting company can be liable as well. I do not know all of the ramifications, but it can become messy.

Oh, yeah. What is a 'consultant?' That term is kind of 'squishy' -- there have been many wars fought over that sacred territory. It used to be, maybe 40 years ago, that 'consultant' was more-or-less synonymous with 'independent contractor,' meaning a worker who directly contracted with a client. That is, the worker signed a contract with the client (maybe the one developing software, as above). That worker does NOT fill out a W-4 with the client and does not receive a W-2 from the client at the end of the year. Instead, a direct contractor (what was often referred to as a 'consultant' back then) receives a 1099 from the client. The direct contractor usually had their own corporation that paid its taxes at corporate rates and had to obey IRS business tax rules (and of course also enjoyed benefits of being a corporation!).

Along with this very different tax arrangement, the term 'consultant' had a certain aura about it. Consultants were generally more experienced (at least 10 years working in the field) and usually had some area of expertise that might have been difficult to locate, making them very desirable to clients, and clients were willing to pay $500 or $1000 a day (a very generous amount then) for their expert services. Consultants ran with an elite crowd of fairly-well connected people, and it was generally hard to break into those cliques. Membership was necessary if one was to be a successful consultant. There was an organization, recently defunct but being revived now, called ICCA which was sort of an old-boys club for computer consultants. Anyone could join, and I did at one point; being accepted and getting work was a different story.

There was a niche industry also, especially in places like the financial district of NYC, that specialized in brokering contracts for these consultants. But back then, in order to get work in software -- and especially the financial sector -- one had to be well connected (I know because I had tried back then). Today, these brokers have been swallowed up or run out of business by the big placement companies. Independent contracting has been nearly eviscerated (it does exist, but that sector is much smaller now, nearly non-existent) by a series of legislation that has slowly and certainly destroyed independent contracting like that.

Today, the term 'consultant' is rarely used in the software development employment realm. At least, I have rarely heard it. Sometimes a contract software developer is referred to as a consultant, but it is hardly any distinction other than, perhaps, some attempt to flatter or compliment some particular contractor for their expertise in a throw-back to that earlier tiem when the term meant something special.

I should state that there are still software project managers called "software management consultants," but almost all of them are also direct employees to some contractor company that performs the same purpose to these management contract employees as the companies that provide the W-4's to those software developer contract employees. And, as you might imagine, sometimes they are the same contract firms. Some clients want to deal with one source of workers for both developers and managers working on a project.

Genuine, independent software consultancy in the U.S. is mostly dead thanks to changes in federal legislation and the changing landscape of corporate America. As companies (potential consulting clients) get larger, their HR departments become more brutally centralized, arrogantly efficient, and technologically black-boxed. It is nearly impossible these days to contact a hiring manager to discuss an employment opportunity of any kind, direct or contract. Part of this is corporate secrecy and employee protection, but a lot of this is the trend toward ensuring that as many workers as possible are direct employees, or at least working through a contracting company.

The alternative to this scenario, similar to that earlier time of 40 years ago or so, was quite different. Back then, it was more difficult for employers to control the work of their contracted employees, especially the consultant type. Control of workers has been increasingly becoming the main issue of employment in the U.S. to ensure increasing productivity which, in turn, is important for competition with nations like India and Vietnam, whose workers are even more accustomed to ever-increasing demands of productivity.

The key to understanding all of this is to understand that the independent contractor cannot be told exactly how or when to do their work. They usually must provide their own tools. They have to comply with about 20 of these types of constraints for the IRS to recognize them as legitimate independent contractors. Otherwise, those legal issues I referred to above kick in, along with potential lawsuits between contract employees and their contract companies for back-benefits that would then be lawfully due to them.

Sorry for the long-winded explanation, but it really is this complex. I am a software developer who has worked direct for companies and through contract companies. I have many times considered going "indy" but that has become a very treacherous (and intimidating!) road to follow in recent decades. And the corporations, plying and leveraging their influence in government, continue to tighten up this arrangement. The American Software Consultant is dead; any remaining survivors are suffering their last breaths.

share|improve this answer
add comment

My understanding of "consultant" is someone who does both the business analysis (requirements gathering) and at least some software design/development, although they don't get quite down as far into the trenches as a fulltime software developer.

IOW, consultants wear multiple hats, whereas developers wear the one hat.

share|improve this answer
add comment

Consultants are more paid for each hour they work.

But as a permanent full-time developer in your company, you get your salary each month. Your job is "safer".

Young people like challenges and like to work as consultants. This is nice if you like to see new faces, have more responsability and independence.

I suppose after marriage and children you prefer "security" rather than "adventure". You like to know what's going to happen next week, etc.

I'm not sure the pay is the most important point here. Working alone has a lot of advantages.

You can't buy happiness with money, and sometimes I'd rather earn $500 less each month (althrough if you work at home you don't have to pay for transporation for example) than work on shitty projects, in the busy 10-persons-per-room environment with delays and everything...

It's the same as working as an employee or create your own business. (althrough there is almost no investment to do as an alone software developer)

share|improve this answer
3  
Depending on the company, full-time employees also get benefits such as health and dental insurance coverage through the company plan. They may also get a pension and other nice "employees only!" perks. Contractors and consultants never get that (as far as I've seen), and if they want it then they buy it on their own. –  FrustratedWithFormsDesigner May 16 '11 at 19:28
3  
@user25382 Couldn't disagree more - I'm a contractor and am married with kids and love the ongoing adventure that is contract software development. I perceive the risk of contract software to be equal to that of a permanent worker. –  Gary Rowe May 16 '11 at 19:30
3  
@Gary Rowe I actually perceive the risk of contract software to be lower than that of a permanent worker. –  Gratzy May 16 '11 at 19:37
1  
@Gary Rowe yes exactly. In addition you are forced to keep your interviewing/selling skills sharp. I have also seen companies keep their contractors and release their full time staff, as well as bring in contractors before hiring full time staff. –  Gratzy May 16 '11 at 19:43
2  
You seem to be mixing consultants with contractors. IMO, those are very different things when it comes to job security. Most, if not all consultants are full-time employees with normal amounts of job security. –  Duncan Feb 1 '13 at 7:56
show 3 more comments

I know there are some companies that call themselves consulting companies but from what I understand they don't do much consulting in the traditional sense.

The only difference seems to be that they only employ experienced developers and are contracted out to large companies to do the work that they themselves could do in house but hopefully to a higher standard.

share|improve this answer
add comment

I find it interesting the several answers begin "A software consultant is not an employee..." - they are an employee somewhere! And in particular, the OP is interested in how to become a consultant, which is certainly something that should be presented from the employee's perspective.

I work in the consultancy field and I would suggest the primary characteristic one needs to succeed is to be highly personable. This derives from the constant need to be in contact with customers. Anyone who is a "software consultant" but is not directly involved with customers on a near-daily basis is simply a software developer.

In my experience, software consultants are also programmers. However, sometimes they are not quite as talented as their software developer counterparts - mostly because they've had to hone other skills as well, including presenting and proposal writing. Of course, this varies between consultants.

I've also hired consultants who were previously software developers. After an interview or two, I can easily check their software development talents are up to scratch. I then have to focus on whether they are sociable enough (even presentable enough) to represent the company in front of customers. To some extent, you need to look good in a suit, as shallow as that sounds. You need to be able to present confidently in front of customers and field awkward questions. These are skills that only some software developers have.

Finally, I would add that I love my job as a software consultant. It's not because it pays well, although I won't complain about that. It's because I'm involved in many customer projects with a wide variety of problems to solve and technologies to use. That, for me, will always beat working on the next release...

share|improve this answer
add comment

I guess, you'd have to be a kickass software developer or atleast a good one, to give other people advice on how to develop software.

Simply put, a S/W Consultant is a S/W Developer with proven experience.

Just look back in time in your own life - when you started driving, or reached the age to get a driver's license, did you ask stuff about driving and license application from someone younger than you or someone older who had a license and knew driving ?

Also, consultants often do the job for you - the developing part, besides other stuff that is around the creation of a software product, from start to finish. Atleast the big organizations do, they handle every aspect of the product creation for you. You just need to tell them what you want, how you want it done, what the critical stuff is, deadlines, documentation, etc etc.

TCS comes to mind. Tata Consultancy Services. Don't be misled, they're one of India's very bright IT services companies, a fork of the Tata group of industries, under Ratan Tata.

TCS' notable works - digitazation of the passport application system, UID, and other major govt works.

share|improve this answer
add comment

In practice, permanent employees can be fired at any time, on any day, at any minute. In this sense, permanent employee is not any better off than contractors. And indeed, "permanent employee" is just a contractor without a well-defined contract, which is worse than formal contractor.

share|improve this answer
3  
Depends upon the country in which you work. In the UK, a contractor can be let go very easily, whereas only a carefully constructed permanent dismissal will avoid an employment tribunal. –  Duncan Feb 1 '13 at 7:54
add comment

Developer or Contractor - You go looking for open software development positions (no end date) or contracts (defined end date).

Consultant - You make yourself known, and companies request your software development services, normally under a contract.

Everything else is ancillary based on the mechanics of the above.

share|improve this answer
add comment

I think you guys have the wrong idea. Differentiate between software consultants who have their own company and individually consult vs software consultants who work for the Big 4. Consultants have more business skills/relationship management focus and limited expertise developing. Software developers are mostly hands on, hardcore technical and over a period of time their hard skill set becomes stronger than a software consultant's. A consultant has to split his/her attn between business and technical work, so his/her skills trend more towards business as seniority rises. If it is a software consultant that is individually operating, then that is someone who is proven to be awesome and can afford to give advice and services at a high price. The software consultants who work at places like the Big 4 consulting firms are more like jacks of all trades. A company like Google or Amazon or Apple would rarely touch these types of people after consulting is done with them unless they kept their hard technical skills up outside of work.

share|improve this answer
4  
this post is rather hard to read (wall of text). Would you mind editing it into a better shape? –  gnat Sep 22 '13 at 6:16
add comment

protected by ChrisF Sep 22 '13 at 11:21

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.