I recently had the privilege of being invited to speak to students soon to graduate at Toronto’s Bitmaker Labs. The talk I ended up giving was the one I wished I had heard when I started working in web design, largely based on a list of questions Joel Spolsky came up with, but recontextualized for web development.
Let’s start with talking about what you should be looking for in a company in the web development game.
- Do you use source control? (Some may refer to this as version control.) The answer you are hoping to hear here is “yes, and we use git”. Mercurial, Darcs, and Fossil are great too, but let’s be honest – it’s pretty clear here which technology has won. Bonus points if they use Github as its pull requests make for easy and early collaboration and code review.
- Can you deploy to production with one command? Capistrano and Chef are great things to hear about here, but as long as they’ve got automated deployment handled, you’re in the green. Bonus points if there’s an established process for handling long-running databases migrations with something like Large Hadron Migrator.
- Do you deploy throughout the day? Is it normal for someone on their first day to see their code in production? Hearing yes to both of these is good.
- Do you have an issue tracker? Is there a clear process for Support escalating issues and being involved with writing reproduction steps of the bug? Does support know when bugs they report are fixed?
- Do dev leads spend time paying back technical debt or include dev cycles to fix issues? Is it common to write new code while bugs are known to exist?
- Do you have a feature roadmap/schedule maintained by a dev lead and/or project manager?
- Do you have a clear spec for the features you develop that focuses on the intention and constraints, and not the implementation?
- Are new features normally A/B tested on sample groups of users prior to being rolled out to all users?
- Are company financials, minus salaries, transparent throughout the company? Is it easy to see how much revenue was made via a company-wide-accessible dashboard?
- Are the founders familiar with and often discussing ARPU and CMRR? (Note that this assumes a SaaS business model.)
- Is the company actively contributing to open source and are staff being given credit?
- Do candidates write code and/or pair program during their interviews? Is pair programming common on developer teams?
- What kind of steps do you take during candidate interviews to determine if they would mesh well with their new team? How do you determine how each side takes feedback, for example?
- Can anyone on a team veto a new hire to that team without fear of possible repercussions?
- Is the on boarding process for a new hire carefully considered? Tell me about it.
- Can you choose your own tools within reason? Do you use the best tools money can buy?
- Is your main product running on the most recent stable release of the software that powers it? E.g. Are you preparing to run Rails 4 soon after it’s released? Are you on Ruby 2.0 yet?
- Are designers involved from the very beginning of feature development?
- Is UX testing conducted by usability experts and if so, is it a part of feature planning and development? (Note that I’m talking about ethnographic research, and user testing, etc. here.)
- Is there a system for determining root causes of failure without blame, that assumes everyone has done the best they could when things go wrong catastrophically?
- Is your development team against shaming individuals for failure? E.g. an “I broke the build” token of some sort. (To clarify: you want to shoot for “we conduct blameless root cause analysis sessions where we talk about how to prevent the what and not blame the who.”)
- What is your turnover rate like? How many devs were hired last year and how many left?
- How fast are you growing? (Hint: your personal growth will often map to the company’s.)
- How does your company handle mentorship? (See Lean In for a great example.)
Finally, here are a few questions for yourself:
- Is the business model obvious/simple to understand and explain to someone else? It really should be.
- Do you see yourself happy at this company a few years down the road? Do you think you would be proud enough to encourage your friends to join you?
(If anyone is curious, yes, Shopify is hiring, and yes, we do all of the above right. www.shopify.com/careers )