New Business
(650) 678-6743
(800) 313-7874
Email
Offices
Silicon Valley, Washington D.C.,
Sydney, London
Type of Inquiry
* indicates required field
Required fields must be filled in!

Blog on RIAs, SaaS and User Experience

Building consensus around SaaS functionality and design

Posted on August 26, 2010 by Paul Giurata

image

In the article “5 Enterprise Trends to Watch in 2010”,  ReadWriteWeb notes how real-time services are becoming more and more integral to the enterprise, particularly those that hook into business intelligence technologies.

This mirrors our own experience on work with SaaS and RIA projects. Increasingly, the driving force behind our clients wanting to move their business to a Software-as-a-Service model and using Rich Internet Applications, is the need to interact with customers and/or data in real-time, and to respond quickly to competitive opportunities or threats.

For example, our work with 3n targeted the design of an efficient workflow and interface to track and notify people in real-time about emergency situations. Our financial services SaaS work centers around applications and dashboards to dynamically monitor and integrate real-time data streams from diverse sources, and enable predictive, spit-second financial transactions. Our biotech client work is focused on real-time, synchronous collaboration for diagnostics.  Etc. etc.

The key principal here is that SaaS and RIA’s represent a shift in software to real-time. The business enterprise of 2010 needs to be on the web 24/7, interacting with customers and data, responding instantly to changing market conditions and multiple information streams.

image

Clients often ask which Rich Internet Application development tool they should choose - Flex, Silverlight, or an AJAX framework. Excitement over HTML 5 has been stirring up this question in the RIA community even more than usual.

At Catalyst we're in the business of delivering very sophisticated, responsive, interactive and graphically rich applications over the web, not pushing specific technologies. Sometimes Flex is a better option and sometimes AJAX is the better option and other times Silverlight or JavaFX is better. It all depends on the requirements, the team, and the application.

Each of these technologies have the same goal: enable delivery of a rich UI and immersive experiences with the interactivity and user engagement similar to desktop applications, but adding in the availability and interconnectivity of the web.

There are no hard and fast rules for selecting one technology over the other, however there are some rules of thumb.

AJAX - use for incremental, tactical improvements, SEO-friendliness, customizable footprint

If you are updating an existing application and want to implement rich functionality incrementally, with small, frequent updates then AJAX is a good choice. Or if you need to meet specific application footprints and performance requirements (e.g. fast initial page load time) AJAX development frameworks (e.g. jQuery, EXT JS) can be customized and tuned. Importantly you can also use Flash to fill in the gaps where you need richer behaviors, than are easy to create with AJAX (e.g. video players or real-timestock tickers).

Of course HTML 5 (supported in FireFox, Safari, Chrome and IE 8) will add to the allure of AJAX/HTML bringing local storage, multithreading, real-time data sharing, form validation, and more (e.g. 2D and 3D drawing).

See examples of our work in AJAX for Digital Advertising and Teleconferencing.

Flex - use for large-scale, more comprehensive user productivity applications

Like AJAX, Flex also can be used for gradual re-factoring of existing web applications via widgets, but the argument for Flex becomes particularly strong when an application is built from scratch, or has a high level of complexity and data processing. You get better performance (i.e. data sorting, search, display) and easier code maintainability. Also for large applications there is a definite plus with Flex in that you can avoid the necessity for testing and tweaking across browsers and OSs.

See examples of our work in Flex for Real Time Analytics and Media Advertising.

Silverlight - use if you are a .Net shop

Silverlight has many of the same arguments as Flex, except that it is geared for the community of .Net developers and offers seamless integration to .Net tools and components. Enterprises that work in .Net will find it easier to integrate interfaces and application designs created in Silverlight.

See examples of our work in WPF and SIlverlight for Financial Systems and Issue & Support Tracking.

So which technology do we choose?

We are agnostic about RIA technologies. Our developers are facile in all of the relevant options. So the general rule for us is to identify what problems our client needs to solve and then select the appropriate RIA technology. No one technology is inherently better than another. For each applications we look at the requirements for performance, interactivity, security, maintainability, scalability and in-house expertise, and then give our clients a recommendation as to the best technology or combination of technologies.

image

A primary motivation behind Catalyst’s specialization in modular, reusable UI design systems stems from the need to reduce the time and increase the speed, quality and agility of the UI and application design process during business transformation projects.

Traditional UI design and development process for enterprise business applications typically takes anywhere from 65 - 80% of the overall development time in any application redesign/redevelopment project. Reusable UI design systems significantly reduce this time, and increase flexibility (not to mention decreasing training/support costs and increasing customer satisfaction).

While many of our engagements are focused on full-scale redesign projects or designing new applications from the ground up, another segment of our work is devoted to retooling projects where companies need to migrate legacy applications to SaaS or Rich Internet Applications. Here, reusable UI design systems can play an especially significant role in streamlining redevelopment cycles and shortening implementation windows.

For complex enterprise applications or multi-business unit services, legacy migration, tackled all at once, if often too large to feasibly meet delivery windows and budget plans. Instead projects need to phase in over time, deactivating legacy components along the way. Design and use of a reusable UI component design library can bring quick, progressive “wins” of enhanced functionality, performance, consistency and a rich user experience.

Reusable UI design system components, that encapsulate business logic, data access/entry, and communication/displays, can be applied “as needed” to the transforming application. Reusable UI design is efficient and effective both for a redevelopment approach based on cross-sectioning or one based on multi-function integration on a broader scale.  This is in stark contrast to non-modular, non-reusable design which requires custom coding for integration and an all-or-nothing (read “prone to delays”), non-phased implementation.

Catalyst’s initial reusable UI strategy and architecture sprints focus on identifying high value scenarios, mapping legacy to target design functions/interactions, reuse, redundant workflow consolidation, and data handling as well as working with the development teams to define a strategy for legacy deactivation and transition management.

Once a user validated reusable UI design system is defined, it can be efficiently applied as target systems are transitioned, or as new services are added to support changing business needs.

 

image

The financial services industry is undergoing a significant transformation in how applications are designed and delivered. A key driving force behind this shift is the growing imperative to be global both in terms of providing customer-facing services and in taking advantage of a distributed global workforce. Applications that were previously targeted to local deployments on well-provisioned workstations or kiosks, need to be re-designed to serve an increasingly distributed global client base running “thinner clients” such as consumer PCs, laptops, notebooks, and mobile phones.

Not that many years ago, legacy financial services applications were designed to manage both the presentation layer (the UI) and the business logic using the computing resources and horsepower of the local workstation. The result was rich desktop functionality, but severely constrained portability or reach.

In order to provide rich-client applications beyond the walls of the home office (i.e. an early form of going global), financial service institutions had to rely on remote terminal technologies like Citrix (before they were talking desktop virtualization) or Microsoft Terminal Services.

While remote client technologies (or their descendants) survive in some form, the cost, licensing fees, and technical knowledge required for operation, limit their value or applicability. The business demand to be global is however, more compelling and wider reaching than ever, This is forcing legacy fat-client and remote terminal technologies to give way to Rich Internet Applications (RIAs).

RIAs take advantage of AJAX, Flex, Silverlight, Java (w/ JavaFX), etc. to provide rich client feel and functionality within the confines of a web browser. At the enterprise level these applications provide the scale, feature, functionality and responsiveness of traditional desktop software, but with the global reach of the web applications. They can be designed to handle very large data sets, scale to service thousands of users, meet fraction-of-a-second performance demands and encapsulate complex business logic.

RIAs make it possible for financial services institutions to achieve the requirement to be global, but not sacrifice the performance, richness, security, or functionality of workstation-bound legacy applications. RIAs are however, only one (albeit critical) part of the wave in the transformation of financial services applications. In addition, computationally intensive business logic is being separated from the RIA presentation layer and deployed into the cloud (e.g. SaaS), reusable application components are enabling rapid adjustment and adaption to changing business demands, and financial services organizations are beginning to take advantage of integration and collaboration services.

You may have noticed that CatalystReources.com has added a new Case Studies and Clients section. Our purpose for adding these sections is to give visitors a quick visual sampling of the types of projects and clients we have worked with.

It is easy to show case studies if the work is consumer-oriented and public.  It becomes a bit more problematic when the work is for mission critical applications or contain proprietary information (the secret sauce behind a company’s workings) - i.e. the kind of application that Catalyst typically designs.

In our new case studies section we think we achieve a balance between showing visual concepts and descriptive text, and not revealing anything competitive or confidential. We show representative samples in each of our primary areas of service.

We encourage you to take a look at samples of our application design work.  If you see projects that particularly interest you, contact us for a private and confidential briefing where we can provide more details.

Feedback of course is always welcome in the comments of this blog post or any other blog entry.

image

Most people I talk to seem to understand that building modular, reusable user interface components is different from building custom application UI and requires different development approaches.

Reusability however, although easy in concept, is not easy in practice. Many firms talk about developing modular UI, but typically they are focused on the function of a module - a list of tasks or subroutines. Data, workflow and behavior are addressed separately. The widgets may be modular, but you can't easily assemble them on a new screen of a new application or workflow.

Component-based approach

In contrast Catalyst uses a component-based approach where an individual component encapsulates a set of related functions for understanding and manipulating its own data, interpreting user interactions, and adapting to the workflow or unique performance requirements. Each UI component can be viewed as an independent (but cooperative) 'machine' with a distinct role or responsibility.

With a component-based approach, instead of customizing the code or running subroutines in your application, you add, modify, or delete components to achieve the design layout you want and reorganize them based on workflow and high value scenarios to support changing business needs.

What makes reusable UI components unique?

It takes significant effort and a lot of experience to write a UI component that is effectively reusable. The component needs to be:

  • well-documented
  • user-validated and thoroughly tested
  • robust with comprehensive exception handling, including input validity checking and internal error handling
  • able to pass back appropriate error messages
  • scalable to handle changing data or interaction needs
  • reusable at the enterprise level across many different applications, not just the specific application level
  • designed with an understanding that no matter how clear the documentation, it will be put to unanticipated uses

Building an application interface with modular, reusable UI, helps you achieve flexibility, simplicity, and return on investment.

Side note: Developers currently building applications with object-oriented analysis and design (OOAD) principles will be familiar with this kind of approach. Catalyst applies these concepts but works at a more practical level of granularity for reuse than objects.

image

While many SaaS services like to explain the value of their SaaS in terms of features (it does X) or cost saving (it is cheaper than on-premise), reality is that these “value propositions” position you as a commodity and are not sustainable. The probability is high that an upstart SaaS firm will soon beat you at your own game (price and features). As an alternative, I’ve made the argument, that a well designed, user validated, SaaS user experience can be an effective and sustainable differentiator between feature-competitive software products.

The value afforded by monitoring

There are several other SaaS value propositions worth exploring. SaaS user interface elements can be designed to monitor user behavior, enabling continual refinement of your service. Monitoring not only provides insight into how the SaaS should be improved to meet changing customer requirements, but also how to proactively reduce customer churn. The value proposition this enables you to offer is: easy to get started and easy to become proficient (and easy to get hooked).

The value afforded by connectedness

“Connectedness” offers another potential SaaS value proposition. In contrast to on-premise applications, SaaS is inherently “connected in the cloud”. Because of this, it can be designed to be more than a data-driven application providing access to end users. It can be designed to incorporate your entire extended enterprise into the business process - offering integration and collaboration services to your customers, partners, and suppliers. With “local” SaaS, the way the end-user interacts with the application should tightly map to the workflow and business objectives of the organization. This same principal applies when you expand your workflow analysis to include broader business objectives across more of your value chain. The value propositions of a SaaS designed to be usable across organizational boundaries are business agility, bottom-line revenue (reduced errors and cost, higher automation), and top-line revenue (improved relationships with partners and customers).

A human resources example

For example if your business is talent management, you can extend the design of your talent management SaaS to bring together internal HR, external recruiters, relocation providers, trainers, etc. This kind of connectedness is a unique and inherent value of SaaS. Beyond the technology, the key to this approach is to define the larger value your solution delivers across the value chain for visibility, control, and real-time collaboration (both upstream and downstream). Then concentrate the design around the high value scenario for those extended relationships, addressing the entire SaaS life cycle.