In addition to concerns for your development shop's technical maturity, cultural concerns are also important. How do developers get along? How do you manage hiring and training? How do you treat your staff?
In short, what's it like to work for you in non-technical ways?
- Do you have a coding competence test when hiring?
- Does it include real code?
- Did your developers have a hand in writing it?
- Do you have code reviews?
- Before deployment?
- Before merge?
- If you have multiple developers, do they all have access to every piece of code you have?
- Do you pay a prevailing developer wage for your region?
- ... commensurate with experience?
- Do you have overtime?
- ... required?
- Do you allow telecommuting?
- ... part time?
- ... full time?
- Do you have a training budget?
- ... for books?
- ... for travel?
- Do you have well-defined roles?
- ... technical leadership roles?
- How do you resolve conflicts?
- Do you have a defined process for scheduling features?
- ... triaging bugs?
- ... resolving schedule conflicts?
- How do you handle surprises?
I'm sure you can think of several other important questions. Again, you don't have to have the same answers I have in mind for these questions, but I believe that mature development shops that want to hire good developers need to consider these questions.
If you'd like a detailed discussion of how to apply this list to your own company, I'm available for consulting.
What would you add?
(Next time: Perl-specific concerns.)