Do people really fail at FizzBuzz during the interviews?

Is there a correlation between passing Fizzbuzz on paper and (good | effective | productive) programmers? [closed]

Of course, you'd hire a developer with the same credentials who passed the test

Not necessarily. As you noted earlier, the Fizzbuzz test is a quick way to quickly weed out completely unsuspecting candidates to save everyone's time. So the answer to

Would you base the entire hiring process on whether someone gets the Fizzbuzz challenge right or wrong on paper?

is no. It is necessary, but not sufficient in itself to be hired.

As for your detailed questions, I am personally not strict with the criteria. I would expect a decent programmer to pass this test without any problems. However, some people can get nervous and make silly mistakes like the ones above in a live interview. So I can imagine scenarios in which a candidate overlooks some use cases or does not write 100% correct (pseudo) code - as in Examples 1-3 above. Still, he demonstrates their general problem-solving skills and applies the logic correctly. If so, with a guide she should be able to find and fix the problem and complete the Fizzbuzz challenge 100%. However, if she can't complete it after receiving some pointers, it's likely a failure, if not automatic - there is always room for individual judgment and further discussion if needed.

Is there any evidence that candidates who can write the Fizzbuzz Challenges will turn out to be productive programmers and those who cannot code productively at all?

I am not aware of any studies on the subject, but in my opinion arranging these would be difficult enough and it may not be worth the effort altogether. The original Fizzbuzz test was released more than a decade ago, so it's now well known. Therefore, the candidates can prepare specifically for it and even learn the solution by heart. So you would need a different variation in real life, maybe even every interview. This in turn makes it difficult to achieve standardized results.

All not to mention that the The main cause of all this controversy is the difficulty in defining what it means to be a good / productive programmer . Without a good enough definition, how can you even try to measure a correlation with anything?

In any case, I haven't heard any convincing arguments about how it could be possible for someone to be a decent programmer but not be able to solve Fizzbuzz at the same time. The whole point of the test is that this task - although it presents a real, tangible programming challenge that involves basic concepts such as variables, loops, or conditions / branches - is much simpler, faster, and simpler than any programming task a professional developer is likely to ever see we come across in a real job. So I can't imagine how someone who doesn't pass Fizzbuzz can solve real programming problems at a decent level. On the other hand, this can show my lack of imagination, so I'm open to counter arguments :-)

To update

Is there any kind of test that, when performed during an interview process, can give an interviewer a perspective on how (good | effective | productive) a candidate is for a developer role?

If you think about a standardized test that can be scored automatically, the answer is No and never will . While many hiring managers keep looking for new and newer flavors, this is no more realistic. This does not mean that such tests are completely useless, but that they should be used carefully and in the right context.

As most of the answers here show, even during a truly trivial test like Fizzbuzz, there are many subtle considerations that require human experience, practice, and judgment to make a correct decision. And being a good developer takes a lot more than passing the Fizzbuzz test. Pure coding is only a small, albeit important, part of SDLC.

Not to mention that it is not enough if the candidate is generally a good developer: (s) He must be a good developer be in the actual team, looking for a new colleague. The same guy can fit perfectly on one team and completely fail on another.

A worthy, if subjective :-) reading on this topic is Joel Spolsky's guerrilla guide for interviews. It also has a lot to say in terms of testing:

The second worst type of interviewer is the quiz show interviewer. This is the kind of person who thinks that being smart means "knowing a lot of facts". They just ask a few key programming questions and give points for correct answers.

[...] Software teams want to hire people with aptitude rather than specific skills. All the skills that people can bring to the job will be technologically obsolete in a few years anyway. Hence, it is better to hire people who are able to learn new technologies than people who happen to know how to make JDBC talk to a MySQL database right away.


Okay, the contexts are subjective, but it is in real life and yes, a decent programmer should be able to solve the problem, but let's say they should produce a bug-free solution that gives the output you want on the first pass or simply generate decent solution that shows competence. OTOH the question itself is not. I have summarized the question is my editing.

Péter Török

@Tife, updated with an attempt to answer your edited question, as well as a discussion of (the lack of) formal studies and facts.