That being said, I'm assuming the failure mode we're discussing is 'flailing at the whiteboard and would never make any progress given infinite time' and not 'wrote an off-by-one error that a unit test would catch.'
fizz = 3
buzz = 5
both = 15
for i in range(1, 101):
if i == both:
print "FizzBuzz"
both += 15
fizz += 3
buzz += 5
elif i == fizz:
print "Fizz"
fizz += 3
elif i == buzz:
print "Buzz"
buzz += 5
else:
print iThe "trick" is the first hump - a goat.
Even a simple programming question can stump someone not trained in it. I've seen people who (supposedly) have computer science degrees fail on FizzBuzz.
In the end, it makes some sense to "talk shop" about programming issues. If they can't follow, it's probably not a good idea to hire them.
string reversing in place trick: stopping at the middle else it's an identity function.
Any time you spend with Fizzbuzz, you could spend it on more complete quizzes, discussing past experiences, taking references etc.
When I asked these kinds of questions I would execute the program in my head, and tell the candidate things like "your reverse() methods moves some stuff around, but the end result appears the same as before". Or "this fails with ArrayIndexOutOfBounds on line X". Typically it only took a few minutes to find the bug and fix it, and I learned about how the candidate solves problems.