views:

183

answers:

8

I'm thinking of joining the wonderful world of software consulting and I'd like tips on finding the right kind of company to work for.

+7  A: 

If you are not familiar with it, you can take a look at the Joel Test and related material.

akf
Most of the Joel Test is irrelevant, especially in Agile communities.
jpartogi
I disagree, jpartogi - which parts of it are irrelevant in Agile? Do you not use source control? Don't do unit testing? Don't give your programmers quiet working conditions? Don't do hallway usability testing? There's a difference between "Agile" and "Flying by the seat of your pants" when it comes to development methodologies.
rwmnau
While I like the Joel test, it's not really relevant when it comes to consulting companies, if they're the ones that send you to a client site. Consultants are often stuck wherever there's space (closet, 4 to a desk - wherever). If it's a company that takes projects and developers them in-house, then it's definitely relevant, since they're in control of the development environment.
rwmnau
I do XP... to back up jpartogi... Joel test items you quote are fine... exceptions for agile:# a spec -- not in any traditional sense# daily builds? -- no, continuous, dozens of time per day# testers? No, but lots of tests.# a bug database? No, until we need it. (Oh wait, I do need fogbugz, don't I?)# quiet working conditions? No, we talk a lot while pairing.# hallway usability testing? This is just odd to me.
ndp
+1, I like the joel test and I feel it's relavant, it's practical evidence of larger problems, e.g. when employees don't write code in an interview you end up working with idiots, when you write new code before fixing bugs you end up working on a mess before you know it. I don't see how agile changes things like this.
Fire Crow
+8  A: 

Look at the turn-around times for their employees. If their employees quit after 6 months to 2 years, I'd avoid them.

Daniel
+1: Turnaround is the best indication of what the pay or employer is like - unless of course those employees got rich and moved to the bahamas.
SnOrfus
+1 turnaround is also an indication of a developer unfriendly environment
Fire Crow
A: 

First, decide what you believe is important to you and in an organization you would want to work for.

Then research the companies as best you can up front. Look for what they stand for, how they do business, their organizational culture, etc.... For example, Daniel's answer of check turn over is a great one that can be a telling sign. This can be a little tough to gather a lot before an interview but do as much as you can. You could even call their HR department and gather some information. If you have an opportunity to talk to someone in the organization do it and definitely if it's within the hiring area that you are attempting for.

During an interview take the time to listen to the introductions about their company (usually done during an interview), think about the interview process and the questions to see how thoughtful they are and to see if you can gather any more information.

Ask them thoughtful questions that will allow you to better understand the kind of company they are. For example the "Joel Test" mentioned by AKF could be a good set of questions to ask to understand the technical team's setup but don't just ask technical. Ask about their management styles, work / life balance thoughts, etc....

If you have multiple interviews and have an opportunity to talk to other developer's and/or offered the job, request to speak with fellow teammates before you make a decision.

This is as much an interview for them as it is you!

Not only does it have to be a good fit for them but it has to be for you as well.

I think a lot of people (definitely when I have been the interviewer) have clearly not done any homework on the company and this is a big red flag to me.

klabranche
+11  A: 

OK, speaking as someone who as worked as a consultant or freelance for over 20 years here are the key factors.

  1. Do you know anyone who works there -- if so speak to them. Ignore all the other checks.

  2. How big are they? Big is better if you want a structured career path with options to go into sales or management. For almost every other aspect bigger is worse the bigger the consulting company the more internal beaurocracy and political infighting will occur, they tend to be obsessed with hours billed rather than quality or technical excellence, the sales team can have a veto over everything including technical descisions.

  3. Who are thier customers? Good signs are companies with names you recognise. Bad signs are only one customer.

  4. Are they specialised or general? Do they have customers clustered in a single industry? Are all there projects basically the same? Specialisation is good, niche companies tend to do more interesting projects for more interesting clients, the only down side is all there customers will boom or bust at the same time. All the projects being basically the same (e.g. implement XYZ software package) is usually a bad sign; unless you are an XYZ package evangalist it will get boring very quickly.

  5. Do they actually manage thier projects? Or are they just renting out warm bodies?

  6. Do they offer proper training and education? i.e. will they send you to a real Oracle DB course from Oracle, or, will they put you on a ten years out of date internal course? Will they give you scheduled time for education, or, only when you have nothing else to do and they absolutly cannot bill for you?

James Anderson
+1  A: 

Linkedin is good for finding former employees of a company.

JBrooks
+1  A: 

Lots of good answers above. I work in a small consulting business and it's great. The work is constantly changing, challenging, but incredibly rewarding. But I can see it's not right for everyone. Here are some more questions to ask yourself:

  • Is it a technology match for what you want to do? If they focus on a narrow technology, is that rewarding or boring for you? If you have to learn a new language every month with it exhaust you?
  • Are their customers and projects interesting for you? If it's in a narrow industry is it interesting to you, or if it's all over the place do you find that interesting?
  • Is the lifestyle appropriate for you? Do the work hours seem like they will work for you? Understand traveling or working offsite. What are the expectations and reality here?
  • Do you like the people you will work with? Good boss?
  • What is the company culture; do you like it?
  • Are the rewards you'd get in consulting the kind of rewards you want? In consulting, you tend to get new projects every so often, and have to focus for a while, often solve difficult problem, but then move on. As an employee, you can devote yourself longer-term projects and problems, and many people find that more rewarding.
  • How do they sell their services? Does this resonate with you, or strike you as slightly unethical (or somewheres in between) What is their business model? Does it seem sustainable/smart to you?
  • Professional development and growth potential
  • What are other people's experience there? Network to find some former/current employees and listen to what they have to say.
ndp
A: 

Which kind of consulting do you want to be doing?

Thoughtworks - These consultants came to where I work to help us use various TDD, XP, Scrum, and Agile methodologies while working with us over a couple of weeks and helping with retrospectives, pair programming techniques. I'm not sure how many companies work like this but this is an example worth noting.

Systems Integrators are a more general group where you can have three different sets of software coming together, i.e. big software company(Oracle or SAP), a consulting firm, and the customer, that depending on how it is structured can work in a variety of ways. There have been a few times where I work where we are working with consulting companies and developers are working together on putting in a new system.

JB King
A: 

I would figure out what specifically you're looking for in a company, and then find out what simple question can help you judge that.

If you like to work in well organized companies.

"What portion of your timeline is spent on planning" ... now they will talk about their planning process

If you like creative development where you'll be given wide leway to devise solutions.

"How is work asigned and who decides what role each developer plays in the process" ... now they will talk about what decisions, if any, will be made for you

Remember, you will always be presented with the positive side of a firm in the interview. Figure out what unbiased facts indicate a good company to you.

Regardless of your feelings on the Joel Test, it is wonderfully factual, a firm uses source control or it does not. These are the kind of questions you must ask to properly vet a firm.

Fire Crow