Web-based software is all about democratizing functionality. It used to be that you had to have expensive packages like Adobe Photoshop to edit your photos and Cubase to write a song. With the ever-expanding data pipe and more robust browser-based development platforms, anyone with a modern web browser can run apps like picnik to tweak their snapshots or Hobnox's Audiotool to make a beat. Not only are these apps inexpensive-to-free, they also make the activities they support more accessible to the lay audience. Creating simplicity out of complexity is no easy task, but there are a few things you can do to help more people get great results out of your web applications.
1. Streamline Your Feature List
(screenshot from http://www.picnik.com)
The biggest thing you can do to increase ease of use is to prune your feature list. I don't mean add 'cut' and 'copy' functionality and leave out 'paste'; without 'paste,' 'cut' and 'copy' are worthless. I mean figure out why people will use your app and only include features that support that 'why.'
Why doesn't Picnik let you do everything Photoshop does? Because Picnik is for lay people who want to touch up their photos, not for professionals who want fine-grained control over their images. These users want to get rid of the redeye that makes little Bobby look possessed, not make subtle changes to color curves. If someone knows what color curves are and wants control over them, they're going to use Photoshop.
2. Explain How To Use It
Now that you've focused your efforts on a few important features, you want to show your users around and help them get started.
No matter how intuitive your interface is, there's always going to be a learning curve. Sure, a good interface designer can make the UI easier to understand, but even Donald Norman isn't going to be able to make it obvious to everyone. Interfaces and designers aside, there will always be users that need or want instruction.
Explaining how to use your application is especially important when you're tackling a complicated or unfamiliar domain. For complicated or new activities, we go beyond providing instructions and venture into education. Sound design, for example, is a deep subject, and while I know what an ADSR envelope is and think it's a pretty straightforward concept, chances are you have no idea what I'm talking about. It probably wouldn't even help that I used a traditional ADSR interface in which each parameter is controlled by a vertical slider. Remember, if you haven't heard it, it's new to you.
(screenshot from http://hobnox.com's Audio Tool)
3. Simplify Decision Making
The goal of any application is to help someone with an activity. Designers have to identify the features that are essential for completing tasks, explain how to use those features, and provide ways for the user to access those features. When done well, these steps go a long way to creating an intuitive, efficient interface, but there's more to achieving goals than executing commands and completing tasks. There are also a lot of decisions to be made. Every decision a user has to make is another chance to bail on the activity (and your app). ??You can help users make decisions by simplifying those decisions for them. For example, in addition to providing controls for contrast, color balance, and saturation, Apple's iPhoto applies different combinations of these parameters to thumbnails of the image and lets the user choose one. That's one decision that relies on the user's ability to pick the one they like best instead of three decisions that rely on fairly specialized knowledge.
(Screenshot from Apple's iPhoto software)
A Bonus Gift
As if making your application easy to use isn't reason enough to employ these strategies, there's a bonus here that you might not have noticed. They're all cheap and some might even save you money. Streamlining your feature list narrows the scope (and cost) of development; explaining how to use your software doesn't cost much and provides a reality check to your interface design; and simplifying decision-making processes can reduce the amount of back-end functionality you have to expose.
To make these strategies as effective as possible you have have to understand your users. Why are they going to use your app? How long are they willing to spend getting to know it? How well do they understand what they're trying to do? What words do they use to talk about the activity? How are they doing it now? What would make it easier for them? There are dozens of relatively inexpensive ways to collect these answers and get started.