never certain - a blog by James Brechtel
Ask the right questions
February 22, 2010

A few months ago, my friend Patrick Caldwell started a series of blog posts about how to land a programming job (Part 1, Part 2, Part 3, Part 4, Part 5, and Part 6). I like his advice and think that it's quite helpful to aspiring developers. However, he did miss one aspect of the job hunt: finding a job you'll like. Since "like" is a subjective term I'll just describe the questions I ask prospective employers during interviews. Currently I work at ThoughtWorks and I love it. I researched the company very thoroughly before joining. I either asked or discovered the answers to all of these questions before I accepted their offer. I'm glad to say that working here has met all of my expectations and more. Here are the questions that I need answered before I'll work somewhere:

Can I use Open Source Software?

I recently witnessed a project where the team had to move off of Git for source control because the client had a policy against using GPL software*. This was rather absurd because they had no plans to distribute Git or anything using it. It was merely their source control system.  Policies like this cause a number of problems for developers and the team as a whole.

* The funny thing is that their dev severs ran Linux. *

How many different projects will I work on in a typical week?

My motive behind this one feels like a personal preference but I have yet to meet another developer who doesn't feel similar on this topic. Before ThoughtWorks, I've had multi-month stretches where I'll have to work on more than 5 projects a week. Often multiple in one day. This makes work feel like such a grind. It's unproductive and harmful to both you and the projects themselves.  Task switching constantly might make you a little better at multitasking, but it will never be as effective as single tasking. You will also likely develop some nasty habits:

I would be very hesitant to take another job where I'll typically be working on more than one project in a week.

How do you estimate the time needed to complete work?

Let's face it: there are better developers than you. There are faster developers, there are more thorough developers, there are slower developers and there are sloppier developers. Couple that with the fact that any estimate is just that: an estimate. Be wary of places where the developers doing the work are not the ones doing the estimating.

What is your software development process?

You should definitely know and be comfortable with how they develop software. If they have a process, how that process works, how you as a developer fit into that process, and how flexible they are with that process. I almost titled this question "Are you Agile?" but decided that would be too vague. Many companies will claim to practice Agile, XP or Scrum, but without the details of what they're actually doing you risk making some incorrect assumptions about how they interpret those labels.  Ask specific questions around this topic.

Can I talk to someone else? Lastly, you should ask to talk to other people you'll be working with. Ideally that would include developers, BAs, QAs, PMs or team leads of any kind.  Find out how much they like their jobs and try to get a feel for how you'd like to work with these people. Your instincts know more than you may think so you should probably trust your gut on this one.

blog comments powered by Disqus