I’ve been interviewing and hiring a lot lately, and I realized that my interview process often involves looking for Shibboleth.
Actually, you don’t, plenty of recruiters don’t know that. To add value as a recruiter, though, you’d want to do a better job than the keyword matching any Machine Learning Algorithm can do. One way to do that is to know the words that anyone that actually uses java would use, the keywords they would use over and over again, every single day. You ask questions that lead to those answers, and if the candidates stumble, that is a strong negative indicator, a shibboleth.
Here are a couple of mine, and their problems.
The FizzBuzz Shibboleth
It’s a little passe, but when I interview people who need to be able to write code, I’m still a fan of FizzBuzz, a simple coding challenge here’s a concise definition:
Write a program that prints the numbers from 1 to 100. If it’s a multiple of 3, it should print “Fizz”. If it’s a multiple of 5, it should print “Buzz”. If it’s a multiple of 3 and 5, it should print “Fizz Buzz”.
Writing this program is as simple a for loop from on to one hundred that calls a function and printing the result. The function has to find the remainder of dividing the current count by 3, by 5, including the possibility of both.
That is, one for loop, two if statements, an else, a return, and a print. It is not hard. I ask people to program it in their strongest language.
Yet many people struggle with it. Some people are unable to construct the for loop and the if’s – that is a pretty strong red flag. Some people, however, don’t know how to find the remainder. That is, they don’t know the modulus operator, which is % in C, C++, Java and similar languages. As someone with a degree in Math and a Concetration in CS, I sort of expected that everyone who codes should just know modulus. Knowing it shows a relatively large understanding of the language because modulus is so rarely used.
My former colleague, Sean McMillan, once pointed out that makes it a terrible shibboleth, especially for junior programmers. The Junior programmers might never have needed to use %, but they could be find programmers. That’s a risk with Shibboleths, one I also see for web testing.
The Web Testing Shibboleth
When interviewing testers I frequently use a test exercise seeded with bugs. Often, if they are not finding the bugs, I will give them a hint, to use special characters or more than one space. When the results come back, the spaces are compressed, because HTML itself does not recognize more than one space. That is a hint that the code should escape HTML characters. Mumble-something years ago, when I was learning HTML, knowing that spaces were compressed was something we learned every day. Today, with WordPress, Rails, CSS, and other templating agents (or mobile device experience), it is very possible than an effective tester might never get a master of HTML at that level. And that might be fine.
Shibboleths are not perfect. They can be false signals. They can get it wrong.
There is an alternative to looking for Shibboleth keywords. DeMarco and Lister recommend it in Peopleware. In that book, the two talk about hiring a juggler. Yes, you could ask where they went to juggling school, and how many balls they can juggle, and if they do bowling pins.
Or you could ask them to demonstrate, sit back and watch.
The Lesson for Candidates and Managers
To cut to the chase, have a portfolio. If you are a programmer, have sample code in GitHub. If you are a tester, have some tools and utilities in github. Just by having a github, just by being able to say “watch this tool drive amazon.com”, you’ll be better off than 75% of the candidates. You’ll never have to say “My employer owns all my work, but trust me.” If you’re good, you can do it in a long weekend. If not, it’s time to learn.
On the hiring side, give people a chance to audition. Have them pair program for an hour, or ask for a writing sample. Have the candidate find bugs, then write up two of them as bug reports.
The audition is my favorite form of interview.
What are some of yours?