Article written by Brett Miller
Given the same programming task … one software developer may be able to handle it in a few hours, while another cannot do it at all … or does it wrong … creating new issues and production delays. One developer may be as much as Fifty Times more productive than another, while purportedly having similar backgrounds and skills.
How do you know the difference? Experience, Communication Skills, Certifications, Education, References? What interview questions should you ask the developer? hmmm.
During the software development interview process, you must recognize the candidate with the greatest abilities … A developer that can take you from where you are now, to a successful project conclusion.
Technical Expertise: First off, we recommend that you have a technical person involved in the interview process; hopefully another developer. They should be better at identifying true programming talent through their technical development questions. If you don’t have access to someone technical, we strongly recommend you simply hire a software development company with a proven track record of success and avoid the risk in hiring the wrong individual.
Software Developer Interview Evaluations: (that don’t work well)
Developer Interview Questions – Simple skill checklists (Yes or No) implemented by many staffing companies during their interviews, don’t address a candidate’s true ability level: As an example, some questionnaires ask for years of experience in a given skill, but practicing that skill once a year looks the same as working in the technology everyday. Similarly, five years at any given skill does not automatically make you a Senior Level Developer.
Online Skills Assessments – These are standardized tests which are used during interviews that look specifically for how many concepts and/or key words you have memorized from programming books. It doesn’t give a clear evaluation of ones ability to do software development (especially in context of your project). Example; many people might be able to sight-name most of an automobile’s engine’s major parts, but that doesn’t necessarily mean you would want them to rebuild your engine.
Software Development is not a set of “multiple choice” questions. Our experience has been that high scores on such tests do not necessarily correlate to better performance.
IT Certification – Certification is nothing more than standardized multiple choice tests on the subject of software development backed by an organization. Another revenue stream for them! Prep books and classes specifically train students to pass the test … but not necessarily to work in a live environment. Even an expert senior level developer would need to study those same prep books to pass the set of “certification” tests. Again, certification doesn’t always correlate to better performance.
References – Almost anyone would be able to come up with the names of a couple of people who would be willing to say they did a wonderful job on a software project. Legally, giving bad references is a questionable practice which could amount to defamation and/or slander.
Better Ways of Interviewing a Software Developer
Referrals: Reach out to your network of contacts to get referrals for solid software developers. Both the developer and the person providing the referral have reputations on the line. No one wants to damage their reputation especially within their own network of connections. Even a bad developer can recognize a good one. And sometimes an individual will work harder to prove their friend (the person providing the referral) was right about them.
Simulate Real World Environment during interview: Assign a few simple bugs (less than 20 minute fixes) to the applicant and discuss potential solutions (you may need that technical assistant for this). Give them a computer with the development environment setup and have them work on the issue. If they feel comfortable watch them come up with the solution (or review it when they are done). How natural are they at interacting with the development environment? A true expert will easily demonstrate proficiency and resolve issues quickly. Have them document what they found and how they resolved it.
As an alternative to the interview techniques above, have the developer code something on paper (without the use of a computer). See how accurate their solution is.
Communication: Can the applicant speak, write and comprehend technical concepts quickly and easily? Test all the various forms of communication; verbally (in person and on the phone) and written (emails, documentation,etc.). Be aware of any challenges involving a potential language barrier as English may not be a developers first language. Don’t forget to evaluate the candidate’s ability to communicate both technically as well as non-technically (particularly with end users).
As a side note, use caution when judging a person’s writing ability based on their resume. They might not have written it themselves. Ask them?
What do they Enjoy vs. Dislike? It’s important to get this out in the open from the outset. Trying to force a round peg into a square hole rarely works. How do they feel about the following tasks?
- Estimating hours for a project
- Analysis of the project requirements
- Outlining an architecture
- User Interface (design) vs. Business Logic vs Back End Coding (database)
- Simple Mundane Coding Tasks vs. Challenging New Ones
- Coordinating a Project with other Developers
- End User Interaction
- Ongoing Support
Ask Good Development Interview Questions
Think of good questions before sitting down with them:
- How do you estimate a task?
- What are the steps in the full life cycle development?
- Describe the Agile Methodology?
- What types of Development Tasks have you done?
- Does industry familiarity facilitate faster development times?
- How much time have you spent programming vs other tasks?
And Finally Intuition: What does your intuition tell you about the candidate? Your intuition is rarely wrong.
Software Developer Interview Conclusion:
Hiring the right software development candidate is critical for the success of your project and for your business. Unfortunately, there isn’t a development interview question that can magically reveal a candidates exact potential. Take your time, follow the suggested interview best practices above and be thorough when interviewing your potential candidates. Keep in mind … the old 80/20 rule. 20% of Developers get 80% of the Work done. Be absolutely sure you are getting one of the developers in that 20% category … and you’ll certainly avoid 80% of the headaches!