Take the 2-minute tour ×
The Workplace Stack Exchange is a question and answer site for members of the workforce navigating the professional setting. It's 100% free, no registration required.

So I've had internship experience as a developer. Now, I am looking into entry level positions to apply to. The two roles I plan to pursue are software development for a firm in Phila. + technical consulting for a firm in NYC.

I know the basic difference between the two in terms of job function: essentially developers write the code and consultants tell the business how to go about improving IT infrastructure or help build an IT infrastructure. Little to no coding in technical consulting. Is this pretty much right?

My main question is, how do these differ in terms of potential for career growth and quality of work? Is one easier to move up the corporate ladder in? Does one usually hit a higher salary eventually? Is one generally more fun/exciting than the other?

My perception is that in development, its easy to fall into a dead end job. I look into a lot of successful people's background and a few started in consulting (not necessarily technical consulting though)

EDIT: Three really good answers, very insightful, thanks a lot!

share|improve this question
1  
I just want to say, Philly for the win. –  acolyte Aug 14 '12 at 16:55
add comment

3 Answers 3

up vote 7 down vote accepted

Wow... apparently there's plenty of opinions to go around on this. I don't totally disagree with these answers, but I see it from a different perspective:

First - terminology - see @Chris Shain's answer for In House/Consultant/Contractor for the stability vs. pay range - this is pretty much true, although you'll see some cases play fast and loose with terminology. For example the employee for a US defense contractor can usually expect to fall far onto the "in house" side of that spectrum in both stability and pay - but they are called a "contractor" in that their overall business operates like a contractor in the sense of selling services to the defense sector. Regardless of terms - the sliding scale is dead on.

Next, the questions:

Coding vs. building - Is this pretty much right?

Not in my experience. I've seen plenty of consulting gigs where coding chops were required and plenty of development jobs where integrating and assembling IT infrastructure was part of the job. It depends on the business you're in. Many consultants consult to software development teams where they help the team be more effective with tools - in which case they need to be uber-developers.

In terms of the work, I'd expect more of a tradeoff in:

  • a consultant has to sell more than a regular employee - he has to sell the fact that his ideas are good ideas, and in many cases there is an "upsell" need in his business. An employee working in an in house team, by comparison, gradually earns the trust of his teammates, so it's not as much of a "sell" as the eventual building of experience. And an employee rarely ends up having to continue to be charming just to retain employment. This is a basic personality trait that can be a big factor in job satisfaction.

  • a consultant (even more a contractor) is expected to come on board with the skills. As a hirer of consultants, I will send them back if I have to pay money for them to be educated on anything beyond the problem domain of my infrastructure and my security rules.

My main question is, how do these differ in terms of potential for career growth and quality of work?

Career growth - depends what you are aiming at. I believe the qualities expected for promotion are different and the learning objectives are different. Consultants tend to be very strongly technical with high communication skills. They get more money for being better at these things and training opportunities to facilitate it. However, the job is what it is - the hours, the travel - a company's business model is unlikely to change so the work life balance here is what it is and many consultant roles are high travel/long hours/high pay.

In in-house development there are typically two tracks - the ever-more senior guru of technical things, and the management track. In both cases, taking responsibility for greater scope, greater accountability and stronger communication requirements is the way to success. The technical track does it with strong technical communication, the management track does it with overall team/interpersonal communication about technical problems. The exposure to a diversity of problems/solutions tends to be smaller as the number of systems a single company makes or is involved in tends to be more limited. But the depth tends to be greater and you get to see a product grow up and evolve in a way you may not as a consultant. Promotion can be as much a part of assimilating company culture as execution on a particular project.

Is one easier to move up the corporate ladder in?

I'd say the bigger influence is the size of an organization and it's growth. If the company isn't growing, it's unlikely it will be promoting people.

Does one usually hit a higher salary eventually?

Yep- the higher the risk of unemployment, the higher the salary.

Is one generally more fun/exciting than the other?

It's definitely a case of personality fit and what you want. I've always been happy as an in house engineer. I have friends that love being consultants. They think I'm too static, I think they are too superficial. They see my job as boring because I'm stuck with the same people all day, year after year, I see their jobs as frustrating because you never have the time to really get to know people or see the whole project come to fruition.

It's what satisfies you most.

share|improve this answer
add comment

I am now in academia where I (try to) transform students into developers for most of them, and consultants for a few of them. I am in France, so my answer is somewhat localized. Moreover, I have been a full-time technical consultant for 1 year.

At the beginning of their career, developers are earning around 32-33 k€/year (gross salary), that's around 40k$/year. In contrast, a very junior technical consultant starts at 36k€ (45 k$), so even at the beginning of the career there is a difference for the salary point of view.
After around 10 year of experience, a developer reaches a plateau in the salary, and the increases stay marginal if the developer does not take some kind of management responsibility. This plateau does not exist at that step in the career for consultants.

Now to answer directly to your many concerns:

  • how do these differ in terms of potential for career growth and quality of work?

The potential for career growth is higher in the consulting career, except if you are THE expert in a specific domain of development. As a consultant, you know about more techniques, you see more different situations and people, etc. The quality of work is simply not comparable since it will depend on what you expect. If you want to work at the crossroads between management, technicalities and financial aspects, then consulting is better for you. But if you want to master deeply technical aspects, then you should stick to the developer career.

  • Is one easier to move up the corporate ladder in?

Yes. Usually it is very difficult for a software developer to enter the real decision circle of a company. You can be team leader, project manager, but you will rarely go beyond that point.

  • Does one usually hit a higher salary eventually?

Yes. Again, the consultant is earning more money. When I was a consultant, my salary was twice the one I have today as a full professor, and that was 6 years ago. Consultants in small to middle size firms usually earn more than those in big company. But those in very small (or freelancers) earn less, except if they are gurus in their field.

  • Is one generally more fun/exciting than the other?

It's hard to say since it is not the same job. For me it was fun to be a consultant, but it was a very demanding life where I worked 6 days a week, 12 hours a day, on average.

When I look at the career of my first students (they started to work in 2003), most of them are now project managers after being developers, fewer are managers at a higher level, and let's say 10% are consultants. The point is that you can decide after 5 to 15 years of experience as a developer to move to consulting or management. After that it is usually too late, and before is often too early (consulting requires experience).

share|improve this answer
1  
The last paragraph is especically important. –  HLGEM Aug 14 '12 at 13:38
add comment

I began my career doing in-house development for a mortgage bank and transitioned from there to a technical consulting role (doing real programming on capital markets trading systems), with a top-tier investment bank as a client. Both of these were in the greater NYC area, so it should be reasonably applicable to your opportunities.

For what it's worth:

  • Consultants are, despite the name, often (maybe even usually) not experts in their field. Many probably just got out of school- at that point in your life, you are not an expert in anything except living on ramen noodles, pizza and beer. Consultants are effectively employees who get paid somewhat more as compensation for the flexibility of the client being able to get rid of them at any time. Contractors (who are independently contracted with a client, as opposed to being full-time employees of a consulting firm) are an even more extreme example of that. On a spectrum:

Job Stability <---------------------------------> Pay

In house staff ----- Consultants ----- Contractors

  • In-house development staff have greater longevity at any given employer than consultants or contractors do, so their motivations are inherently different. In-house staff in my experience are much more risk averse and conservative, because they know that they are going to be living with the systems they build for many years. Consultants are much more willing to try the latest new thing. As a young person on your first job, you should be exposing yourself to anything and everything that you can get your hands on.
  • That said, consulting firms work their employees, especially their junior employees, very hard. If the consulting firm is anything like what I am familiar with, you should expect to work 60-70 hour weeks with no overtime pay for at least 2 or 3 years. You will learn a lot and it can be very exciting if you get to travel, but it's a brutal existence. If you get put on a client that requires travel, you'll be on the road 4-5 days a week. Because of the lifestyle, a lot of people burn out of consulting, so if you are reasonably good and your clients like you, you'll probably be able to move up more quickly.
  • Consulting firms make their money by selling people. to move up in a consulting firm, you will eventually transition from doing anything technical to doing sales. Keep this in mind- if sales is not your thing, and you want to stay technical, it's hard to do that in the management tier of a consulting firm. Contrast an in-house employee, where you will eventually need to move to management, or an independent contractor, who usually stay technical.
  • Full time employees generally do not have the flexibility to move between projects as easily as consultants do. They tend to stick to one project or group until they get promoted or leave.
share|improve this answer
1  
+1 for the very hard work, but also for the paragraph on "selling people". –  Sylvain Peyronnet Aug 14 '12 at 17:13
2  
I spent most of my career working for contracting companies, which gives you slightly more stability than independent consulting, but they tend not to look for new projects that fit you if they lose the one you're on. They're just always looking for new projects and you are just a widget to them. The consulting firms would theoretically be able to put you on the bench in between projects (technical or otherwise). –  David Navarre Aug 14 '12 at 20:21
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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