Tuxrocket

Posts Tagged ‘users’

Be Kind to the User- Even When it Comes to Errors

Errors- they’re everywhere. No matter how well you coded your app, there will be problems you just can’t foresee. But in some cases you’re bound to realize in advance that there could be a problem. Here are the ways, in order of helpfulness, in which you can handle errors in your app and make it kinder to users:

  1. Absolutely Nothing. Don’t even tell the user something happened. After all, if there’s nothing they can do, why worry them about it? Please don’t do this.
  2. Hidden Error Console. This makes sense in a web browser for all the messy JavaScript or browser specific code out there that won’t validate. But in just about every other case a hidden console that the user can discover and activate is the coward’s way out.
  3. Dialog Window. Pop up a little window that says ‘Sorry, had some trouble.’ This is unhelpful, although at least the user knows not to trust your app anymore.
  4. Suggest an Action. In addition to mentioning the error, your app suggests a specific course of action. An example might be that your app expects an image but can only accept one up to a certain size. Someday you plan to add a way to do that within the app, but this is 1.0! So your dialog says ‘Can you try that again with an image that’s only 32 x 32 pixels?’ It’s not perfect but the user knows exactly how to get around the problem.
  5. Launch their Next Action. You can see that the Gimp is installed on their computer. Ask them if they want to launch it to resize their image. Even better, give them instructions on resizing it in the Gimp.
  6. Ask If You Can Help. You ask them in the dialog if they want you to attempt to resize it for them. If they click yes, use ImageMagick or similar to resize and show them the results to see if they accept the changes. Now obviously them not ever knowing there was a problem because you handled it so smoothly is ideal most of the time. But in some cases, you may be stepping on the user’s creative toes if you assume too much. The other benefit to asking them if you can help is that the user recognizes you’ve helped. So they pay attention to how you do and if it’s done well, they’ll be grateful and trust your app a bit more. If they don’t know you helped, you just don’t get credit.

I recently experienced a few of these in Ubuntu. I had gotten used to MySQL Workbench’s specific error messages without realizing I had. Since installing the Oneiric Ocelot release candidate, Workbench loads so slowly that I fired up the aging (yet generally more usable) MySQL Query Browser. I noticed right away that about the only feedback it gave was that I had run a query. It didn’t mention that it failed and ideas about why, which Workbench does.

An even better example: a few weeks ago, after downloading a compressed file I tried to extract the files and got a little warning dialog. But instead of jut saying ‘Invalid’ or ‘Unsupported File Type’ it asked if I’d like to install the needed files in the Ubuntu Software Center. Yes please! Problem solved.

Where are the problem points in your app? Anything you can do to make it a little kinder?

Phoning Home

Lately there’s been a lot of commentary about Canonical’s new package that they’ll be using to count computers using Ubuntu for an OEM partner. As that last comment clearly said, people need to calm down about this. Even if they were tracking users in disagreeable ways, it’s open source and out in the open. If they start doing something shady, people can see that in the code and you can just uninstall it. From what I understand, it’s not even going to be part of the default- it’s specifically for an OEM’s customers which implies ‘normal’ Ubuntu users aren’t going to have this installed.

What’s the Big Deal?

Why is it such a surprise that a software maker would want to see how many users they have? In the commercial world where a software license is involved, user registration often is required and the software maker can be privy to all kinds of customer demographics. When my parents fill out these registration forms, it doesn’t even occur to them to not enter the information or to lie. They just type it in. And if that data is anonymous why should we begrudge our Linux distribution of choice a few demographics that will help them hone their product.

There are several other ways open source companies try to find out what they can- without threatening users. There’s Smolt from Red Hat which openSUSE also participates in that’s intended to evaluate hardware support priorities based on the userbase for a certain device. Debian has Popcon and openSUSE has Popcorn, their own spin on it. According to the description it “is an attempt to map the usage of … packages.” What a great idea! Know what users are using! It’s shocking!

Why Would You Want Your App to Phone Home?

Outside the Linux ecosystem, it would be typical to phone home to check for updates. Since the norm is for Linux to let you know and help you update accordingly, I think we’re used to apps not phoning home. But there are other reasons an app phoning home is a good idea:

  • Update content for users like news or to highlight website content
  • Get statistics on usage of your releases

Here’s a great example. Thunderbird from Mozilla uses the phone home tactic to great effect. At least since Thunderbird 2, the start screen when Thunderbird opens is by default a web page on Mozilla’s servers.

And in fact, when Thunderbird calls that page on the server it sends several bits of data:

  • application
  • version
  • locale
  • operating system
  • application build number

They don’t know it’s you- don’t worry. But they can get an idea of their userbase in broad terms. Not just that, they can show users content targeted to the version the user has installed. If the user is using a version that’s about to be abandoned, they can be warned. In the Shredder example (Thunderbird’s developer version codename), early adopters and testers are given information that will help them get feedback to the Thunderbird development team. In the 3.1 start page, Mozilla adds a donation button for a good cause. Potentially, they could highlight a feature every day, training the user on how to use the app from within the app itself! The start page can be overridden, but most users won’t bother, leaving this valuable two-way communication channel open for you to better understand and help your users to use your app even better.

Maybe phoning home isn’t for you, but maybe it’s going to be key to making your app great. Think about it.

By the way, the Thunderbird pages are here, here, here, and here.

Does Your Software Know Who’s Using It?

Seth Godin says:

The people who make desktop software are making themselves obsolete. When you start developing on the web, your default is to be smart, to interact and to be open (with other software and with your users). Desktop software (like Word) is insanely unaware of what I do, why I do it and who I do it with. Right now, the desktop folks have the momentum of the incumbent. Not for long. Time to hurry.

As a web developer, I know that there are numerous technologies out there that can make the web feel more and more like a desktop app- some like Adobe’s AIR and Appcelerant’s Titanium provide an actual desktop app that use web markup and coding to create a desktop application. That’s fine- but I don’t subscribe to the new ‘Web is the OS’ movement. I work on my desktop and there is a real difference between the two. At the simplest, my desktop is usable no matter what happens online. If a website I use goes out of business, gets shut down, decides they don’t like me anymore, etc., I’m sunk. I can’t use that anymore. And anything ‘saved’ on their sites is just gone.

But I digress. Seth is right in that it’s odd that apps I use on my own computer know me less than a lot of websites I use. One reason for that may be that on a website, you try to customize the experience for user because you want something- more users or more money. So the data and personalization goal is to drive revenue. You are hoping that if you create a great experience the user will continue using the app.

A desktop app is either:

  • Free : you’ll never get any revenue for it
  • Shareware : the user has a short time to decide to pay or not. Most of the time they will not have enough time to put enough data in for it to show whether it will personalize things or not.
  • Commercial : the user has already given you money. There may be hope that they will upgrade when it’s time, but those upgrades are usually driven by a need for a new feature- not because the app is so fun to use or personal for the user.

But a web app usually has a free model to attract eyeballs or a monthly payment system. Everything depends on people coming back while a desktop app developer may not care whether a paying customer ever uses their app at all.

Why should your app be different?

If you’re making a free, open source app, that changes more than just the initial ‘price’- your upgrade model is different too. As long as your app is useful, there’s nothing to stop users from getting the latest version. If they like what they’ve seen so far, why wouldn’t they upgrade? If the app you’ve created gives them the personal experience that just makes their whole desktop come alive for them, they’re going to talk about it with those they know. They’re going to start talking about you.

When they do that, you’ll have created a reason not just to use your app, you’ll be making the whole Linux community a better place because your app is there. Face it: Apps drive adoption. A stronger Linux community will depend not on the kernel but on the apps that are available to users. Make yours personal.

Two Goals For Your App

  1. Keep track of what users do and when they do it. One of the things Seth mentions is his contact list and how it would be nice to sort that based on when they were used or maybe the frequency of how often they are contacted. To do either of those your app needs to save data on how often and when contact is made. Store what actions are taken, who they involve, how many times they happen, when the last one was, when the first one was.
  2. Alter your app’s behavior to take advantage of the data. Offer new sortable columns if that applies. Highlight certain things differently based on age. If you see certain things happening on a schedule, have your app offer to do it automatically or create a toolbar button to easily perform that action. Making an app isn’t about collecting data- it’s about applying it. Every screen and button in your app should be aware of who is using the app.

Build Things to Solve a User’s Problem

The company (or project) that figures out how to do this will win.

That’s what Matt Asay says on his CNet blog. What to know what he said that about? He said that open source projects need to:

determine what average users want and then to translate this into development plans

Asay says that Apple wins with users because it takes what users want and makes its engineers deliver it, while typical open source projects, made by engineers, are not often made to be used easily.

It’s one thing to create a cool app that can do wonderful things. But the user doesn’t want a cool app- he wants a solution to his problem. Thinking man Clayton Christensen expresses it this way: People that shop for drills don’t want a drill. They want a hole.

Solve their problem and solve it in a slick way. Then you’ll have a fan.

Want to Stay in Touch?

It may be that now you’re thinking “Wow, I need to e-mail my users!” Yet, because of the way the Linux app community works, it’s extremely likely you only know a few actual users of your app. There may be thousands of users out there that have your app installed, maybe using it every day, but you don’t know who they are. But no lists means fewer calls for donations and less interaction with your users.

The answer to how you get an email list for a newsletter, etc. is to start a newsletter and add a signup form on your site. Promise to keep them updated on new plug-ins and releases. Yes it will take time.

Make sure your site is mentioned in your app so people can find you and start sending out content that is valuable. Reuse the content on your site to improve your search engine ranking while you’re at it.

Below is an example for the “Classics” iPhone app sign up form to be notified when it was released:

Obviously, their site and email are beautiful and that of course helps.

Simple E-mail Contact

How often do you contact users of your app? No, I don’t mean your developer mailing list. Not even your “user help” mailing list. How often do you send an e-mail to your users- just to say hi and give them a hug?

Here’s a great example. Things is an app for Mac OS X for keeping track of tasks. It’s a nice app. Recently I got this e-mail since I used the pre-1.0 version (before I switched to Ubuntu).

Now, most likely your app won’t need to say thanks for a pre-release sale, or offer a discount code. But what this message boils down to is “Thanks for using our app. Here’s a bit of news. We love you.” That may seem silly. But it’s what a lot of marketing is about. Those cools Apple ads? Part of it is to attract new users. But part of it is to make people already using it proud they do.

Tell them you love them. They’ll love you for it.

Why Linux Isn’t on Your Computer

The simplest reason that your computer probably has Windows on it is because everyone else’s does, too. It’s called ubiquity. And Microsoft has it. I do not think Microsoft is inherently evil. I do think it is a monopoly. But, in a way, that is to be expected. If a kid is out selling lemonade on the corner and starts making some money, other kids are getting to gradually pop up and sell lemonade, too. That first kid is going to try to keep making at least the same amount of money, but pretty soon, he realizes that with so many other kids competing with his lemonade stand on this corner, his profits are going to fall. He then has two choices. He can pack up his lemonade stand and give up or he can try to dominate the market. He starts chasing other kids away and copying some of the good things other kids are maybe doing to make their lemonade better, which makes his competitors redundant even if they stick around. It’s not right, but it is logical. You don’t play a sport to compete, you play it to win. If you want to be insanely rich, you have to win.

So Windows is on your desktop. It is a good operating system. It has quirks, problems, and a lot of bugs and security holes, but it’s good. It works for you. You’ve heard that there are other operating systems, some of them free, but you can never find them at the store, and the computer store where you bought your computer only offered Windows. There are a couple of reasons why. The reason why you may not see some other operating systems in stores is because of interest. Many stores now, including Staples, CompUSA, and OfficeMax, are actually starting to carry various other operating systems, but many stores don’t. Even though you’re looking for them, most others in your town probably are not. The stores know that most people “want” Windows. This really means that given a choice between Windows and nothing, most people would take Windows. What people want is not an operating system. They want to use the internet and type things and e-mail or instant message their friends. Windows can do those things. But so can most other operating systems. E-mail, the internet, documents, and even early instant messaging were invented long before Windows.

Or maybe you have a Mac, a special case in itself. Apple decided long ago that they wanted to control the whole experience- the computer itself and the software that runs it. So don’t ask someone at an Apple store if they can point out some Linux software to run on your Mac. But I sit here writing this on my Mac using Linux- it wasn’t that hard.

As for why Linux wasn’t an option when you bought your computer, that too is changing, but is still normal. For many years, Microsoft made computer makers use only Windows. You’re probably thinking, how did Microsoft make them do that? Well, computer makers were given a choice. They could use only Windows on the computers they made, or they could use a different operating system and not have Windows on any computer they made. Because Windows was so widespread, though, most computer makers didn’t feel they had a choice. Due to the legal battles Microsoft has lost, they appear to have stopped illegally manipulating computer manufacturers like this and today most computer manufacturers support and even offer Linux on some of their models.

As I have mentioned, things have changed. If you do some digging now, you can get a computer with Linux on it, and you can definitely find it in several stores in a box. Download it free online. The time has come. Try it out.

The Personal Touch

A few years ago I got my wife to switch to Linux. She is a great computer user, although she would probably be the first to deny this. She has done some pretty impressive things in Windows, whether it be writing her Masters’ thesis in Word (almost 100 pages!) and having it formatted to her professors’ specifications to compositing photos of her family in Corel Photo-paint 8 (which is not a simple program) for the cover of a family cookbook she compiled. She doesn’t like having to use new programs but she adapts pretty well. She is a computer user who is not afraid to use her computer (as long as things are backed up). But she doesn’t mess with her computer. And she doesn’t like me to mess with it either.

Mostly, she does word-processing, e-mail, web-browsing, and adding content to her family’s website. So when her tech support (me) switched the family computers to Linux, there was grumbling but eventually she was using it. Then I switched to Macs (in a big way) and eventually she inherited my iBook. That combined with wi-fi in our house means she uses the computer a lot. Then she started taking over the video editing for our family DVD. The other day I saw a nice little netbook at Wal-mart and thought, “I’ll have to get her one of those someday so I can get her off her Mac.” But then it hit me that she is no longer just using the common set of apps that are easily replaced with Linux equivalents. iMovie alone will be a big factor in getting her to switch.

The best chance Linux has of spreading is for Linux users to convince people and companies immediately around them to switch. In many cases, that will mean learning to do things they like to do, finding apps they can use, and teaching them how to use the new app. They’ll get your personal help in getting used to it, so it won’t be quite as scary for them. If we’re going to try to sell it to the whole world, we should back up that attitude with a willingness to put our time on the line to help some perhaps not-so-technical people to cross into the lands of Linux.

It’s one thing to sacrifice your time to make something really cool. Something that will help you. It becomes much harder when you have to make it cool for someone else too.

The Third Generation

For Linux to succeed on the desktop, it needs to win only one more battle. This battle is to win over the non-geeks. Linux, though it pains me to say it, is still pretty tricky, if not difficult. I think if I invited my brothers at home to install it, I’d be doing tech support for weeks. Linux is used by daring people right now, though the reasons for that daring vary. The non-geeks (let’s call them “normal users”) that need to be won are what I call the third generation of Linux users.

Imagine three sets of people. The first  are the hackers- the genius programmers that solve major problems and create basic components. These are people like Linus Torvalds, the creator of Linux, and others who make the essential parts of Linux. The second generation, the developers, builds programs and adds things to the basic elements that make Linux more useful. The third generation are “normal users” of Linux. They don’t care that Linux is open source and powerful. They may not even notice how much more stable it is. They like that it’s cheap. And they just want to be able to use their computer.  Linux has to become something that simple.

Those users may  never give back to the open source community, but they will be the deciding factor in the battle for the desktop. Linux has to be on store shelves right there next to Windows-based computers. It has to just be there and work fine without any of that tweaking that hackers and developers love. There’s a lot of functionality that has to be improved, but it’s nearly there. It’s going to be great.

Want your app to be successful? Make it work for “normal users”. Something in the underlying system making things harder? Help with that other component too. The “normal user” doesn’t know about anything like the command line. They want to use your app, not follow a list of instructions to get installed. If installing takes more than one step- installing the package- it’s too difficult.

Yes, you’re right. Anyone should be able to follow these directions you’ve written. But anyone who is anyone is already using Linux. Now we need to convince everyone else.

Improving Apps: Some hints, tips, and thoughts on marketing an app for Linux.

More

Pure Linux: How I use Linux 100% of the time.

More