During our Pair Programming BoF at DevTeach, we discussed our setup at Oxygen. There are no cubes, phones, personal trinkets, just one large table, a bunch of docking stations and a build bunny. In this environment, we are setup for osmatic communication and pairing -- not to mention a great sense of team and fun.
We said this is a great environment for pairing and development and someone said, that's not what Joel said. Jeremy Miller's response was, "Joel's wrong," and until I read Jeremy's recap I didn't he was talking about joelonsoftware Joel. I assumed the person who spoke went to another session at DevTeach where someone was talking about the ideal development environment.
After reading Jeremy's recap and thoughts, I gave the test some thought. Like Jeremy, I like the questions. Who doesn't? But if you are a strong developer in the right position and environment, couldn't you make those things happen? Sure, they're great to walk into, but if you're walking into an environment that is ridgid and has issues beyond your control, you have a much larger problem then setting up a build environment or proving sufficient qa costs less than lacking qa.
Yes or no questions give me pause as well -- I find it easier not to disclose information or to even lie to myself if asked a yes or no question. I'm sure other people do too. Do you have a QA department? Well, Joe the summer intern and Rita and junior developer did a bit of testing before our last release so, yes. When asked to describe my QA environment, they don't seem to hold up well.
Now Joel says in his description of the big 12 that these are just guidelines and there are great teams that don't have any and poor teams with all -- he has a lot of good things to say and the popularity of his blog demonstrates that. However, some people take his list as absolute and that is a bit of a smell.
So, how do you determine if a company is right for you?
Every person is different and has different goals and needs -- are you up for a challenge, do you need a mentor, do you want to work on a team, do you want to be agile, can you promote change, do you want to promote change, what technology do you want to work with, what type of projects interest you, what type of people do you like, what scares you, what risks are you willing to take, what kind of responsibility do you want, what motivates you, what satisfies you, why have you left jobs in the past, what failures have you encountered and why, what successes, where were you most happy and why.
Wow, that is a lot of questions! There are a lot more, because self realization and goal determination is really, really difficult. You need to be honest with yourself. Many people do not like their jobs. For some it doesn't matter because its just something that makes their home life possible. For others it lingers with them long after they leave the office.
If you change jobs when at a time of desparation, try not to lie to yourself. Finding a job that is a perfect match is probably not an option, but if you understand your goals, you can determine your best questions to ask and an environment that will keep you satisfied.