A4 Paper Vs IDE for Interviews

Coding on piece of papers during the interview sessions, instead of upon IDEs for evaluating a technical person, a technical mind isn't really fair.

Early Morning Call

Very recently I received a call early in a morning while getting ready for office from a leading IT company in Sri Lanka regarding a Job opportunity for Senior QA Automation Engineer. For a second I was shocked.

After the briefing about the Job Opportunity by the HR representative, I directly inquired how they got my contact number as I never applied for vacancy at all. His reply was, I was recommended by one of their internal lead resources, but not being able to reveal the person who recommended.

Giving it a chance!

Though I wasn't interested at all for a moving out by the moment, decided to just give it a chance. As the interview was scheduled I walked in without any preparation for it. Being in the industry for couple of years, Selenium automation is something I always loved, regardless of how challenging it is in every new phase.

The Interview

The interview initiated with verbal conversation which went pretty well of course as I never hesitate to explain what I remember with my previous experience in technical challenges and web-automation experiences from CodedUI to Selenium Web Driver. And I never hesitate to say ‘I exactly don't remember’ if I don't remember exactly as we are not robots to precisely say the things did years ago, but being able to explain concept in the worst case if you don't remember precisely is what matters!

After the verbal conversation, I was given a paper which has two questions.

The Question Paper!!!

Q1 was regarding writing down a sorting algorithm a data-list. 
Basically to write down a small method to do the Ascending sort.

Q2 was about automating a business requirement flow using Selenium
(Not in an IDE, but in a piece of Paper!)

Wait!! what???
Code in a Piece of papers? 
Yes, in A4 papers….!!!

You are suppose to Code in A4 Papers

Business Req. Flow: 
1. Navigate to Home-Page
2. Login using credentials 
3. Navigate to another page (Page X)
4. Move in the Last Tab in tabular form
5. Refresh the grid in the last tab, 
by selecting an 3rd option from a Dropdown list
6. Click on a Dynamic Update button in a grid upon a filtered record
7. Fill the data to update (Stock ID, Stock Qty)
8. Click on Save (upon Save, suppose to Navigate to Home Page)
9. Avoid navigating homepage and redirect to Page X.

Listed above were in brief as I could memorize, 
but there were more in-detail actions to be done

Through out my years of experience in CodedUI, Selenium Web Automation and Framework building I personally know that we never build a frameworks on a piece of papers, unless we use papers to sketch down the architectural diagrams or an overview sketch to guide us or to keep as references.

The entire flow was required to document in a few A4 papers, as they expect the applicant to by-heart memorize all the Selenium codes/methods from nearly an hours time.

No Objection
I personally have no objection on giving the candidate a technical challenge to monitor how he or she is taking the challenge.

But for that, there should be a fair-way for monitoring it, evaluating it, and foremost should give the necessary surrounding and materials.

We always have a closer relationship with Stackoverflow when it comes to new challenges, and the friendly google to get a bell ring to move further in small teeny weeny cases.

Not Fair At All!
Giving a paper to write down a method or an algorithm to identify how the candidate has build up the logical flow or the algorithm on a piece of paper is acceptable.

But, to write down a list of classes and a entire buisness-flow? in white papers? Think a bit! Not fair at all.

Knowing such as a leading software body, evaluating candidates from the codes written on white-papers made me stair at them for a while.

Coding upon an IDEs always allows the user to enjoy short-cuts to save the time.

As an example; typing half of the keyword to get the rest of the keyword auto-generated.

Another very simple and frequently used example is; 
[As far for my knowledge] Not many of the developers are still typing keys to code mutator functions. Instead, they just right-clicking on the editor to select ‘Generate Mutator Functions’ upon selected parameters from checkboxes.

When the IDE’s have made the life simpler like such, why expecting to by-heart remember and write down? specially not just a method or an algorithm, but the nest of classes?

What should have done
What the organization should have done was to give a IDE to code down with a limited time frame and to evaluate how the candidate has used the best practices, approaches, concepts and what ever needed to evaluate; rather giving pieces of papers to waste from another perspective.

Allocating a temporary machine for a hours time which has all the prerequisites to code (at-least with IDE) for such a leading organization was not hard at all. Even if they invested on such, theres a RoI out it to filter the Cream of the Resources/Candidates apart from the Macaws and Parakeets

Interview boards must know
To check the knowledge of the candidate based on what mentioned above, rather expecting to by-heart remember small basic class methods.

Most of the technical testers aren't macaws or parakeets who keep everything by-heart. They works with the experience while using the logical approaches from their effort to give out the best.

Other point is, Once you hire a candidate you aren’t giving any opportunity to code on pieces of papers instead upon on IDE directly. Either on an exsisting framework/project or a new framework/project.

Mostly what papers are used is to sketch, write down key-points, make a guideline or to take notes. A method can be evaluated upon an algorithm, if its written on a papers. But when its come to a entire buisness-flow, the scope cannot be evaluated from a paper.

[Phew] Thank god, I remembered almost all of the Selenium calls needed to code down on the required business flow on those 2 x WHITE A4 Papers in small letters. (from element identification, to UI interactions, to functional process mentioned in the requirement sheet there and etc).

But, I decided to not to follow up on that job opportunity and to give up on it even if they call back. As I decided I said to their face and gave up, when they call me back for their, as I got disappointed for that process.

With My Experience
I have conducted interviews in organizations I worked for. But I have never expect any of the applicants to memorize these methods, references, API calls or any. I always ensure to restrict the verbal conversation to the candidates past experiences, his/her vision towards problem solving, to his or her conceptual knowledge and to the approaches they take to solve on decision making.

Afterwards, Most the time what we do is to give the applicant a Question on a paper (Business Requirement), and to code upon the IDE along with the help of the Internet, Stack-overflow.

But, within the given reasonable time-constraint. As long as candidate has the attitude and manages to find the solution with the help of any references, that is what considerable to evaluate along with the references you took during the verbal interview.

Honestly, felt ashamed about the industry while returning home about the process they took to evaluate a Automation Engineer.

Letting to write down an algorithm, or a logical flow is totally fine and acceptable.

But letting to write down lengthy code classes or collection of classes upon white papers instead upon an IDE isn’t fair at all and acceptable at all.