I have been a professional software developer for around seven years. In those seven years, I have worked in both large, global corporations and small “mom and pop” shops. As a software developer, I tend to follow the “Joel Test” when interviewing and evaluating companies.
The large corporations would score a 10, but the small companies I have worked for would score a measly 2.
However, there are more factors involved when looking for a job other than Joel’s test which goes into selecting the right job.
Everyone weighs the pros and cons differently, but here are some additional things I use to gauge how I will fit in at the company.
|The Steven Test|
|1. Do you mesh well with your (potential) coworkers?|
|2. Is your (potential) manager technical?|
|3. Are you allowed to take ownership of your projects?|
|4. Does your (potential) employer value education?|
|5. Is there a formal review process in place?|
|6. Does the company have mentors?|
|7. Is there a defined path for promotion?|
|8. Does the company have goal-setting?|
|9. Does the company allow their employees to grow to their full potential?|
|10. Does your (potential) manager keep his or her employees busy but not overwhelmed with tasks?|
|11. Are raises and/or promotions given as fairly as possible and at regular intervals?|
|12. Does the company seem to value their employees?|
1. Do you mesh well with your (potential) coworkers?
This is a very important aspect of selecting a new job. If you cannot get along well with your coworkers, then the workday is going to get frustrating very quickly. I have been able to gauge this by talking and going out to lunch with members of the team. If I can be relaxed and feel comfortable in my own skin, then I know I will mesh well with them.
2. Is your (potential) manager technical?
This is one that doesn’t have to always be true; there are some non-technical managers that do better than technical ones, I just have not seen it first-hand. Technical managers know what it takes to develop software and may have been in the trenches at one point in their career on their way to the position they hold. They can be a handy resource when dealing with clients.
3. Are you allowed to take ownership of your projects?
Taking ownership of projects allows you to grow as a professional. I have personally experienced jobs on both ends of the spectrum and have always felt better when I knew that the project would be mine as long as I remained there. That means that any defects or changes come to me and I am considered the expert on it. Taking ownership allows you to be a leader.
4. Does your (potential) employer value education?
This can be any form of education. In our field, and the fact that everything changes so fast, it is important we are on the forefront of technology and trends. We need to be able to apply new technology when it fits. Does this employer see the value in attending conferences, going back to school, or reading books on technical topics?
5. Is there a formal review process in place?
A review process allows you to get an idea as to where you are at in terms of goals (see rule 8) and how close you are to either a raise or promotion (see rule 7). This also allows you to air any issues you may be having and discover what you could be doing better. Informal reviews tend not to be documented, so I recommend formal reviews.
6. Does the company have mentors?
For an experienced software developer, this might not be a problem. Experienced developers might use mentors differently than inexperienced ones. As an experienced developer, if I had a mentor, I would use him or her as a resource for learning how things are done at the company: they all do things differently. An inexperienced developer would use a mentor as a means of learning the tech stack they are working on as well as learning how things are done at the company.
7. Is there a defined path for promotion?
I am a fan of gamifying my life, and knowing the steps to reach the next level is something I look at as a challenge. It also helps to know the rules of the game. It is never good to be in the dark in terms of your career path.
8. Does the company have goal-setting?
Since I look at most things in the terms of a video game (an RPG to be exact), I look at goals as if they are mini-quests that I can complete in a given timeframe. It makes things more fun.
9. Does the company allow their employees to grow to their full potential?
This could all be summed up with this exact point. The whole point is, does the company provide the things needed for you to get to where you want to go in your career. You may want to go into management or remain a programmer. Does the company allow you to grow in areas you want to?
10. Does your (potential) manager keep his or her employees busy but not overwhelmed with tasks?
There is always going to be instances in which you are between projects and might have a stretch of time in which you are not busy, but I am talking about having a steady stream of work. I have experienced both ends of the spectrum: one in which I was too busy to even eat lunch, and one in which I could devote entire months to personal projects (which you should not do!).
The key here is balance. Does your (potential) manager delegate tasks effectively?
11. Are raises and/or promotions given as fairly as possible and at regular intervals?
“Fairly” is a vague term and is up for debate. What might be fair to me is not fair to you and vice versa. As a rule, though, they should at least give yearly cost of living raises. As far as promotions are concerned, this should be awarded if you have achieved your goals in order to reach the next level in your career.
12. Does the company seem to value their employees?
There are several factors that go into valuing employees, but if the company does everything else described in this post, I would venture to guess that they value their employees.
Naturally, not all companies are going to score a 12 on a test like this.
What do you think about these metrics? Is there anything you could add or remove? Let me know in the comments!
DISCLAIMER: The opinions expressed in this post are my own personal opinions and do not represent my employer’s view in any way.