Chapter 1: Understanding RIAs (part 4)
1.4 How much and how rich?
There are many levels of RIA integration. Some companies just want a shot of Web 2.0 in their drink, something to spiff up the user experience and make the site more contemporary. Others are trying to smooth over interface limitations of an HTML site, but still want to keep the basic framework. Still others are looking to develop a robust, end-to-end RIA solution for their clientele. How deep you decide to go depends on your budget, timeline and needs.
The book About Face discusses the different postures of software, some of which I will co-opt here as definitions for the different levels of RIA integration. Of course RIA integration runs a continuum, but this section is meant to help you decide what level might be right for your project and what’s involved.
1.4.1 Full steam ahead: sovereign applications
Full-scale integrations, or (to borrow the term from About Face) sovereign applications are online applications that are dedicated to one purpose or set of tasks, and usually offer the entire screen for use. These applications allow users to interact with and manipulate data, and usually promote stickiness and deep involvement with the site: users set up accounts, create profiles, upload media, invite friends. The goal for these is usually to provide an immersive and focused experience free from distractions such as external links.
Full-scale integrations and sovereign applications are gaining more and more prominence on the web, seen in applications such as Mixbook, flickr, and Yahoo Pipes. More corporations are turning to online applications for wikis, content management systems and human resources tools. Some makers of consumer software are going even further by creating desktop applications that seamlessly integrate with the web experience, but without any browser limitations. Joost is a great example of this; the user downloads Joost software to their local machine, but streams and views video in much the same way as on youtube. The end result however is a more robust, cinematic experience.
Because these types of applications are really products that will have competition based on a feature set or the quality of the user experience, companies are more willing to push the boundaries with these. The immersive quality of these applications allows designers to have more freedom to try unconventional interactions. This is definitely not the place to skimp on design strategy or interaction design, as your long-term return on investment is directly tied to the user’s favorable impression of the software.
There’s no way around it: creating a sovereign application is a lot of work. Creators of rich internet applications often include Web 2.0 features such as interactive maps, dynamic filtering, social networking, status, messaging, etc., none of which are simple or straightforward. With technologies based on Flash or other plugins (OpenLaszlo, Flex) both the design and development time is simply more: interactions are more complex, and the animations and other interactions that make RIAs great take longer to implement. Even using a more straightforward and less robust AJAX technology may require more development time if other Web 2.0 features such as social networking are included.
All of these warnings aside, I’m the first to encourage you to jump off this cliff and go RIA all the way. If you’re certain that your product has a focus that requires a dedicated application and your company has a stomach for the investment, this is the best way to provide a quality user experience while differentiating your product.
1.4.2 Transient integrations
The transient designation covers partial RIA integrations and widgets. One example could be giving an ecommerce site an AJAX makeover, to smooth over some of the interaction pain points without changing the overall HTML structure. Another example is a stock widget that lives on a page with other content, such as on a blog, updating continuously.
Transient integrations are well suited to sites and applications that aren’t visited frequently, or where less emphasis is placed on manipulating data instead of viewing it. These types of applications need to more closely adhere to typical web conventions because they don’t have the stature to require a steep learning curve of their users. They are also ideal when an overall HTML framework is desired, where users might like to bookmark individual views or share with others.
Widgets are miniature applications, but still deserve the transient label. There seems to be a growing passion for widgets that show the weather, follow stocks, play music, display RSS feeds, showing up on dashboards, myspace pages, blogs, and so on. Although we will see increasingly complex widgets appear in the near future, they still tend to have more of an emphasis on viewing data rather than entering or changing it, and always want to be very welcoming to a first-time user. Considering the small space available on a widget, the feature set must be reined in as much as possible.
Because their functionality is generally limited, investment of time and money for a transient integrations is less. Emphasis in the user interface is on clarifying work flows and simplicity in general. If time and money is limited, restrict the changes to those that will make the biggest impact in the user experience.
1.4.3 Just a sip: the RIA component
The last category is component, and this refers to the individual pieces of a rich interface which may be implemented singly. Some great examples of these are menus that expand in place, tooltips, dynamic inline messaging, etc. Even isolated components can dramatically improve the user experience, increasing the user’s feeling of responsiveness and efficiency of the site. Although creating a site by piecing together rich components one at a time will inevitably result in Franken-software, rich components can be added as shorter-term solutions.
1.4.4 Above all else, simplicity
There are many compelling reasons to add richness to a site or application. But because RIAs and Web 2.0 are the subject of so much hype, people have a sense of urgency without truly understanding the impacts. Occasionally we get clients who want a full blown web application when a widget will suffice, or they come to us with a buzzword checklist: social networking, user generated content, drag and drop, and hey, let’s throw in a node map for good measure. There are valid reasons to incorporate any of those things, but only under the right circumstances.
A company called 37 Signals has gotten a lot of attention recently for their minimalist approach to software. They propose isolating the true needs, the core functions needed to fulfill the vision for the software. Consider everything else icing on the cake to be incorporated as time/money/need allows. Or never. Very often features that seemed essential in the ideation phase of software development prove to be irrelevant when that software gets some face time with users.
Although it may seem like an obvious concept, it’s amazing how many companies lose the forest for the trees, getting into spitting contests with competitors over feature sets. More features add more complexity, greater cost, and longer development times. Cutting it down to the essentials will help you clarify the main identity of your software baby, and allow you to grow with it.
1.5 Summary
Hopefully you’re a little closer to understanding why RIAs are different and why that’s a good thing, There’s a lot of fuss about a new breed of technologies and features characteristic of Web 2.0. and it’s helpful to understand at least broad distinctions in technologies (plugin-based versus AJAX), and the types of rich interactions on everyone’s laundry list (social networking, user generated content, etc.). You’re also armed with knowledge about the continuum of integration, and what that means to your design or development effort.
With that under your belt, we can move on to the differences in designing the software, and how to prepare mentally for that task.