Are we interviewing the candidates with outdated and inefficient interview processes ??? Let's retrospect this together
I am a part of the IT industry for around 9 years now. Being an active member of the interview panel for more than 6 years , I usually ask myself are we really interviewing the candidates with the correct technique to judge their skills ?
And the answer I get from within is a big NO !!!
Here's why !
- Interestingly, I get this feeling more severely when I review a pull request. ( And I am pretty sure, my seniors whoever reviewed my code back then must have had the same feeling about me, maybe more annoyingly ;) ).
- Unfortunately , I still see many organizations who interview the candidates by asking the same , repetitive , redundant and outdated theoretical interview questions which can be very easily prepared by referring to many popular online portals / blogs maybe in a day or two.
- Can we really term a candidate as a smart coder if he can write a code snippet to reverse a linked list ? Or who knows how to "explain" to create an immutable class?
Really ? Ain't these some of the topics which any unskilled candidate can prepare from the online portals within 2 days and can throw up the same in the interview.
- Software craftsmanship is a skill that can be only be acquired over a period of time with correct practice and is difficult to acquire in two days. Shouldn't we be hunting these skills?
- The actual work that we deliver daily is completely different than the parameters on what we assess the candidates on?
- So, how can we bridge this gap between irrelevant and obsolete interview questions and the real life problems that we solve and code on the floor ?
Here's my point of view :-
-Round 1 : Why not share a real life case study (very relevant) to solve ideally at home as round 1.
By doing so we can access below skills :-
1) Given a real life problem , if the candidate can think , identify the correct suitable architectural patterns for solving the problem and if can also implement the same?
2) Whether or not the candidate can make a decision to choose the right data structure for the solution and implement the same? Is the code well optimised?
3) Whether or not the candidate understands what are S.O.L.I.D. principles and can he / she apply the same in the code?
4) Whether or not the candidate understands what is meant by software craftsmanship?
5) If the candidate can adhere to and meet all the non functional requirements given.
6) How well are the tests written? Does the candidate understand what static code scans mean? Code coverage?
7) Does the candidate know the correct usage of design patterns and when to use which pattern in the solution which is implemented.
8) Also, whether or not the candidate has correct googling skills to gather solution :) . After all Stack overflow is an integral part of our lives ;) Why shy out?
9) By just glancing at the code for some minutes any experienced coder can judge the level of experience the candidate has which is difficult to identify if we just ask trivial and popular interview questions at round 1"
All the above points can be verified and judged within 15 minutes of time per candidate, whereas we currently spend almost around 1 hour to judge each candidate for the first round by asking common repetitive / redundant interview questions. Time saver?
-Round 2 : Discussion regarding the solutions implemented. Here we can judge the decision making, technical debating , and convincing skills of the candidate while also judging the conceptual depth. Is the candidate skilled enough for performance tuning and code refactoring . ( Don't we do these stuff on a daily basis ?? But do we assess candidates on these skills ? ). Can we comfortably and productively pair program with the candidate?
-Round 3 : Behavioral fit / situational handling questions / point of views / conflict resolution.
Whether you agree or agree to disagree ? Kindly feel free to share your point of view in the comments section :)
Disclaimer : This is my personal point of view :)
Hi Lalitkumar Kulkarni amazing write up. You are 100% right, Lot of time, energy, efforts getting wasted in following the monotonous questions, which can be cracked easily. steps mentioned by you will surely help in Hunting a smart coder. Keep writing...