Does any other discipline have problems establishing the basics of competency in the same way that software engineering does? Starting from Imran, to Reginald Braitwaite, to Jeff Atwood and now to Richard Banks, the story of FizzBuzz has become mildly famous among the circle of software programmers. What is it about the profession of programming in particular that allows for such stunning incompetence to be masked for so long?

Are there professional athletes who are unable to walk? Are there professional accountants who cannot do math? Are there professional postmodern english lit professors who occasionally let slip with a comprehensible sentence? I’d like to have some insightful insight at this point but the sheer lucridity of it has me baffled.

I’ve mentioned previously that the reason this company is named Bumblebee Labs is from a term I coined:

A bumblebee is an occurrence which cannot be explained by our current theory and thus, demands special attention. Bumblebees are the keys to uncovering areas where our understanding of the world drastically fail and how we can construct a better theory to explain what is happening.

and the FizzBuzz paradox is a Bumblebee of the highest order.

Just once, I’d like to hear the FizzBuzz story from the other side. I’d like to hear a veteran software engineer, confirmed to have been working on multiple projects and with largely positive references explain how he managed to fool so many people for so long about his basic competency in programming. Does this person know that they’re a bad programmer or are they suffering from a severe case of Dunning-Kreuger? How does knowing that you’re a fraud every single day weigh upon your psyche? How do your team mates treat you?

Sure, there are many other fields in which blatant frauds continue to go unexposed for many years: art, academia, holistic medicine, cult leaders etc. But everyone knows that fraud is endemic in these fields. Sure, there are fields in which people are completely self delusional about their ability: music, writing, acting. But everyone else knows those people are crap and never let them do anything of significance. Software Engineering shouldn’t be like those field. It should be like every other respectable, solid career. And yet it’s not.. why?

  • Gregory Michael Travis

    “Mask” is the operative word here. Software is very complicated, and we use abstraction to hide things, in the hopes that we can create more complicated things without screwing them up.

    Programming is all about *hiding* stuff. There is so much that is invisible. While debugging a program, you are generally looking at a tiny tiny portion of it, like scanning a stadium with a flashlight.

    Every programmer of a certain age knows that software was more stable years ago, because it was smaller. As it has gotten bigger, it's gotten less stable. We're still surprised by this because we are employing increasingly sophisticated tools and techniques, but apparently they can't possibly keep up with the problems caused by size.

    Larger programs mean more things are hidden. Code rot is almost never discovered early. Programmers who cause code rot are almost never discovered early.

    I can't account for the FizzBuzz effect at all, but it's been a while since I was in school so I really have no idea what goes on there; all I know is that it has got to be really different than it was when I was in school.

    • Ramon


  • Anon

    i am not a great programmer, but i believe i am a decent programmer. but i am terrible in a test scenario. i cannot program when someone is looking over my shoulder.

    the second thing is the same way iq tests work. many questions asked in programming tests have no real-world application. i rarely ever deal with strings, so i am terribly incompetent with strings.

    i really think of myself as an engineer, as a problem solver, and programming is only one of the many skills, and it is not even a terribly important skill for me.

    i should add that i have 1o years experience as an embedded software engineer and have been generally highly valued in all the places i have worked at. there have been better programmers, but rarely better all-round software engineers. i have single-handedly finished projects, often projects that no one is brave enough to take on.

  • canada goose jakke

    Super-Duper site! I am loving it!! Will come back again – taking you feeds also, Thanks.

  • web design company

    Really U expressed this above topic in a well defined manner..Thanks for this post.