Blog  |   Puzzles  |   Books  |   About

Customer Service Scripts & The Jungle Cruise

March 7th, 2006

Lately, I’ve been on the receiving end of a lot of customer interaction scripts, you know, those little bits of canned dialog that people who represent large companies are required to say to you.

I contacted my cable broadband provider on Thursday night because my internet connection, which has been increasing flaky the last few months, was starting to get really bad. Of course, being a complete idiot, I decided to use the Internet to contact them, thinking I would save myself a phone call. I really hate phone calls, and will sometimes do stupid things to avoid them.

I contacted a succession of 4 ‘chat-room operators’ at Comcast, each of whom recited various randomized bits of pseudo-empathetic cut & paste dialog with me, such as

“I am sorry you are experiencing difficulties with your Internet connection”

and

“I understand how frustrating an intermittent connection can be.”

Each time, they would collect my personal information, and the description of my problem, and then I would get cut off, due to the bad connection. The last thing I saw each operator say, as I looked on in mute frustration was:

“I’m sorry, I cannot see your responses. Is there anything else I can help you with today? Than thank you for contacting Comcast. Good night!”

I eventually came to my senses and used the telephone.

This morning, I received an unsolicited phone call. Like most of these calls, the operator starting yammering from a script, and didn’t let me get a word in edgewise for about a minute. It was something about a survey for “communications services,” and he had a 30-second disclaimer he had to get through about how he wasn’t trying to sell me anything. When he finally shut up, I said “sorry I don’t have time for this,” hung up, and continued to eat my cereal. If I were less polite, I would have hung up while he was
yammering.

Later that day, I went to the local Vons supermarket. When my path got within 10 feet of the chat-circle surrounding one of the employees in the produce department, a collision-test compelled him to smile cheerily and say, “Hello, how are you today?”. Every employee at the produce department at every Vons I’ve been to does this. Once I replied by saying, “I’m good, but I’m sorry they made you say that.”

Later that evening, I was pumping gas and a homeless guy came up to me. He didn’t speak English very well, but he had a one word script.

“Change?”

I gave him a buck.

Then I remembered the conversation I had next to the company coffee pot on Friday morning. Something about the weather and how much I was looking forward to the weekend.

Scripts.

I guess we all engage in formulaic conversation on a daily basis. There’s a reason why we do it. It smooths things over and makes certain parts of life less complicated. But I still get immensely irritated by customer service scripts, especially when an employee is using a script that was obviously prepared by someone else. The more incongruous the person and the script the more it irritates me.

Why do companies use these scripts, I wonder? Is it expressly for the purpose of making me feel manipulated? I’m pretty sure it isn’t.

If I had to wager a guess, I’d say that customer service scripts exist so that the company can maintain a consistent quality of service, and communicate a consistent message to the customer. It is a way for the suits back at headquarters to control the representative/customer experience.

Scripts are also used because companies want to maximize sales. When a waiter at a chain restaurant offers you a blooming onion before taking your order, a sales-driven script is at work. I tend to resent sales-driven scripts even more than the consistency-driven scripts, because they tend to inject irrelevancy into the interaction.

But mostly, scripts are used because the suits want you to have a consistent, and therefore good experience, which I don’t necessarily view as a bad thing. Maybe it’s even altruistic. But the mere fact that a script is in use tends to start things on a bad footing. Surely, the marketing folks must know that most people don’t like scripts. And yet, they use ’em.

* * *

Disdain for corporate scripts is nothing new. Here’s Lily Tomlin as telephone operator Ernestine:

“Here at the Phone Company we handle eighty-four billion calls a year. Serving everyone from presidents and kings to scum of the earth. (snort) We realize that every so often you can’t get an operator, for no apparent reason your phone goes out of order [snatches plug out of switchboard], or perhaps you get charged for a call you didn’t make. We don’t care. Watch this [bangs on a switch panel like a cheap piano] just lost Peoria. (snort) You see, this phone system consists of a multibillion-dollar matrix of space-age technology that is so sophisticated, even we can’t handle it. But that’s your problem, isn’t it ? Next time you complain about your phone service, why don’t you try using two Dixie cups with a string. We don’t care. We don’t have to. (snort) We’re the Phone Company!”
— Lily Tomlin, as Ernestine

Tomlin was channeling public perceptions of how they were being treated by Ma Bell in the 60s. Large organizations have been using scripts for as long as their were large organizations. The oldest customer service scripts still in use are the ones used in church and temple rituals.

People don’t like corporate scripts for the same reasons they don’t like other forms of bad marketing – people don’t like feeling manipulated. If it is obvious that a script is in use, it is obvious you are being manipulated.

Ultimately our disdain for scripts stems from our desire for free will, or at least the illusion of free will. A well written script must provide a convincing simulacrum of free will.

Just as we desire freedom, we prefer it if the people we are talking to are also free. A person who is speaking from a script is not free.

When you are talking to someone who has been instructed to use a script, you are talking to the marketing department instead of to the actual employee in front of you, whose viewpoint may vary immensely from the viewpoint expressed in the script. When scripts are used, it demonstrates that the company hires employees that they do not trust to speak using their own words. It shows the company disdains its own employees.

Some companies eliminate the pesky employee problem by using computers to deliver the scripts, hiring expensive voice talent to speak the lines in an impossibly cheery and erudite way. This is equally preposterous. The companies not only disdain their employees, they disdain the human race!

There are some good voice recognition systems out there, though. The system now used by the phone company to handle 411 information calls is pretty good, I think. And the Meridian voice mail system works pretty well. I don’t mind such automated scripts when they are well written, and delivered well. The telephone company is pretty good at creating such scripts. My local city government is not. The script I recently used for jury duty was pretty awful.

Most of the technical-support-oriented automated scripts I’ve experienced are very poorly written – mostly because such scripts assume that most problems can be identified by a series of multiple choice questions. I especially hate it when I am provided with a list of choices which does not include “other,” and which, invariably, does not include my particular choice.

Most interactions do not lend themselves to computer voice-recognition systems. In these cases, what I seek, as a customer, is real dialog with real humans, who are free to say what they wish to say. When it comes to large companies, this experience seems to be in short supply.

* * *

Sometimes, I think it might be fun to start using my own scripts, in response to the scripts that I am constantly receiving.

“Hello, I’m Jim, and I’ll be your customer today. Would you like to serve me some coffee?”

“That was delicious, would you like me to pay the bill? How much would you like me to tip?”

* * *

“Although you are correct in stating that there is a “Jungle Cruise Script”; the day any one of us actually uses it, is the day The Jungle dies. The only time you might hear us do a “Standard Operating Procedure” (SOP) spiel, is when a supervisor is on our boat!!”
— Anonymouse Disney Employee

Some scripts are the stuff of legend. There are a number of websites devoted to the scripts used by the employees at Disneyland. One of the most famous is the spiel used by the operators of the Jungle Cruise ride, a collection of corny jokes which has slowly mutated over the years, due to the contributions of various employees.

There is something paradoxical about the Jungle Cruise Spiel. The company, Disney, wants all it’s operators to adhere to the script. Nonetheless, today’s script is made from bits and pieces that originated with various creative employees who intentionally deviated from the SOP (standard operating procedure).

If short, if all the cruise operators followed the rules, the Jungle Cruise Script would not exist.

Scripts are intended to insure good interactions with customers. The best scripts are models or records of good interactions with customers. But the best interactions with customers cannot occur when scripts are in use. A paradox, no?

Kircherian Coverpop

March 4th, 2006

The Jesuit Polymath Athanasius Kircher is a personal hero of mine. I constructed this Kircherian coverpop, which contains a collection of images from his books, which covered such varied subjects as geology, magnetism, architecture, music, egypt, and china. Stanford University Library’s Department of Special Collections has graciously granted me permission to use these images. The coverpop is a quick way to introduce yourself to the astonishing breadth of his interests.

Everyone who is fascinated by Kircher tends to focus on one of his subjects (kind of like picking a favorite Beatle). My favorite Kircher subject is music, which is one of the things he couldn’t possibly “get wrong,” unlike some of his other fields of inquiry in which he made spectacular gaffes, such as his “translations” of the Egyptian Hieroglyphs. In music and art, there is no wrong. There’s just stuff you like, and stuff you don’t like (and what’s not to like about Kircher?). Kircher wrote a couple of remarkable books about music, invented the Aeolian harp, and developed a system for developing counterpoint algorithmically, which was codified in two of his inventions, the Organum Mathematicum, and the Arca Musurgica, both of which were a kind of recipe card index for doing various kinds of useful, and not so useful calculations.

Kircher’s books also feature a number of amazing musical inventions, which are ancestors of our player pianos and our other electronic wonders. Kircher’s books were admired by other baroque composers, including J.S. Bach, who no doubt developed a lot of his techniques from reading Kircher.

Before I was a computer geek, I was a musician. When I first studied species counterpoint — the western system for arranging multiple melodic lines that are played simulataneously — in music school, I had not heard of Kircher. Doing counterpoint homework was a chore, and it occured to me that the rules of counterpoint were so systematic that a computer program could be written which would automate the process. I started trying to write such a program, and this was the beginning of my lifelong fascination with using random numbers to make pretty things. Kircher had the same idea, 400 years ago. I am convinced that if Kircher were alive today, he would be making amazing computer software to do music and art of all kinds.

Surviving examples of Kicher’s Arca Musurgica and Organum Mathematicum (a precursor to the slide rule) still exist, and I would dearly love to create a computer simulation of one in Flash, just so that those of us without access to museum store rooms can manipulate the tablets contained therein, and perform Kircherian calculations anew.

The spirit of Athansius Kircher lives on. He is currently maintaining an excellent blog, The Kircher Society, which is well worth a stop on your daily search for the novel and arcane.

If you’d like to know more about Kircher, who are two good books to start:

Athansius Kircher, The Last Man Who Knew Everthing is a collection of scholarly essays about different facets of Kircher’s fields of interest. The essays come from a 2001 conference on Kircheriana, organized by the editor, Paula Findlen. Sadly, there isn’t enough emphasis on Kircher’s music for my taste, but it’s still one of the better books currently in print.

Joscelyn Godwin’s Athanasius Kircher: A Renaissance man and the quest for lost knowledge is a 1979 book which contains a basic overview and some nice fullpage reproductions of many of the illustrations from Kircher’s books.

These books just scratch the surface. For a more in depth introduction, learn some Latin and visit the library at the University of Chicago, Berkeley, or one of the other institutions which has a good collection of Kircher’s books, most of which remain woefully untranslated into English.

If you’re in the Los Angeles area, be sure to visit my favorite place in LA, the Museum of Jurassic Technology, and see David Wilson’s amazing permanent exhibit on Kircher, which contains reconstructions of some of Kircher’s marvelous inventions. He usually has some great Kircher-related stuff in his bookstore too.

Freshly Opened Play-doh

March 1st, 2006

Yesterday I did a lecture for the USC chapter of SIGGRAPH entitled “Interactive Art & Toys,” in which I demonstrated how to build a Karl Marx Paddleball toy in Flash.

As a gift, chapter president Pamela Fox presented me with this really cool book:

Timeless Toys : Classic Toys and the Playmakers Who Created Them by Tim Walsh is now officially my favorite Coffee table book. I’ve already spent a couple hours immersed in it, reliving some vivid childhood memories.

The book 300 page book is filled with sharp vivid color photographs and short essays about all the wonderful toys that fueled the imaginations of kids who were born in the 20th century. Radio Flyer wagons, Crayola Crayons, Silly Putty, Mr. Potato Head, Slinky, Spyrograph, Rock ’em Sock ’em Robots, and so on.

Each individual toy is given about 4 pages, which is just about the right amount, I think. Walsh points out that this is not a book that anyone could write by spending an afternoon on Google. He really did the subject justice, contacting each of the inventors or their families, and getting some great inside stories, photographs and anecdotes that you simply won’t find online.

Not only does the book provide the inside stories about how each of these toys was created, but it also provides a wealth of vivid writing about what it was like to play with these toys. Do you remember the smell of freshly opened can of Playdoh? The feel of your snowboots against the steering bars of a flexible flyer sled? When did you etch a black square in your etch-a-sketch so you could examine the inner workings or take apart a Magic 8-Ball to see how it works?

One of my favorite sections is devoted to Marvin Glass, whose name is connected to a remarkable and diverse set of toys including Mousetrap, Operation, Mystery Date, LiteBrite and Simon.

The USC students made me promise to build to build simulations of a few of these toys in Flash, and I intend to live up to my end of the bargain. Thanks guys!

Programmers are Lazy, Part 1

March 1st, 2006

This blog is intended to be lighthearted and fun, and it is not normally my policy to fill it with angst and invective. But sometimes a guy has to rant. Today’s rant is directed at lazy programmers. We know who we are.

Computers are labor saving devices, so it is natural that the programming field attacts lazy people. The worst of these lazy programmers generally gets stuck programming boring things like shopping carts, which, sadly, the rest of us have to use.

Here is today’s example:

This is a screenshot from a poorly designed website I occasionally use when I’m worried a movie is going to sell out before I get to the theater (this has not been a problem the past 2 months, thanks Hollywood!).

If you’ve used credit cards online, you’ve probably seen similar forms with the same stupid design. I’m speaking of the prompt which requests that you not enter spaces or dashes along with your credit card number. This is a feature on nearly every credit card form I’ve used.

It is an example of incredible laziness. It actually takes one line. ONE LINE of javascript to remove spaces and dashes from a credit card number before sending it to the server. That line reads as follows:

n = n.replace(/\D/g,"");

That’s it. It also takes one line of code to accomplish this in PHP or Perl, should you wish to perform the feat on the server. But even if it took fifty lines, the minor pain that it would cause the programmer is a fair trade for the fifty thousand seconds of minor pain that the lazy programmer creates for the throngs who visit the website.

But ’cause some lazy programmer was too lazy to figure this out, we are stuck with an incredibly stupid interface. An interface which has become so ubiquitous that many other lazy programemrs simply copy the design, thinking this is the way things should be done.

Allowing users to enter spaces and hyphens with their credit card numbers is actually a good and noble thing. It makes the numbers more readable, especially for those of us who are far sighted. It makes the numbers more closely resemble the way they are arranged on your credit card, thus insuring accuracy, and enabling the user to do better error checking.

Finally, if you allow spaces and hyphens, you don’t have to clutter your interface with a message that asks users not to enter them — a message, incidentally, which is about as long, and sometimes longer, than the above line of code.

jbum at USC

February 28th, 2006

I’ll be giving a free lecture-workshop at USC tonight. Most likely I will
be demonstrating how to make a Karl Marx toy in Flash, but I may change my mind.


Come by and say hi!

Here’s the official blurb:

Interactive Art & Toys in Flash
Tuesday, Feb. 28
7:30-9:30 @ (USC Campus) SAL 127

Jim Bumgardner, a software technologist, teacher and devotee of recreational programming, will be coming to USC to give a lecture-workshop on using Macromedia Flash to create digital motion graphics and toys.

For examples of his work, check out krazydad.com.

Posters of Jim’s famous Flickr collages will be given away throughout the night!

Some basic experience with Flash is expected. If you are new to Flash and would like to attend, please email to arrange a last-minute tutorial.

RSVP to siggraph@usc.edu.

More info on USC SIGGRAPH at http://imagine-it.org/uscsiggraph/

Star Trek Comics

February 25th, 2006

I’m working on some new coverpops, and here’s the first one out of the gate.

This is a collection of Star Trek Comics, from 1970 to the present. The images were provided by Mark Martinez, at the Star Trek Comics Checklist. Thanks Mark!

The images are arranged horizontally by time (older comics on the left) and vertically by average color (red shirts in the middle).

The second coverpop features the work of the underappreciated Athanasius Kircher, whose work in algorithmic music composition, among many other diverse subjects, I find immensely fascinating.

Do you have a comprehensive collection of interesting images that would benefit from this treatment? Let me know.

Three Kakuro Books

February 23rd, 2006

Kakuro Puzzles, for the uninitiated, are numeric crossword puzzles. If you like Sudoku, you will probably like Kakuro too — they both can be quite addictive. There is a collection of free kakuro puzzles in my puzzle section.

Last year, I wrote three inexpensive Kakuro puzzle books for Ulysses Press. They can now be pre-ordered on Amazon, and here they are!


Simple Kakuro is a collection of 214 simple puzzles, ranging from 5×5 to 11×11 grids.


Beat the Clock Kakuro is a collection of 214 puzzles of varying difficulty, ranging from 8×8 to 11×17. Each puzzle is accompanied by a “time to beat,” in minutes.


Masters Kakuro presents my most fiendish Kakuro puzzles. It contains 172 large (11×17) puzzles which I hope will keep you occupied for a good long time. If not, let me know, and I’ll write some more books!


Processing as a first language, compared to Flash

February 15th, 2006


I really like Processing, the programming language.

I’ve been using Processing for about a year and a half, and I use it fairly frequently. I use it almost exclusively to do quick and dirty tests of ideas where I want graphical feedback. Because very little of this work has been seen by the general public, I thought it would be a good idea to put up a gallery of some of my processing code, both to illustrate what kinds of things I think Processing is good for, and to provide some free code samples.

Here is my Processing gallery.

When I first started programming, most computers came with a built-in BASIC interpreter, which was a simple way to start learning programming. Sadly, this is no longer the case. I think that most of the languages that are taught to first-time programmers are terrible choices. I don’t think first time programmers should be learning C, nor Java, nor BASIC in its most common incarnation. If you started on those languages, and are still going, then more power to you, but I worry that starting artistic thinking “right-brained” programmers on these languages is a big turn off.

I teach Flash 6 actionscript as a first programming language, to mostly right-brained high school students at an Art School. It works pretty well for that, but I think Processing would be an even better choice. Here’s why:

* It has less baggage.

When I teach Flash, I have to spend about two classes on stuff that has nothing to do with programming, but is idiosyncratic to flash. Timelines, tweens, movieclips and so on. Flash is filled with idiosyncrasies, like the fact that scripts which are attached to movieclips look totally different than scripts which are attached to frames. These idiosyncrasies get in the way of ease-of-learning. With Processing, you can start programming right away, and produce a pretty picture in a line or two of code. It puts you into a programmer’s mindset right away.

* It provides a nice simple environment for programming.

Processing has a built-in sketchbook system for saving and loading and running projects, an idea (perhaps borrowed from Mathematica) which I’d like to see more of. It makes cutting and pasting between projects a snap. It’s not a full blown IDE, which is good, because a full blown IDE has too big of a learning curve for first time programmers. Like flash, the built-in editor isn’t great, but it’s good enough.

* It’s cheap and widely available.

Like Flash, Processing runs on more than one platform (any technology which is primarily targeted at windows machines is of extremely limited value, in my opinion – this is why you will so no C# or .NET on this website). Unlike Flash, Processing is free.

* It has a richer set of graphics commands.

Flash 8 has rectified this to some extent. In prior versions of Flash, there are certain things you simply can’t do, graphically, because everything is vector based. You can’t paint individual pixels (well, you can, but it’s cumbersome), nor read the value of individual pixels. Processing allows for these things, and also provides multiple color modes, 3D, and a host of other cool graphical goodness. This is one of it’s principal strengths.

* It’s significantly faster than Flash.

Once it’s running, that is (see below). Flash is pretty darn slow by comparison.

There are also some things I really dislike about Processing, as compared to Flash:

* Terrible name.

I truly believe that the name, “Processing,” prevents wider adoption of the language. Because it is a noun already in common use in computer jargon (unlike, say, Perl or Python), the name guarantees that web-pages related to the language will be hard to find in search engines. The word’s banality makes it difficult to remember when you first hear it. Nearly everyone I talk to about Processing fails to find it, when they try to remember it a few hours later — either they forget the name, or they fail to find the website, processing.org. The name Processing is almost as bad as “Language”. Processing used to be called p5, but that name has fallen out of favor with the developers. Personally, I think p5 is a better name, and I still use it when I’m trying to be clear what I’m talking about.

* Java engines suck.

Because Processing is a superset of Java, it relies on current Java technology. On most of the web browsers I use, it takes a long time for the java engine to come up, and then a long time for an applet to start. This means users spend a few seconds looking at a mismatched square, and it’s one of the main reasons I discourage my clients from using Java-based web applets. My flash applications start much more cleanly in web browsers.

I should mention that although I like Processing, I do not particularly like Java (or at least, current implementations of Java). I like to use a lot of different languages, but there are virtually no projects for which I consider Java appropriate — I usually prefer Perl or Python on the high end and C on the low-end. I consider Processing to be a “fixed” version of Java in some ways.

* Buttons are painful.

I find it cumbersome to make user interfaces in Processing, as compared to Flash. It’s not terribly difficult, but it requires some tedious work, and I’m lazy. Therefore I usually have very minimal interfaces in my p5 programs, such as simply moving the mouse up and down or left and right, rather than the draggable objects and sliders that I more commonly use in my Flash movies. It’s not that I don’t know how to make them, I’m just lazy. On the other hand, the kinds of things I use processing for generally don’t require much in the way of interfaces, so it’s usually no big deal.

* No built-in hashes

Actionscript supports hashes as a built-in data type – basically an extension of arrays. This is one of the most elegant things about javascript and actionscript, in my opinion, and I sorely miss it in Java and p5 — in these languages you must use the Hash class, which involves some ugly code, so I usually don’t bother.

Some recent mosaics

February 12th, 2006

Flickr Mosaic: Belated Valentine 1.2 (2006)

Happy Valentine’s Day!

This mosaic was made from about 3300 candidate Flickr images containing one of the tags love, heart, kiss, hug or venus.

Target Image: Detail from Botticelli “The Birth of Venus”

I wrote my photomosaic software in Perl, making use of ImageMagick, and the Flickr API. I describe some techniques for making photomosaics such as these, in the book Flickr Hacks, from O’Reilly.

This is the third version of this mosaic that I have posted on Flickr. The previous one was made a year ago, a little after Valentine’s day, hence the title: Belated Valentine 1.2.

Mosaic: Happy Birthday Flickr!

This mosaic was prepared for Flickr’s 2nd Birthday Bash, which started earlier this evening. The images come from the color fields and stock groups on Flickr. The mosaic, and another very similar to it, were printed as posters and t-shirts for the event by QOOP.

Sadly I couldn’t attend the event, as I was busy teaching high school students to make a Flash game in which you dress Godzilla in funny clothes (week 2 of my actionscript class at Art Center).

If you like these images, check out my other mosaics and my posters.

Flickr Hacks – Now tangible!

February 10th, 2006

Flickr Hacks

No longer a rough cutFlickr Hacks is now in print!

Brian Sawyer, our excellent editor, posted this image, which constitutes proof.

There will be some signed copies of Flickr Hacks at the Flickr 2nd Birthday Bash this saturday, as well as some other surprises which I had a hand in. Sadly, I’m teaching my Flash class on Saturday, so I can’t attend in person. Raise a glass for me!