Use multi-disciplinary teams to design enterprise RIAs and SaaS
Posted by Paul Giurata
I've written a great deal about the intricacies of designing the user experience for an enterprise RIA or SaaS. These applications typically need to handle very large data sets, scale to service thousands of users, and address complex business logic that encompasses many functional elements and scores to hundreds of screens.
While many organizations attempt to develop their SaaS or RIA using their internal IT department, perhaps assisted by a web design or Flash creative firm, the end result will "feel" like it was built by an IT department. It may be functional, may even be visually pleasing, but it will not identify high value tasks, streamline business processes, increase user productivity, build the brand or drive adoption & use. To achieve this level of business value you need a UI engineering team of experts, each with a different focus, distinct skills and tight accountability.
Multi-disciplinary teams
Based on our experience designing over 270 pieces of software, the most successful projects follow a well-formulated process using a small, highly experienced, multi-disciplinary team comprised of an experience architect, experience designer and experience developer. This collaborative team then works with an organization's IT department to smoothly integrate the design with existing infrastructures and back-end systems.
Each of these primary team members needs to be facile in several different domains and take on different roles at different points in the project timeline. Below are brief explanations of some of these roles.
User Experience Architect
- Functional requirements definition - work with the product's stakeholder to define an initial set of key functionalities based on business drivers and value proposition
- User studies & ethnography - observe the actual users and usage environments in order to refine functional requirements and document the actual user scenarios that will drive the User experience design
- Personas - create personas from the information collected during ethnographic studies. These represent typical users and help the design team keep a clear imagine for whom they are designing
- User validation - involve real users throughout the design process to enable testing the coherence of early mockups and ensure potential usability issues are identified early on
- Business process design - look for ways to organize complex business processes into simple logical structures that can be easily communicated
- UI architecture - design consistent behaviors that apply to the User Interface throughout the application. This enable the user to quickly understand, use and predict how the application will behave
- Conceptual models - define conceptual models that help users to naturally comprehend what they are trying to accomplish with the software, the kind of data they are manipulating, how the data is organized and their goals for interaction
User Experience Designer
- Information design - synthesize user requirements into interaction use cases that define a product's usage from a user's perspective
- User interface design - begin with fast, low-fidelity prototypes and iteratively develop into interactive, high-fidelity prototypes, incorporating feedback from user validations throughout to identify how "intuitive" the application is and the value it provides from extended use
- Interaction design - optimize and test navigation, control elements and messaging for user comprehension and efficient and effective use
- Branding and visual design - define the colors, graphics, fonts, motion, polish and fluidity that create the brand experience, always testing with users
- Documentation - provide screen functionality specifications and visual design style guide
User Experience Developer
- Code clickable models - provide a full clickable model using dynamic data of exactly what that software will be like when it is released
- Presentation layer architecture - map out and validate proposed UI architecture so it is consistent with technical architecture, before writing any code
- Client side technologies - select and implement the UI using the optimal RIA for the users and IT infrastructure (e.g. AJAX, Flex, AIR, Silverlight, Java). Re-factor UI designs into a customized library of UI components, data, and actions
- Server-side technologies - translate what is going on in the back-end systems to communicate with the front-end user UI, requiring fluency in multiple languages and Web services
- Data and business logic implementation - rapidly iterate designs and systematically incorporate feedback to expose and validate that all data elements and UI components are matched to the database schema
Designing user experience for enterprise RIAs and SaaS is complex - no doubt about it. But compromises to the user experience will have a fundamental negative impact on the success of any application, so it is not something you can ignore or marginalize. To maximize business value, you should look for a multi-disciplinary team with diverse skills and tactical experience to design the application and augment the technical development work of your internal IT group.