600 likes | 718 Views
An Introduction to the Fluid Project. Jutta Treviranus , Director, Adaptive Technology Resource Centre, University of Toronto Daphne Ogle , Fluid Project Design Lead, UC Berkeley Colin Clark , Fluid Project Technical Lead, Adaptive Technology Resource Centre, University of Toronto.
E N D
An Introduction to the Fluid Project Jutta Treviranus, Director, Adaptive Technology Resource Centre, University of Toronto Daphne Ogle, Fluid Project Design Lead, UC Berkeley Colin Clark, Fluid Project Technical Lead, Adaptive Technology Resource Centre, University of Toronto
Topics We’ll Cover • Project vision and goals • The Fluid community • Improving the user experience • Technology framework • Timelines and road map • How to get involved
Vision • Advance status of UI development and design in academic community source projects • …so that they can fulfill their potential as platforms for innovation UI = user interface, user interaction, user experience, usability and accessibility
Problem • Systemic problem of poor and inconsistent UI • Frequently left to programmers • Tackled at the end • Redundantly developed • Inadequately tested and refined • UX designers not well integrated into development culture • And….
“You say tomato, I say tomato, lets call the whole thing off” • Academic communities are very diverse • We differ greatly in our preferences, needs, habits, concepts, comforts, convictions….
“Different strokes for different folks…” • Institutional preferences and branding • Conventions of academic discipline • Cultural differences • Linguistic differences • Differences related to age • Differences related to role and perspective • Different teaching approaches • Different learning approaches • Disability and environmental constraints
Differences related to academic discipline Differ with respect to: • language (e.g., the meaning of color) • values and notions of quality • tools • environment • modes of interaction and academic engagement In academia we foster and thrive on diversity.
UI most critical to any discipline that is: • Not involved in creating application • Not a discipline familiar to those creating the user interface
Accessibility • Legal commitment to equal access • No system-wide strategy, band-aid approach at greater and greater cost • Guidelines seen to constrain creativity
Three approaches to accessibility • Single compliant resource approach • Media rich plus “accessible alternative” approach • Personalization approach
Goal: Consistent User Experience • Growing number of tools • Growing number of developers • A consistent identifiable look • Intuitiveness and transparency of design
Consistent User Experience vs.Accommodating Differences • Do we need to choose? • Or can we have our cake and eat it too?
Proposal: “Flexible User Interface” • Swappable styles • Swappable UI components • Either runtime transformation for unique needs of individual • Or customization at configuration
2 Interwoven Approaches • Address systemic or process shortcomings as well as education and awareness • Address barriers related to the software, architecture and tools
Overarching Goal • To support the precarious values of usability, accessibility, internationalization/localization, quality assurance and security
Supporting Objectives To develop: • Architectural framework for a flexible UI • Living library of robust, usable, accessible UI components • Community processes that support innovative, high quality user experience design and development • Tools and processes for developing and implementing modular, sharable UI components • Mechanisms for refining components
The Context for Fluid • Poor usability & accessibility are a significant barrier for community and open source software • Now is the time to address the concerns of our communities • Our goal is to incrementally improve the overall user experience of Sakai, uPortal, Kuali Student, and Moodle
The Fluid Approach • Cross-project collaboration • Take a holistic approach by combining both technology and UX design • A two-fold path: • Social: build a community around UX • Technical: new UI development tools
Participating Projects • Sakai • Collaboration and learning environment • Teaching, research, and group collaboration • uPortal • Enterprise portal system • Aggregates personalized content • Moodle • Learning management system • Strong focus on pedagogy • Kuali Student • Upcoming, next generation student system • Viable alternative to high-cost commercial products
Fluid’s Relationship to Sakai • Fluid is a movement within the community • We’re all committed contributors to Sakai • Everyone is welcome • We bring: • New resources specifically for UX improvements • Lots of technical, usability and accessibility expertise • Cross-project community source collaboration • Fresh ideas • We’re not doing the only UX work within the community, and that’s a good thing.
Who is Involved? • Partnership among several universities and corporations • Toronto, UBC, UC Berkeley, York, Cambridge, MSU, and others • IBM, Sun, and Mozilla Foundation • Broad range of experience
Design Deliverables • Start with heuristic and usability reviews • Baseline for usability and accessibility • Know where we need to improve • Prioritize the pain points • Designer’s Toolkit: shared design resources • Personas and profiles • Scenarios • UI Design patterns • U-Camps • Iterative UI design and testing
What are we going to build? • A living library of flexible UI components that can be used across applications • Easy to wire up and customize • Components are more than widgets • A new component framework built specifically to improve usability • Semantics and specifications • Integration with open source projects
Designer’s Toolkit • UI Design Patterns • Help grow the current Sakai library • Extend to uPortal and Moodle • Component library • Iterative design and testing • Component design artifacts • Design Patterns as taxonomy / folksonomy
More About the Designer’s Toolkit • UX Inspections • Prioritize improvements • Protocol • Persona Library • Leverage the Sakai design patterns library • Design/Development Process • U-Camps
User Experience Inspections • Goals • Identify pain points • Identify “componentizable” solutions • Drive component work priority • Create shared protocol & process • Provide baseline for future evaluation • Protocol • Usability & accessibility heuristics • Cognitive walkthroughs • Organic process
UX Inspection Plan • Define protocol: we need your help! • Identify functionality “chunks” within applications • Iterative: focus on highest-used areas first • Define and share report templates • Subgroup Inspections • Sakai, Moodle, uPortal, Accessibility • Synthesize across groups • Identify issues • Common issues = common components
Inspection Subgroup Work Plan • Subgroup • 3 to 5 evaluators • Usability and accessibility focus • Define process and priorities: • Iterative • user profiles • scenarios of use for cognitive walkthroughs • Perform individual evaluations • Synthesize evaluations and prioritize • Brainstorm design solutions • Collaborate with participating communities
Components • Components are recurring interactions: • Navigation • Forms and data • Direct manipulation of objects • Workflows, wizards, and sequences
Component Design • User centered process • Based on real user research • Looking across communities and applications • Agile, iterative process • Close and constant communication with development • Closely related to design patterns
We Need Your Help! • UX Inspection • Join a subgroup • Attend the next meeting • User research of development communities • Define developer and integrator needs for components • Sakai Design Library WG • Join the group • Weekly meetings • Future - component design • Stay tuned to the mailing lists
A bit about the technology • Unique challenge: how to enable support for very diverse presentation technologies? • Based on JavaScript, DHTML, and AJAX • Thin binding layer between client and RESTful, largely stateless server • Loose coupling, works across applications • In translation: • Web 2.0 made more usable & accessible
Fluid Accessibility • Web 2.0 will be accessible • it’s just a matter of time • ARIA: Accessible Rich Internet Applications (W3C) • AccessForAll for component metadata • Ongoing toolkit accessibility support • Dojo, YUI, others? • Design specific alternatives • Fluid: Accessibility from the ground up
Flexibility & Customization • Fluid will be a highly flexible UI layer • At configuration-time: • Appearance, branding, style, page text • Locale, reading level, density • Functionality and user experience • At run-time: • Swap in accessible controls • Re-styling for higher contrast, etc. • Components built for specific disciplines or user needs
What is a Reusable Component? • On the client-side, a Fluid component consists of: • One or more HTML templates • One or more layers of CSS • JavaScript for behavioural logic • Accessibility metadata (control, presentation, etc) • And on the server-side: • A set of conventions for accessing service logic • The ability to deliver the appropriate markup, metadata, and user preferences
Component Architecture • Markup-driven components are general: • Server delivers fully-rendered HTML • JavaScript manipulates DOM based on id contract • Greater flexibility and reuse, but greater server dependency • Data-driven components are smarter but slower: • Handle their own template processing • Require multiple round-trips to the server for data • Allow for less dependency on server-side presentation framework • We’ll support both for different contexts as necessary
The Fluid Framework • Framework infrastructure • lifecycle supports, server-side communication, etc. • Components themselves • Transformation engine • Server-side binding and delivery
RESTfulness • REST: not just a buzzword. • General principle: use the Web’s natural architecture • Client statefulness, server statelessness • Meaningful URLs • Emphasize named resources over actions • Don’t invent new messaging APIs: use HTTP! • Benefits: • Back button friendly • Bookmark-ability • Light weight web services • Natural integration point with diverse presentation frameworks • Extract and generalize for reuse
Binding to Presentation Frameworks • Reality: there are a lot of different presentation frameworks in use today across applications • At least 5 in use within Sakai • Our approach: • Move appropriate logic and state from server to client • Support the best frameworks • Try to make it easy to bind to other frameworks • Start with two server-side frameworks: • RSF • Spring Portlet MVC • We’ll continue to revisit this decision over time • Feel free to help add support to your framework of choice