Optimization is a lifestyle…

 

Situation 1

I was in a supermarket a few days ago and I watched the young guy in front of me place his basket on the floor and use one hand to transfer his shopping from the basket to the till. It was a painfully slow process to watch and resulted in him repeatedly exposing his butt crack. Not good.

When it was my turn, I placed my basket on the metal plate at the back of the till and used two hands to transfer my shopping. I had:

  1. Reduced the latency of the operation. Each item was traveling between the basket and the till faster due to the reduced distance.
  2. Increased the bandwidth. I was able to transfer 2 items at a time (sometimes more if I could scoop stuff out). Look mom, I’m parallelized.
  3. Kept my butt hidden from view.

Situation 2

The previous incident got me thinking about a summer job I did when I was at university. My job was to pack items coming off a production line into crates. The process was:

  1. Walk to the corner of the room.
  2. Pick up an empty crate from a pallet.
  3. Walk back to the end of the production line.
  4. Fill the crate with product.
  5. Pick up the full crate.
  6. Walk to the corner of the room.
  7. Put down the full crate on a pallet.
  8. Goto 2.

My solution to this was to have the pallets moved next to the end of the production line, thereby eliminating steps 1, 3 & 6. Unfortunately the performance improvement kinda backfired as some of use ended up having to do less interesting work to keep ourselves busy. Sorry to all those people who ended up having to help the butter unpackers because of me. 🙁

The Moral of the Story

If you don’t want to unpack butter all day, leave the pallets in the corner of the room… No… That wasn’t it… Oh yeah…

A lot of the time optimization and performance tuning is really simple. Look at what you are doing and ask yourself:

  • Do I really need to do this?
  • Is this the best way to do it?
  • How can I get back to packing crates instead of unpacking butter?

Cheers

Tim…

Author: Tim...

DBA, Developer, Author, Trainer.

5 thoughts on “Optimization is a lifestyle…”

  1. You missed the two that always get my goat.
    1. People thinking the ideal place to stop and look around is either in a doorway or in the middle of an aisle where they take up both lanes.
    2. People watching the clerk ring up and bag everything and after all that, take out the checkbook and proceed to write a check.

  2. In a similar manual labor job I had in my early years, I noticed that I was constantly walking all over the floor looking for the single roll of twine used by all the crew that was needed to bundle things up between jobs. They did this of course, for “cost efficiency”; no waste of twine.

    But they never took into consideration the number of minutes we spent over the day looking for it. What’s more expensive, people time, or twine?

    I went to take a whole bunch of rolls of twine and put them at all the stations all over the floor, but the supervisor objected. Until I told him that I wasn’t going to use any more twine in this manner. Another example of extrapolating logic, and measuring the wrong things.

  3. I agree that optimization can be a lifestyle.

    My frustrations are redundant steps, bottlenecks, wasting resources, not having (or being able to find) the proper tool, and inefficient design.

    One can visualize the most efficient approach to completing an effort using simple guidelines. For example:

    1) Have all necessary resources (a crate, a tool, a person) located near the location of the task (if applicable).
    2) Complete steps in order of dependence and/or linear progression
    (i.e., I need to get gas, pick up the mail, stop by the store and the dry cleaners on the way home. I can stop by each place
    as it is located on a rather linear route from work to home, rather than bouncing around different directions on a whim.)
    3) Assuming #2, I might further minimize the time and effort required by altering my route to avoid left turns (waiting for oncoming
    traffic), avoiding lanes or streets under construction, and choosing stores or gas stations that are not very busy at that time.

    I employ these guidelines in mundane errands and tasks because I also employ them in my job. And I enjoy the challenge. Thinking about “streamlining” and “efficiency” enables me to visualize implementing streamlined and efficient systems. Employ enough bandwidth, minimize or eliminate bottlenecks, parallelize where possible or necessary, and avoid contention. Simple, right?

  4. Casey: It seems obvious to me (and I guess many other IT people), but I’m not sure the rest of the world thinks like us.

    I can only assume we are right and they are wrong. 🙂

    Cheers

    Tim…

  5. This hits close to work for me, since part of the ERP I deal with involves inventory in warehouses, getting it into and out of warehouses, FDA requirements (your changing the pallet location could cause an amazing amount of paperwork in some cases) and so forth. I wish I could tell the horror stories, they are very entertaining. But I can say, any time some performance guru says something like “the business has to determine what’s important” or some programming guru says “let the users come up with the requirements” I feel like I’m trapped in some ’50s B-movie going “no! no! The monsters are real!” With everyone ignoring me.

    And of course, South Park, Tom Cruise working on the line packing fudge.

Comments are closed.