Wednesday, August 15, 2012

The Meatball

We've been working a lot lately on something we refer to internally as "the meatball".  Some of you may have heard us use this expression in presentations or on support calls.  Others may not have heard this lingo before.  The meatball, as we define it, refers to the little square you see in quotes or pull sheets (and now the suggestion dialog) that turns red or green depending on whether or not you have a shortage.

Here's a little screen shot showing our meatball in action as a reminder.

Now, it might be logical at this point to ask why we'd call this a meatball - seeing as there's nothing round or meaty about it.  As fate would have it, I was flirting with general aviation at the time I developed the first version of the meatball.  I'd taken a few flying lessons (I've since given it up.) and leaned about something called the Precision Approach Path Indicator or (PAPI).

If you've every flown and noticed those four little red lights off to the right of the runway, that's the PAPI.  It's a visual glide slope indicator and ets the pilot know if he's coming in too low or too high.  Now it turns out the Navy has a souped up version of the PAPI on every aircraft carrier with extra information about horizontal position and some visual ways of communicating with the pilot under radio silence.  They call this the Optical Landing System or the "meatball" for short.  We just borrowed this expression from the Navy and call our red/green indicator the meatball as well.

Qualitative Availability

The purpose of the meatball is go beyond providing numeric information about equipment shortages and also provide some clues about what the numbers mean.  The work we've done lately on the meatball involved revising in what context the meatball should be red or green.  For example, when you're on a quote or a pull sheet, the meatball is green if the availability is zero.  This is because the item you've dropped on the quote or pull sheet has already been taken out of availability.  Zero indicates that you have just enough to do the job.  Though you may have used all available inventory, you have not created a shortage just yet, so availability is green.

This created a problem when we decided to add the meatball to the suggestion dialog.  Suggestions appear in a different context.  Suggestions are a list of items that you may or may not elect to add to to a quote.  You haven't done it yet.  In this context, selecting an item with zero availability will create a shortage where none existed before, so showing zeros as green in the suggestion dialog would be misleading.  You'd select an item, thinking you could add it because of the green meatball, and as soon as you added it, the item would appear on the quote with a red meatball and a quantity of -1.

To deal with this semantic problem, we modified the meatball to switching between using less than zero or less than one to determine when a shortage exists.  It all depends on context.

Another issue with the meatball surrounded packages and kits as suggestions.  When you add kits and packages to quotes, their contents go on the quote with them and you can see at a glance when a shortage of one of the components creates an availability problem for the kit as a whole.  You can swap out contents with a suitable replacement or remove it entirely.  In the suggestion dialog, you don't have that same visibility into the availability status of each package component.

When calculating availability for the suggestion dialog, the server inspects the contents and uses the item with the lowest availability (in conjunction with the quantities specified for the kit) and returns the kit's availability accordingly.  In essence, when you see the availability for a package, you're seeing the availability for the scarcest resource in the package.  And this is all well and good for when the availability is zero or greater - it indicates how many of those packages you can make with available inventory.  But what if the availability is less than zero?

Let's assume you have a package with a DMX cable component and that you have -5 DMX cables  available.  Let's further assume that every other component of that package is available and plentiful.  Barring any special tweaks to the meatball, the availability of the package would show up as -5 with a red meatball.  The red meatball is good.  We want it to be red, but in the context of package availability, what does the -5 really mean?  Since packages are virtual - they aren't finite items, what does it mean to have less than zero of something that doesn't really exist in the first place?  Our thought is that interpreting what this -5 number means would create more confusion and that if there isn't enough inventory available to make a kit, just turning the meatball red to indicate a shortage is enough.  So, with this modification in place, a positive availability will be shown with a green indicator along with the actual number - since showing you how many kits you can make makes sense semantically.  But, there's not much sense in showing you how many kits you can't make, so in this case we just turn the meatball green with no quantity - since that quantity would confuse more than it would illuminate.

So, there you have it, a little inside baseball on our weird in-house lingo and some insight into how we try to make the meatball not just display availability numbers, but explain them as well, analyze them in a way that saves you the hassles and potential errors that may come from trying to interpret the numbers yourself.

No comments:

Post a Comment