RIAs (Rich Internet Applications) are not any different from other software solutions. Developers need to follow some basic User Experience design principles. They have to choose the right design to fit the right context of use against what we know about
users' cognitive capabilities.
The warning to development teams not to be too enthusiastic with new and cool technologies. This is what initially led to Jakob Nielsen's decree that Flash is "99% bad." Most of the challenges associated with developing RIAs are design issues and not technological problems.
How Developers Deal with Design Problems
The only way they can know if their application works well for users is through testing. One technique is for development teams to test an existing RIA. How are people using applications such as Yahoo Mail Beta, Gmail, and Zimbra? The best thing about design is that you never have to feel the need to start from scratch.
Developers can also leverage new design conventions. The Yahoo Design Pattern Library is an amazing resource to help teams out. Developers have fallen into the copy-cat design methodology. Conventions are guidelines and not rules. They can be extrapolated upon easily and creatively to evolve into new conventions. So look to examples for guidance, but not for solutions.
Some of the benefits of developing applications using
It allows a subsection of a screen (or page) to act independently. This helps developers and designers mitigate a big pain point in standard HTML solutions -- the full page refresh phenomena. In standard HTML, every time you need to fetch information from the server, the entire page will disappear and redraw, even if only a section needs to change.
The best example of this is in both Gmail and Yahoo's new Mail Beta. When you begin typing an address or name, they attempt to auto-complete it, refining your choices as you type. On each keystroke, it is refreshing a query against your address book (and history), presenting you with the total list of matching addresses, all without a page refresh.
Also, there has been a strong community of eager developers who have seen AJAX-like applications as a holy grail, to add appropriate richness to their applications without having to be tied to anything but a browser -- no plug-ins at all.
The last piece that has come together is the push towards Software-as-a-Service (SAAS) and browser-based applications. People want to subscribe to applications instead of buying a license.
Instead of blindly upgrading to RIA applications, development teams need to ask themselves if the technology offers benefits not possible otherwise. For example, are there places where using a different page metaphor would be advantageous for their
solution? Are there opportunities to reduce the frequent page refreshes on their projects? If this type of questioning bears fruit, then the development team should consider a new technology such as
If the team wants to try their hand with an RIA technology, they can start with "quick wins" like address book suggestions, or search suggest, or single field view/edit (think ratings in NetFlix). Use these quick wins as both technological and design proofs-of-concept to gain support for bigger page-metaphor changing designs later.
Are Rich Internet Applications are setting the standard? Are there some that just "get it" and could serve as valuable examples for those trying to learn more about them?
a toss-up. Google succeeds in one place where Yahoo doesn't -- simplicity of entry. Yahoo is still too hard to use, while Google still doesn't have the right output and features. These are a great example of how total experience is important to make a solution truly succeed. There is definitely a middle ground waiting to be designed for.
The biggest pitfall of almost all RIAs is accessibility. They often don't work very well with screen readers and other third party accessibility devices.
RIAs also often work differently from how users expect. Since AJAX-enabled applications are still in the browser, users expect them to act like the traditional HTML-based web applications they're used to. It's a real challenge to present old interaction
behaviors like drag & drop in a new context. The favorite criticism of most RIAs by web purists is that it kills the "Back Button." It is true that the back button does have to be managed, but there are aspects of the browser that "get in the way" of trying to do desktop-like behaviors in a web browser. However, you can succeed at having a pretty rich interaction model and still allow users to use the back button.
On the consumer-based web
Skills Successful RIA Developers Have
Well, they first need to understand design. I suggest they take a studio course for at least a semester. Learning a design discipline will take you further in your design career than any Flash or Photoshop class ever will.
To be successful at any creative endeavor you need to have 3 components: craft, critique, and theory. For an interaction designer's Craft, they need to know graphic tools, prototyping tools, programming languages, databases, frameworks. For Critique, a designer needs the ability to view and evaluate their design work. For Theory, designers need to understand the principles of HCI, game theory, visual design theory, and general design aesthetics.