Confessions of an accidental instructional designer

Be a Problem-Solver, Not an Order-Taker

This post is talking about software, but the principle applies to any consulting situation, including instructional design:

Just because people ask for something doesn’t mean we should build it… It’s our skill and responsibility as creators and experts to understand and synthesize user feedback into great products, and not slavishly do what our users say, producing one more pointless product after another.

Remember that the next time a client requests “training” focused on delivering information, rather than building skill or changing behavior. As Cathy Moore so eloquently puts it, “Be a problem-solver, not an order-taker!”

Apple CEO Tim Cook on Customer Feedback

This is inspiring: I wonder how many CEOs get hundreds of customer emails every day. I wonder how many of them would consider it a privilege.

It’s interesting to me – and I think this is a privilege for Apple – just like we’re sitting down at this table today, I get e-mails all day long, hundreds, thousands per day from customers who are talking like you and I are talking, almost like I’ve gone over to their home and I am having dinner with them.

They care so deeply about Apple they want to suggest this or that or say, “Hey, I didn’t like this,” or, “I really love this,” or tell me that FaceTime has changed their lives.

I received an e-mail just today where a customer was able to talk to their mother who lives thousands of miles away and is suffering from cancer, and they couldn’t see her any other way.

But the point is they care so much they take the time to say something. It’s not a letter like you might think is written to a CEO. It’s not this formal kind of stuff. It’s like you and I are having a discussion, and we’ve known each other for 20 years, and I want to tell you what I really think. I love it. I don’t know if there’s another company on earth this happens with. It’s just not people from the U.S. These are people from all over the world. I look at it, and I go, “This is a privilege.”

Is there another company in the world where their customers care so much they do this? I don’t think there is. Other companies I’ve worked at, you might get a letter every six months, and it was, you know, “I want my money back,” or something sort of terse. There was no emotion in it. So I think this is really something incredible.

At one of the companies I worked at, not to mention any names, we’d put (new products) in the lobby. We’d get on the employee intercom system and say, “Come look at them,” and nobody came. They didn’t even care.

I’ve talked to many other CEOs who look at me like I have three heads when I talk about getting hundreds or thousands of customer e-mails in a day. It’s a privilege. It’s like you’re sitting at the kitchen table. You’re a part of the family. And we have to continue to honor that.

Read the entire interview here.

Golden Rules for Managing Engineers

From David Kimbell’s 10 Golden Rules for Managing Engineers:

(1) Refuse to manage. Lead instead.

What [engineers] need is someone who will set them clear goals, give them the necessary tools and training, and protect them from distraction. That’s leadership.

I have not come across many leaders in my career. Lots of managers. Few leaders.

(2) Give them clear direction, then get out of the way.

Too many managers behave as if they are indispensable. That’s often because they fear they might not be.

Engineers need to know what’s expected of them, and what their priorities are to be. Then (unless he/she is a newbie), leave them to it. Remain accessible, but out of the way.

Amen! The rest of the list is good, too, but those are my favorites.

Agile Instructional Design

I’ve been working on a post about how software development has moved away from heavy, big-design-up-front methodologies like Waterfall to more agile, iterative processes, and maybe it’s time for instructional design to do the same: Abandon the dated and cumbersome ADDIE model for something that allows us to produce training more rapidly and incorporate feedback from actual learners.

Then today Nicole Legault tweeted about this: Instructional Design and Rapid Prototyping: Rising from the Ashes of ADDIE. So, um, go read that.

I will add, however, that I love this point from Justin Searls’ presentation, The Mythical Team-Month:

Consensus doesn’t scale. Consensus corrects for the team’s needs; feedback corrects for the users’ needs. Sadly, time spent gaining consensus costs you in feeback.

Rather than spend time in meetings talking about training, get something in front of learners as quickly as possible and let them tell you how to improve it.

Blog Changes

As this blog approaches its tenth anniversary, I’ve been considering some changes.

For my first year of blogging, I used Radio Userland, a now-defunct piece of software created by the godfather of blogging, Dave Winer. Userland charged $40/year for Radio; when the time came to renew, I researched the available alternatives and chose Movable Type, which is free for individuals. I’ve used it, more or less happily, ever since.

A few weeks ago, Scott Hanselman tweeted about a new service that lets you create a web site by simply saving text files to Dropbox. That concept appealed to me, particularly since it would simplify blogging from my iPad.

It turns out there are several such services. Scriptogram seems the most flexible, so I created an account and began the process of converting my existing content to Markdown format.

I soon realized, however, that Scriptogram creates URLs like this: The service supports custom domains, so I could do this:, but beyond that I can’t customize the generated URLs. If I migrate this blog to Scriptogram, all the existing URLs will change. Not good.

If I were starting a new blog, I would definitely use Scriptogram. But until I can keep my existing URLs, I’ll leave this blog where it is. I am, however, going to start writing posts in Markdown and saving them in Dropbox; I used Byword and MarkdownPad to compose this one. When it’s time to publish, I’ll paste the text into Movable Type (which supports Markdown); not as seamless as Scriptogram, but it’ll do.

I also plan to change this site’s focus (or, more accurately, give it one): Ten years ago, I was a software developer working on my first major ASP.NET project; I wanted a place to capture what I was learning and share it with others. Since 2005, I’ve been a technical trainer, learning instructional design, facilitation skills, and how to create e-learning that doesn’t suck. Watch for posts on these topics in the coming weeks.

The Great Linux Experiment is Over

In October, a friend asked me for help with an Acer Aspire One netbook that wouldn’t boot. It turned out to be a bad hard drive; I picked up a new one at Fry’s and popped it in. Then I thought, “I wonder if Linux would perform better than Windows on this anemic processor and 1 GB RAM?” So I downloaded Ubuntu 10.04 and installed it. I was impressed: it installed effortlessly, ran speedily and required less than 200 MB RAM. And the Netbook Edition launcher looks slick!

Ubuntu Netbook EditionWhen I returned my friend’s computer, I explained that I had installed Linux instead of Windows and walked her through some basic tasks: connecting to a wireless network, importing photos from her digital camera, etc. She seemed pleased with the snappy performance and cool appearance; she said she only used the computer for basic tasks, so Linux should be fine.

As I was leaving, she asked, “Will this work with my Zune?” Uh oh. Current versions of Ubuntu can sync with Apple devices, but apparently Microsoft’s player uses a non-standard protocol that hasn’t been ported to Linux. So, um, no. “No problem,” she said, “all my music is on my mom’s computer anyway, I’ll just sync the Zune there.”

A few weeks later she called me about another problem: she had recently purchased a Palm Pre phone, and had downloaded a program to install third-party apps onto the phone. The program is written in Java, but apparently it requires the Sun (now Oracle) Java runtime, which is not included with Ubuntu. She had made a valiant attempt to download and install the correct runtime, copying and pasting commands into the Linux terminal, but she couldn’t get it to work (turns out she had downloaded the 64-bit version).

I borrowed the computer again and installed the correct Java runtime. I also installed VirtualBox, Windows XP and Microsoft’s Zune software, so she’d be able to sync her Zune without going to her mother’s house.

A few weeks ago she sent me a frustrated email with the subject, “I give up.” She was trying to apply for a job, and the application included an online test; for some reason the test didn’t work on her computer. She asked if I would please put Windows back on her machine: VirtualBox was giving her an error and she didn’t want to keep bothering me. So I did.

So, the Great Linux Experiment lasted about two months. Maybe if I had installed the Sun Java runtime and VirtualBox at the outset, my friend wouldn’t have gotten frustrated so quickly. Or maybe you need to be a geek (or live with one) to make it work.

Traveling with the iPad

Shortly after Apple announced the iPad, I began planning a trip to Europe. I had been thinking about buying a small-and-light notebook computer; the iPad seemed like the ideal travel device, so I bought one instead. For the first time in as long as I can remember, I’m traveling without a laptop. Here's what's worked well on this trip, and what could have been better.


  • Battery life. I flew from Portland, OR to Paris by way of Philadelphia, and still had plenty of battery left when I arrived. Apple’s estimate of 10 hours is conservative.
  • Instant-on. Using the iPad feels more like using a smartphone than a computer: press the power button and you're ready to go. No waiting for a PC to boot, or even awaken from sleep.
  • Portability. At 1.5 pounds with a 9.7-inch screen, the iPad is easy to bring almost anywhere; my carry-on bag has never been lighter. The tablet form factor is a pleasure to use, even for an overweight guy seated in coach.
  • Capacity. I wasn’t sure if 16 GB would be enough space, but it’s plenty. I keep music on my phone, freeing up the iPad’s gorgeous screen for video and e-books. I’m carrying 9 full-length movies, 5 books and several TV shows, and I still have about 4 GB free.
  • Remote desktop. I use an app called iTap RDP to access my home desktop computer from the iPad. This has allowed me to check my work e-mail even though my employer doesn’t support connectivity from personal mobile devices.

Not so good:

  • Sharing photos. I like to upload photos from the road to Facebook or Picasa; there’s currently no easy way to do that with the iPad. Before leaving the U.S., I made several attempts to purchase Apple’s Camera Connection Kit; the local Apple Store never had one in stock, and the wait was 2 to 3 weeks if I ordered one online. But even if I had one, I don’t know of a good way to upload multiple photos to an online service: the services’ Web sites don’t play well with the iPad’s lack of a file system, and there are no iPad apps for Facebook or Picasa. Fortunately, I’m traveling with friends who brought a laptop, so I’ve been able to impose upon them to upload my photos.
  • Limited content options. With a laptop, I can download fresh content, such as new episodes of my favorite TV shows. I can do that on the iPad, too, but only from iTunes at $2 a pop (plus DRM). Hulu is not an option on the iPad (since I’m outside the U.S., it wouldn’t be an option even on a laptop); I’m using an app called Air Video to stream content from my media center PC at home.

I brought a Bluetooth keyboard, which has turned out not to be necessary. I’m writing this from a café in Brussels using the on-screen keyboard. Maybe I’d prefer a physical keyboard if I were a touch-typist, but for this hunt-and-peck typist the on-screen keyboard is fine. When I do use the external keyboard, I find that I miss the iPad’s auto-correct feature (which converts “Id” to “I’d”, for example), and it feels awkward to have to touch the screen to select text.

Bottom line: the iPad is a great travel companion; overall, the pros outweigh the cons. For my next trip, I'll bring a Camera Connection Kit and leave the external keyboard at home. Maybe by then someone will release an app that makes it easier to upload photos. If you have any suggestions, please post a comment!

Update: Add blogging to the list of “Not so good.” I wrote this post in Pages, Apple’s word-processing app for the iPad. When I went to post it, I discovered that my blogging software’s Web interface doesn’t work well with mobile Safari: the rich text editor doesn’t work at all, and the HTML editor doesn’t display a scroll bar; if your post doesn’t fit on a single screen, you’re out of luck. [Update: I discovered, quite by accident, that a two-fingered drag scrolls a text area in the browser. Still, I’d have to edit raw HTML in order to post from the browser. I wish Pages could post to blogs!] There are a lightweight Web interface and a native iPad app, but neither of them supports formatting text — not even hyperlinks! I ended up e-mailing the Pages document to myself and remoting into my home PC to post it.

So now it’s a tie: I love the iPad’s size, weight and battery life, but blogging and uploading photos are a hassle. Add the fact that I’m limited to iTunes for additional content and I have to connect to my home PC to check my work e-mail, and maybe a small notebook computer wouldn't be so bad after all.

Free Webinar: Extreme Makeover, Web Edition

I will be presenting a free webinar on Tuesday, March 16 at 11 a.m. Pacific time. This presentation will consider 5 common Web usability problems and how to avoid them. You’ll learn ASP.NET techniques to improve input validation, avoid confirmation alerts, simplify complex forms, and more!

To register, visit Thanks!

UX Tip of the Week: Why Message Boxes Are Evil

I recently purchased a new hard disk. Eager to free up space on my crowded system drive, I dragged hundreds of files from their existing locations to the new drive. “67 Minutes Remaining,” Windows said. I went off to read a book (who am I kidding? I watched TV) while the computer did its thing.

An hour or so later, I went to check on the computer’s progress. I expected it to be almost finished, but instead I saw this:

 Windows confirmation dialog

Thanks, Windows!

What’s So Bad About Message Boxes?

Here’s why message boxes are evil and you should avoid them:

If message boxes are such a bad idea, why do we continue to use them?

  • They’re easy. Most programming languages allow you to create a message box with one line of code.

  • They’re placeholders. “I’ll replace it with something better before we ship.” Right.

  • Management insists. You want to do the right thing, but your manager tells you there’s no time in the schedule. “A message box is good enough!”

  • They’re all we know. The program needs to communicate with the user. How is it supposed to do that if we don’t use a message box?

Message Box Alternatives

To answer that last question, let’s consider four contexts in which programmers commonly use message boxes:

Confirmations. Those infamous “Are you sure?” prompts. Confirmation dialogs are generally ineffective because they quickly become routine: the user learns that to perform some action (say, to delete an item), she must click the Delete button and then click “Yes” on the confirmation dialog. The one time in 100 she doesn’t intend to delete the item, her fingers are faster than her brain.

A better solution is to provide an undo function. Simply perform the action the user requests, then make it easy to reverse the action if she changes her mind.

Status updates. “I have successfully completed a task! Click OK if you’re proud of me.” It’s fine to keep the user informed as to your program’s status, but is it really necessary to make her pat you on the head?

As its name suggests, the status bar was invented for precisely this purpose. If you’re concerned that your users won’t notice status bar messages, please use a non-modal way to display your status. Here’s how Outlook does it:

Outlook status message

Internet Explorer uses an animated Information Bar:


Google uses an ingenious method to display status and expose the undo option:

Gmail undo

Options. “Do you want to do X?” When thinking about how a program should behave, I like to imagine it as my administrative assistant. If I ask my assistant to make a travel reservation, do I want him to interrupt me with every option: “Excuse, me, sir. Do you prefer a window or aisle seat? In the front, middle or back of the plane? Would you rather leave in the morning or the afternoon? Do you want to fly through Chicago, Denver or Minneapolis?” Of course not! I’d like my assistant to make educated guesses about my reservation, then present it to me for approval. If I make any changes, I’d like him to note my preference for next time.

Similarly, rather than displaying a message box for each option, software should use intelligent defaults. Choose default options that will satisfy most users, and offer a straightforward way for more advanced users to change them.

Errors. This is the context most likely to warrant a message box, but only if it tells the user precisely how to correct the problem (“Please insert a blank disc into drive E:”) or if the error is so severe that the program cannot continue.

If the user can’t do anything about the error, there’s no need to bother her with it; simply log it, perhaps notify the development team, and move on. If the error is caused by something the user did, such as entering invalid data, there are non-modal ways to tell her about it. The best solution is to help the user avoid making the mistake in the first place.

In future columns, I’ll discuss each of these situations in more detail and provide sample code demonstrating my suggestions. My hope is that someday, it will be as quick and easy to do the right thing as it is to use a message box!

Travel Tip: How to Beat the System at the Airport

If you’re flying Northwest Airlines out of Portland, OR, you can take advantage of short lines for passengers who have only carry-on luggage, or for those who have bags to check and have printed their boarding passes at home. Unfortunately, this morning I was in the much larger third group: passengers without a boarding pass who have bags to check. The line for those kiosks looked like the line for Space Mountain.

In case you ever find yourself in that situation, here’s a tip: First, use the kiosk for passengers with only carry-on luggage. When the machine asks if you have bags to check, lie and answer, “No.” The kiosk will happily print your boarding pass. Next, get in the line for passengers who have bags to check and who already have a boarding pass (which you now do). After you check your bag, smile and wave at the people who are obediently waiting in the Space Mountain line.

I don’t know why Northwest makes its customers do this little dance, but this tip can save you about 20 minutes the next time you’re on the dance floor.