This is part 4 in a series of posts publishing extracts from a forthcoming Adobe whitepaper – see the first entry in the series for background information and links to the other posts in the series.
Adobe has engaged with many customers as they consider adoption and deployment of their first Rich Internet Application; over the years we’ve published a variety of best-practice documents and worked with partners and developers to share their experiences on the Adobe Developer Center. Notable resources would include this article on Flex development best practices, the Flex Interface guide (download) and the contribution of the Cairngorm RIA micro-architecture to the open source community (see this article for an introduction to Cairngorm).
The excerpt from the whitepaper below outlines a high-level set of best practices that should be considered at the outset of a project, based upon some of the common mistakes that are made when undertaking a RIA project.
Whilst some of these best practices might seem obvious, they are easily forgotten or ignored in the rush to implement technology that is both new and exciting; we’ve certainly seen a number of projects whereby failure to follow these guidelines has resulted in a less than optimal user experience or an increase in development costs so as to correct issues, so they are worth keeping in mind.
In the next and final part of the series we’ll take a look at the three Enterprise RIAs that are featured in the whitepaper – an Editorial Commisssioning System used at News International (developed by Keytree), a retail analytics tool built by LMG (who operate the Nectar loyalty scheme in the UK) and an AIR application built by ModelMetrics that provides tight integration into Salesforce.com. We’ll also publish the final version of the whitepaper for download.
RIA development and delivery considerations
To make the most of RIAs in the enterprise, there are several important guidelines to consider.
Enterprise RIAs need a good architecture and sound design principles. In addition, the delivery process must be aligned to the roles and processes of the IT organization, including web content and application providers.
Hence the successful implementation of an RIA depends on many of the same requirements for delivering any successful corporate application:
- clear vision of the application goals and requirements aligned to a desired business outcome
- flexible and agile methodologies that promote short release cycles and interactive participation with all relevant stakeholders, especially the end customer
- good supporting tools that promote team collaboration and communication
- reasonably skilled resources, possessing a positive attitude and a willingness to learn
- strong user interaction and a clear separation of concerns with a robust governance model
- commitment, vision, and support from key stakeholders and management boards
- robust monitoring and analytics with sophisticated reporting facilities to ensure maximum effectiveness and productivity from the application and the delivery process
- integrated quality assurance for all phases of the delivery process
Although RIA-specific methodologies have yet to be standardized across the industry, there are areas where reuse of existing practices makes sense. Because RIAs are Internet–based applications that draw on existing web technologies and programming skills, many of the current web application design and usage patterns remain applicable, as do common fixes for known issues.
In essence, RIAs are client/server applications where the client can be deployed anywhere while the data stays on the server. Once again, existing design and coding patterns such as Model View Controller (MVC) can be applied. The process of gathering user requirements differs little from what is done today; however the tools for designing the UI are more flexible and sophisticated, making it easier to match user expectations to the requirements gathered.
Adobe has also codified years of experience and research in building expressive interactive applications and content in Cairngorm, a reference framework for RIA solutions to support clients in delivering effective RIAs.
Agile development methodologies are important to delivering timely and focused RIA solutions, but their use can lead to the reinvention of functionally similar components. So while there are significant advantages to using agile methodologies, they should be used within the context of a larger scope. It is important that RIA components and solutions are developed with a view of the potential for larger connected applications and solution strategies.
The move from linear development to state development is one aspect of development that becomes more important in delivering RIAs. If a user rearranges the UI of an RIA, the various components that make up the UI are still aware of each other and their interdependencies. Therefore understanding and applying state development patterns is vital to ensure that when components are added, deleted, or modified, the RIA does not break and fail.
Because RIAs place an increased emphasis on the UI, every opportunity to get better feedback from users, especially during the design and development process, should be seized.
User-driven best practices
From years experience working with clients, Adobe has assembled a set of best practices for enterprise RIA development:
- Think about the business problem that you are trying to solve, the business services that you want to deliver, or the business outcome that you want to achieve and make sure that your RIA design and delivery process is aligned to these goals.
- Keep your first RIA in the enterprise simple. Though you have the capability to use rich and expressive graphical animation or video, you do not always have to take advantage of it and overcomplicate things. Remember your audience and do not try to do much all at once. If your users prefer to work with a spreadsheet style report rather than a 3D pie chart, give them the spreadsheet approach. Use RIA technology to get information to them faster without changing how they work unnecessarily. Focus first on solving business problems with RIA, not on making a more impressive UI just because you can.
- Ensure that the application that you choose is suitable for implementation as an RIA. As noted previously, enterprise RIAs are proving to be best for data entry and where you have higher performance requirements than a traditional HTML-based system. If you need to show thousands of items, a RIA is much better than a traditional web-based application.
- Do not undertake an RIA project without having the right technical resources in place. This might sound self-evident but it is easy to overcommit.
- To maximize the usefulness of the UI, it is important to have properly trained GUI designers or developers with GUI flair. Using design teams to help design the application will ensure that any graphical elements you do implement will work properly rather than become noise.
- It is important to get a prototype application working end to end as soon as possible. This will help you to identify any integration challenges as early as possible so that they can be resolved in parallel with other development.
- Services-based architectures will make it easier to plug in the RIAs you create and then replace them down the line.
- Blend, don’t replace. There is little to be gained by spending time re-engineering or redesigning components that work well. For example, it rarely makes sense to start building an RIA to replace existing reporting tools that generate reports. Begin by blending new components in with existing solutions, rather than tackling a big design and build phase.
- Establish a steering committee to oversee RIA development. If an enterprise is going to embrace RIA across multiple systems, an overarching body that mandates the look and feel of RIAs will ensure consistency across different development groups around the company.
The users will ultimately determine if an RIA succeeds or fails. For them, the interest is in what the RIA allows them to achieve. Ease of use and stability of the application are two key factors in user acceptance, and RIAs have inherent advantages in both of these areas.