My friend Rick shared a story with me this morning, about a seminar and a lesson. I quote it here:
Once a group of 500 people were attending a seminar. Suddenly the speaker stopped and decided to do a group activity. He started giving each person a balloon. Each person was then asked to write their name on it using a marker pen. Then all the balloons were collected and put in another room.
The people were then let into that room and asked to find the balloon which had their name written on it within 5 minutes. Everyone was frantically searching for their name, colliding with each other, pushing around others and there was utter chaos.
At the end of 5 minutes no one could find their own balloon. Then, the speaker asked each person to randomly collect a balloon and give it to the person whose name was written on it. Within minutes everyone had their own balloon.
The speaker then began, "This is happening in our lives. Everyone is frantically looking for happiness all around, not knowing where it is.
Our happiness lies in the happiness of other people. Give them their happiness; you will get your own happiness. And this is the purpose of human life...the pursuit of happiness."
Now, what does this tell us about happiness? Well, the concept is pretty well-known, if you help others, often that help will come back as help to yourself. A rising tide raises all boats, as they say. Selfishly, if you do nice things for other people, they're more inclined to do nice things for you.
I'm not telling you anything you don't already know.
So let's examine the actual events here, instead. Initially, everyone looked for their balloon, and had a 1-in-500 chance of finding it. Let's say ten people managed to do so and that they even helped a little by getting out of the room when they accomplished that goal. That still leaves 490 scrambling people. Clearly this demonstration, at this point, works. Chaos is bad. Random searching is the wrong protocol to solve this problem. The leader of the seminar deliberately picked the wrong algorithm to make his point.
A better algorithm is then described. Clearly, on its face, this makes more sense. But we can't leave it there. I asked Rick, "Okay, by what protocol did people call out the name of the person on the balloon they selected?" Rick answered, "The Starbuck's Protocol." Sure, everyone has their order. As they're ready, the barista calls out your name and you pick up your double cafe latte and go about your day. But in this story, there is no barista - there is no leader.
If this were played-out as described, the exercise would look like a rough day in the pit at the Chicago Board of Exchange (that wild place Ferris and friends visited on their tour of Chicago and the setting for the payoff of one of the greatest movies of all time, "Trading Places."). To make this work properly, you need a leader to coordinate the protocol. The leader could tell everyone to quickly and quietly pick a single balloon. Then the leader could say, "If you know the person, please immediately walk to them, swap balloons with them, and then if you have your balloon, please exit the room. Start this now, while we continue. Now, we'll move quickly: if the name on your balloon starts with an 'A,' please raise the balloon up high and, as I point to you, say the name. Then follow the previous protocol - if you hear your name, go get your balloon, swap, and leave. We'll move as quickly as we can through the alphabet. Someone bring me a double cafe latte."
That's just one possible protocol. As a software architect, I immediately can think of some pretty interesting optimizations that I'd love to try. But for a quick "teach you a lesson" exercise at a seminar, if someone stepped up and took the lead and made this work, I'd keep my eye on them and find out if they're looking for a new job.