it’s a blog, yo — by brian copeland

Fizz Buzz Enterprise Edition

This one’s hard to explain unless you’re a programmer, so bear with me…

The first thing you learn when programming is how to print “Hello, world!”. Very shortly afterwards, they teach you to do something slightly more complicated, the “fizz buzz” problem, meant to teach children about division:

[Children] generally sit in a circle. The player designated to go first says the number “1”, and each player thenceforth counts one number in turn. However, any number divisible by three is replaced by the word fizz and any number divisible by five by the word buzz. Numbers divisible by 15 become fizz buzz. A player who hesitates or makes a mistake is eliminated from the game.

quoted from https://en.wikipedia.org/wiki/Fizz_buzz

It’s not meant to be hard, just a toy problem to program. The code you write should output something like:

1
2
fizz
4
buzz
fizz
7
...

Working in Corporate America™, you code differently. Clear, concise code doesn’t get you ahead: “scalable”, jargon-filled code does. You’re supposed to write code that can run on computers around the world and serve billions of users. If one’s code is too simple and straight forward, the bosses will think one’s work is too easy.

Enter one of my favorite coding projects: Fizz Buzz Enterprise Edition.

FizzBuzz Enterprise Edition is a no-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes.

Project description from Fizz Buzz Enterprise Edition

Normally, fizz buzz can be written in a few lines:

for number in range(1, 100):
    if number % 3 == 0 and not number % 5 == 0:
        print("fizz")
    elif not number % 3 == 0 and number % 5 == 0:
        print("buzz")
    elif number % 3 == 0 and number % 5 == 0:
        print("fizzbuzz")
    else:
        print(number)

Fizz Buzz Enterprise Edition (FBEE) spreads this same logic across dozens of files. It’s really a work of art.

Now, explaining a joke sorta kills it, but here’s a few bullet points to help you get the joke. FBEE:

  • …is configurable to print on numbers other than 3 and 5
  • …can alter what “division” means
  • …has a rigorous testing package to ensure it performs accurately
  • …features a Contributor Code of Conduct

Not being a java programmer, my eyes sorta glaze over reading it. But I really appreciate the effort put into it. It’s also an open source project, which means anyone can contribute. This leads to a ton of issues raised by the community, such as #429:

It is apparent that people are pirating FizzBuzzEnterpriseEdition at an alarming rate, which the Accounting and Finance Team says is having a dramatic effect on our bottom line.

We need to look into options to protect our investment and our IP. I suggest some kind of Enterprise license manager with a USB dongle and quarterly subscription model.

Issue #429 submitted by drelephant

There’s a special place in my heart for a joke being taken as far as possible.

Leave a Reply

Your email address will not be published. Required fields are marked *