SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Open Source Design Pattern Library
Spreading Communities Thick: Open Source Communities of Practice

Allison Bloodworth, Senior User Interaction Designer, Educational Technology Services, University of California - Berkeley

July 3, 2008
Agenda
The context: the Fluid Project
Fluid components & UX Toolkit
What is a pattern?
Why use design patterns?
User interface design patterns & libraries
Building the Open Source Design Pattern Library &
its community
• Getting involved!
•
•
•
•
•
•
What is the Fluid Project?
• “An open, collaborative project to improve the user
experience of community source software”
• Cross-project collaboration:
– Kuali Student, Moodle, Open Collection, Sakai, uPortal

• Combine both design and technology to create a living
library of sharable user interface components & design
tools
• Addressing issues of usability, accessibility,
internationalization, security, flexibility & customization
• Open and distributed community
What are we building?
• Rich, flexible, reusable
user interface
components
• Lightweight JavaScript
development tools
• User Experience
Toolkit
• Great interaction
designs
What is a Fluid component?
•

Client-side:
–
–
–
–

•

HTML
Style sheets
JavaScript for behavioural logic
Accessibility metadata

And on the server-side:
– Binding conventions: markup with known, formal IDs
– Ability to respond to RESTful requests
– Ability to deliver the appropriate markup or data
Component composition
The Reorderer
• A set of JavaScript objects
• Used to create rich, accessible user interfaces that
allow users to directly move around and rearrange content on the page
• Features
– Supports mouse-based drag and drop as well as fully
keyboard-accessible controls
– Designed to be flexible and will handle a variety of
markup and layout type
– Clear extension points are provided to customize its
behavior for new layouts, connection strategies, and
markup binding strategies
The Lightbox
Layout Customizer
Breaking down barriers,
addressing cross-cutting needs
Sakai

uPortal

Moodle

OpenCollection

Kuali
Student

CONTENT MANAGEMENT
File Uploading
Reworked, lightweight File Picking
Tagging and Tag Clouds
Smart folders, “playlists,” contextual filtering
Favorites and Clipboard/File Basket
Infrastructure: Accessible Thick Box, Tree, Sortable Tabs
Drag and drop portlets
The Fluid approach to UX in
Community Source
• UX is a challenge for all open source projects and all
institutions
• Cross-project collaboration:
– Share scarce UX resources across projects
– Solve common challenges
– Recognize recurring user interface idioms and needs

• Fluid is looking at common problems:
– How do non-technical people get involved in OSS?
– How can we help designers and developers speak the same
language?
– How do you do user testing in a distributed environment?
UX Toolkit
• User Research Tools
– Contextual Inquiry
– Persona development

• UI Design Patterns
– Open Source Design Pattern Library
– Shared design advice and guidance on using components

• UX Walkthroughs
– Tools for assessing your user experience

• User testing techniques and guidelines
– How to test your designs and talk to users

• User profile library
– Understanding higher education users and beyond

• All the stuff you need to design great interfaces!
Some open questions…
• How can I incorporate Fluid components into my
interface in a way that truly improves the user
experience?
• How can I design usable and understandable user
interfaces and interactions?
• How can I design user interfaces and interactions
that reflect best practices?
• How can I create a user experience that will delight
my users?
• How can I help create a consistent user experience
for Sakai?
User interface design patterns
What is a pattern?
• A pattern is a proven solution to a common problem in
a specified context
• There may be many different (physical) representations
of each pattern
• “Each pattern is a three-part rule, which expresses a
relation between a certain context, a problem, and a
solution” [Christopher Alexander 1979].
Software Engineering
Patterns

Organization

People
• Pedagogical Patterns
(Manns, 1996)

• Organizational
Patterns
(Coplien, 1998,
Cockburn, 1997)
• Business
Reengineering
Patterns
(Beedle, 1997)

Process

• Human-to-Human
Product
Communication Patterns
(Cockburn, 1997)
• HCI Patterns
(Tidwell, 1998)

• Steps and Task Patterns (Ambler,
1998; Coplien, 1995)

• Software
Design Patterns
(Gamma, 1995)

• Process Improvement Patterns
(Appleton, 1997)
From: Maximizing Reusability of Pattern Languages over the Web,
Homa Javahery, www.cusec.net/archives/2002/javahery.ppt
Why use design patterns?
• Make it easy to choose the best component or design
solution for the job
• Document & share solutions that we *know* work
• Reserve innovation for situations where it’s really
necessary
• Standardize interactions across application(s) where it
makes sense
– Makes it easier to predict what will happen (a.k.a. being
“intuitive”)
– Design “best practices” for Sakai, uPortal, etc.

• Patterns hold more complex design knowledge than
guidelines because they describe context & rationale
– Patterns allow designers to make choices about designs
– Standards are more about following directions
UI Design Pattern Libraries -

Tidwell

http://www.time-tripper.com/uipatterns/
UI Design Pattern Libraries -

van Welie

http://www.welie.com/patterns/index.php
UI Design Pattern Libraries -

Yahoo!

http://developer.yahoo.com/ypatterns/
Fluid Pattern -

Drag & Drop - Layout Preview
Fluid Pattern -

Drag & Drop
Upcoming Fluid Pattern -

Page Navigation
Upcoming Fluid Pattern -

Inline Edit
Patterns from Sakai UX Initiative -

Portlets
Patterns from Sakai UX Initiative -

Lightbox Overlay
Building the OSDPL in Drupal
• Open-source, complete content management system
• Provides flexibility in presentation and repurposing of
content
• Hundreds of user-contributed modules
–
–
–
–
–
–
–
–
–
–
–

Tagging - tagadelic & community tags
Ratings - fivestar & voting api
Workflow & notifications - workflow & actions
Role-based permissions - Drupal core
User profiles - Drupal core
Versioning - Drupal core
RSS feeds - Drupal core
Customizable views - cck & views
Auto-generated navigation - taxonomy menu
Re-sizing of images - image cache
WYSIWYG editor - tinymce

• Tour of http://uidesignpatterns.org
General pattern library issues
• What is the right granularity for a pattern?
• How many organizations can/should we serve?
• What is the relationship between design patterns & a style
guide?
• How can we organize the information in the pattern library so
users can easily find relevant patterns?
– Hierarchy, search, tags

• How do we interact with/borrow from other pattern libraries?
– Use mark-up language to facilitate reuse (e.g. PLML)?
Building a pattern library
community
• How are patterns contributed, edited, and
moderated?
– Do we need a ‘staging area’ before releasing in process
patterns?

• Should patterns be general and apply to everyone,
or customized for each community?
• How can we encourage contributions and at the
same time ensure the quality of the patterns
remains high?
• How can we ensure the library grows, evolves, &
lives on?
Possible future directions for
OSDPL
• Encourage contributions!
• Limited moderation combined with mentoring of
pattern authors
• User ratings drive pattern popularity
• Personal tags, allowing for customized organization
of patterns
• Dynamic generation of pattern examples (e.g.
Sakai) based on preferences in user profiles
Get involved with design
patterns!
• Review, create, use and share design patterns http://uidesignpatterns.org (beta)
• Attend next Design Pattern working group meeting on Wed, July
16, 2pm EDT: http://uidesignpatterns.org/meeting-7-16-08
–
–
–
–
–

Review of existing Fluid & Sakai patterns
Discussion of OSDPL community practices
Discussion of OSDPL architecture
Review of new patterns
Read more about design patterns:
http://wiki.fluidproject.org/display/fluid/Design+Patterns

• Join our mailing list
– fluid-talk@ for design patterns and other general discussion
Get involved with Fluid!
• Use the Fluid UX toolkit:
http://wiki.fluidproject.org/display/fluid/UX+Toolkit
• Use & extend Fluid components in your applications:
http://wiki.fluidproject.org/display/fluid/Components
• Join our mailing lists at http://www.fluidproject.org
– fluid-work@ for community collaboration

• Come to the UX BOF at 1pm today to discuss UX in Sakai
•

My contact info:
– Allison Bloodworth, abloodworth@berkeley.edu

Mais conteĂşdo relacionado

Semelhante a Open Source Design Pattern Library, Spreading Communities Thick: Open Source Communities of Practice

Fluid Design Pattern Library
Fluid Design Pattern LibraryFluid Design Pattern Library
Fluid Design Pattern LibraryAllison Bloodworth
 
Strategies for writing customer focused web content
Strategies for writing customer focused web contentStrategies for writing customer focused web content
Strategies for writing customer focused web contentUX Firm, LLC
 
Design systems
Design systemsDesign systems
Design systemsBurton Smith
 
Interaction design: desiging user interfaces for digital products
Interaction design: desiging user interfaces for digital productsInteraction design: desiging user interfaces for digital products
Interaction design: desiging user interfaces for digital productsDavid Little
 
Clovis Six & Saskia Videler at WUD16
Clovis Six & Saskia Videler at WUD16Clovis Six & Saskia Videler at WUD16
Clovis Six & Saskia Videler at WUD16UX Antwerp Meetup
 
Atomic design
Atomic designAtomic design
Atomic designClovis Six
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basicsPreeti Mishra
 
User interface design: definitions, processes and principles
User interface design: definitions, processes and principlesUser interface design: definitions, processes and principles
User interface design: definitions, processes and principlesDavid Little
 
Web Accessibility and Design
Web Accessibility and DesignWeb Accessibility and Design
Web Accessibility and Designcolinbdclark
 
Building Design Systems - Columbus Web Group
Building Design Systems - Columbus Web GroupBuilding Design Systems - Columbus Web Group
Building Design Systems - Columbus Web GroupBurton Smith
 
Interaction design patterns
Interaction design patternsInteraction design patterns
Interaction design patternsDCU_MPIUA
 
User Interface Design: Definitions, Processes and Principles
User Interface Design: Definitions, Processes and PrinciplesUser Interface Design: Definitions, Processes and Principles
User Interface Design: Definitions, Processes and PrinciplesMoodLabs
 
Intranets school
Intranets schoolIntranets school
Intranets schoolNina McHale
 
Impact the UX of Your Website with Contextual Inquiry
Impact the UX of Your Website with Contextual InquiryImpact the UX of Your Website with Contextual Inquiry
Impact the UX of Your Website with Contextual InquiryRachel Vacek
 
Introduction to Information Architecture & Design - SVA Workshop 06/21/14
Introduction to Information Architecture & Design - SVA Workshop 06/21/14Introduction to Information Architecture & Design - SVA Workshop 06/21/14
Introduction to Information Architecture & Design - SVA Workshop 06/21/14Robert Stribley
 
20190221 Algorithmic transparency and accountability in practice
20190221 Algorithmic transparency and accountability in practice20190221 Algorithmic transparency and accountability in practice
20190221 Algorithmic transparency and accountability in practiceBrussels Legal Hackers
 
Introduction to Information Architecture & Design - 2/14/15
Introduction to Information Architecture & Design - 2/14/15Introduction to Information Architecture & Design - 2/14/15
Introduction to Information Architecture & Design - 2/14/15Robert Stribley
 
Introduction to Information Architecture & Design - SVA Workshop 03/22/14
Introduction to Information Architecture & Design - SVA Workshop 03/22/14Introduction to Information Architecture & Design - SVA Workshop 03/22/14
Introduction to Information Architecture & Design - SVA Workshop 03/22/14Robert Stribley
 
Introduction to Information Architecture & Design - 3/21/15
Introduction to Information Architecture & Design - 3/21/15Introduction to Information Architecture & Design - 3/21/15
Introduction to Information Architecture & Design - 3/21/15Robert Stribley
 

Semelhante a Open Source Design Pattern Library, Spreading Communities Thick: Open Source Communities of Practice (20)

Fluid Design Pattern Library
Fluid Design Pattern LibraryFluid Design Pattern Library
Fluid Design Pattern Library
 
Strategies for writing customer focused web content
Strategies for writing customer focused web contentStrategies for writing customer focused web content
Strategies for writing customer focused web content
 
Design systems
Design systemsDesign systems
Design systems
 
Interaction design: desiging user interfaces for digital products
Interaction design: desiging user interfaces for digital productsInteraction design: desiging user interfaces for digital products
Interaction design: desiging user interfaces for digital products
 
Clovis Six & Saskia Videler at WUD16
Clovis Six & Saskia Videler at WUD16Clovis Six & Saskia Videler at WUD16
Clovis Six & Saskia Videler at WUD16
 
Atomic design
Atomic designAtomic design
Atomic design
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basics
 
User interface design: definitions, processes and principles
User interface design: definitions, processes and principlesUser interface design: definitions, processes and principles
User interface design: definitions, processes and principles
 
Web Accessibility and Design
Web Accessibility and DesignWeb Accessibility and Design
Web Accessibility and Design
 
Building Design Systems - Columbus Web Group
Building Design Systems - Columbus Web GroupBuilding Design Systems - Columbus Web Group
Building Design Systems - Columbus Web Group
 
Interaction design patterns
Interaction design patternsInteraction design patterns
Interaction design patterns
 
User Interface Design: Definitions, Processes and Principles
User Interface Design: Definitions, Processes and PrinciplesUser Interface Design: Definitions, Processes and Principles
User Interface Design: Definitions, Processes and Principles
 
Intranets school
Intranets schoolIntranets school
Intranets school
 
Impact the UX of Your Website with Contextual Inquiry
Impact the UX of Your Website with Contextual InquiryImpact the UX of Your Website with Contextual Inquiry
Impact the UX of Your Website with Contextual Inquiry
 
Introduction to Information Architecture & Design - SVA Workshop 06/21/14
Introduction to Information Architecture & Design - SVA Workshop 06/21/14Introduction to Information Architecture & Design - SVA Workshop 06/21/14
Introduction to Information Architecture & Design - SVA Workshop 06/21/14
 
20190221 Algorithmic transparency and accountability in practice
20190221 Algorithmic transparency and accountability in practice20190221 Algorithmic transparency and accountability in practice
20190221 Algorithmic transparency and accountability in practice
 
Introduction to Information Architecture & Design - 2/14/15
Introduction to Information Architecture & Design - 2/14/15Introduction to Information Architecture & Design - 2/14/15
Introduction to Information Architecture & Design - 2/14/15
 
Introduction to Information Architecture & Design - SVA Workshop 03/22/14
Introduction to Information Architecture & Design - SVA Workshop 03/22/14Introduction to Information Architecture & Design - SVA Workshop 03/22/14
Introduction to Information Architecture & Design - SVA Workshop 03/22/14
 
Introduction to Information Architecture & Design - 3/21/15
Introduction to Information Architecture & Design - 3/21/15Introduction to Information Architecture & Design - 3/21/15
Introduction to Information Architecture & Design - 3/21/15
 
Designing for Everybody Workshop
Designing for Everybody WorkshopDesigning for Everybody Workshop
Designing for Everybody Workshop
 

Mais de Allison Bloodworth

Make Your Data Come Alive: Visual Design's Role in Creating Compelling Visual...
Make Your Data Come Alive: Visual Design's Role in Creating Compelling Visual...Make Your Data Come Alive: Visual Design's Role in Creating Compelling Visual...
Make Your Data Come Alive: Visual Design's Role in Creating Compelling Visual...Allison Bloodworth
 
Selling userneedsassessment 7-30-07_full
Selling userneedsassessment 7-30-07_fullSelling userneedsassessment 7-30-07_full
Selling userneedsassessment 7-30-07_fullAllison Bloodworth
 
Model-driven Application Design for a Campus Calendar Network
Model-driven Application Design for a Campus Calendar NetworkModel-driven Application Design for a Campus Calendar Network
Model-driven Application Design for a Campus Calendar NetworkAllison Bloodworth
 
Introduction to User-Centered Design
Introduction to User-Centered DesignIntroduction to User-Centered Design
Introduction to User-Centered DesignAllison Bloodworth
 
User-Centered Design in IT: the Low-Hanging Fruit
User-Centered Design in IT: the Low-Hanging FruitUser-Centered Design in IT: the Low-Hanging Fruit
User-Centered Design in IT: the Low-Hanging FruitAllison Bloodworth
 
Use Cases in the Fluid Project
Use Cases in the Fluid ProjectUse Cases in the Fluid Project
Use Cases in the Fluid ProjectAllison Bloodworth
 
Using Personas to Create User-centered Designs
Using Personas to Create User-centered DesignsUsing Personas to Create User-centered Designs
Using Personas to Create User-centered DesignsAllison Bloodworth
 

Mais de Allison Bloodworth (7)

Make Your Data Come Alive: Visual Design's Role in Creating Compelling Visual...
Make Your Data Come Alive: Visual Design's Role in Creating Compelling Visual...Make Your Data Come Alive: Visual Design's Role in Creating Compelling Visual...
Make Your Data Come Alive: Visual Design's Role in Creating Compelling Visual...
 
Selling userneedsassessment 7-30-07_full
Selling userneedsassessment 7-30-07_fullSelling userneedsassessment 7-30-07_full
Selling userneedsassessment 7-30-07_full
 
Model-driven Application Design for a Campus Calendar Network
Model-driven Application Design for a Campus Calendar NetworkModel-driven Application Design for a Campus Calendar Network
Model-driven Application Design for a Campus Calendar Network
 
Introduction to User-Centered Design
Introduction to User-Centered DesignIntroduction to User-Centered Design
Introduction to User-Centered Design
 
User-Centered Design in IT: the Low-Hanging Fruit
User-Centered Design in IT: the Low-Hanging FruitUser-Centered Design in IT: the Low-Hanging Fruit
User-Centered Design in IT: the Low-Hanging Fruit
 
Use Cases in the Fluid Project
Use Cases in the Fluid ProjectUse Cases in the Fluid Project
Use Cases in the Fluid Project
 
Using Personas to Create User-centered Designs
Using Personas to Create User-centered DesignsUsing Personas to Create User-centered Designs
Using Personas to Create User-centered Designs
 

Último

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Último (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Open Source Design Pattern Library, Spreading Communities Thick: Open Source Communities of Practice

  • 1. Open Source Design Pattern Library Spreading Communities Thick: Open Source Communities of Practice Allison Bloodworth, Senior User Interaction Designer, Educational Technology Services, University of California - Berkeley July 3, 2008
  • 2. Agenda The context: the Fluid Project Fluid components & UX Toolkit What is a pattern? Why use design patterns? User interface design patterns & libraries Building the Open Source Design Pattern Library & its community • Getting involved! • • • • • •
  • 3. What is the Fluid Project? • “An open, collaborative project to improve the user experience of community source software” • Cross-project collaboration: – Kuali Student, Moodle, Open Collection, Sakai, uPortal • Combine both design and technology to create a living library of sharable user interface components & design tools • Addressing issues of usability, accessibility, internationalization, security, flexibility & customization • Open and distributed community
  • 4. What are we building? • Rich, flexible, reusable user interface components • Lightweight JavaScript development tools • User Experience Toolkit • Great interaction designs
  • 5. What is a Fluid component? • Client-side: – – – – • HTML Style sheets JavaScript for behavioural logic Accessibility metadata And on the server-side: – Binding conventions: markup with known, formal IDs – Ability to respond to RESTful requests – Ability to deliver the appropriate markup or data
  • 7. The Reorderer • A set of JavaScript objects • Used to create rich, accessible user interfaces that allow users to directly move around and rearrange content on the page • Features – Supports mouse-based drag and drop as well as fully keyboard-accessible controls – Designed to be flexible and will handle a variety of markup and layout type – Clear extension points are provided to customize its behavior for new layouts, connection strategies, and markup binding strategies
  • 10. Breaking down barriers, addressing cross-cutting needs Sakai uPortal Moodle OpenCollection Kuali Student CONTENT MANAGEMENT File Uploading Reworked, lightweight File Picking Tagging and Tag Clouds Smart folders, “playlists,” contextual filtering Favorites and Clipboard/File Basket Infrastructure: Accessible Thick Box, Tree, Sortable Tabs Drag and drop portlets
  • 11. The Fluid approach to UX in Community Source • UX is a challenge for all open source projects and all institutions • Cross-project collaboration: – Share scarce UX resources across projects – Solve common challenges – Recognize recurring user interface idioms and needs • Fluid is looking at common problems: – How do non-technical people get involved in OSS? – How can we help designers and developers speak the same language? – How do you do user testing in a distributed environment?
  • 12. UX Toolkit • User Research Tools – Contextual Inquiry – Persona development • UI Design Patterns – Open Source Design Pattern Library – Shared design advice and guidance on using components • UX Walkthroughs – Tools for assessing your user experience • User testing techniques and guidelines – How to test your designs and talk to users • User profile library – Understanding higher education users and beyond • All the stuff you need to design great interfaces!
  • 13. Some open questions… • How can I incorporate Fluid components into my interface in a way that truly improves the user experience? • How can I design usable and understandable user interfaces and interactions? • How can I design user interfaces and interactions that reflect best practices? • How can I create a user experience that will delight my users? • How can I help create a consistent user experience for Sakai?
  • 15. What is a pattern? • A pattern is a proven solution to a common problem in a specified context • There may be many different (physical) representations of each pattern • “Each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution” [Christopher Alexander 1979].
  • 16. Software Engineering Patterns Organization People • Pedagogical Patterns (Manns, 1996) • Organizational Patterns (Coplien, 1998, Cockburn, 1997) • Business Reengineering Patterns (Beedle, 1997) Process • Human-to-Human Product Communication Patterns (Cockburn, 1997) • HCI Patterns (Tidwell, 1998) • Steps and Task Patterns (Ambler, 1998; Coplien, 1995) • Software Design Patterns (Gamma, 1995) • Process Improvement Patterns (Appleton, 1997) From: Maximizing Reusability of Pattern Languages over the Web, Homa Javahery, www.cusec.net/archives/2002/javahery.ppt
  • 17. Why use design patterns? • Make it easy to choose the best component or design solution for the job • Document & share solutions that we *know* work • Reserve innovation for situations where it’s really necessary • Standardize interactions across application(s) where it makes sense – Makes it easier to predict what will happen (a.k.a. being “intuitive”) – Design “best practices” for Sakai, uPortal, etc. • Patterns hold more complex design knowledge than guidelines because they describe context & rationale – Patterns allow designers to make choices about designs – Standards are more about following directions
  • 18. UI Design Pattern Libraries - Tidwell http://www.time-tripper.com/uipatterns/
  • 19. UI Design Pattern Libraries - van Welie http://www.welie.com/patterns/index.php
  • 20. UI Design Pattern Libraries - Yahoo! http://developer.yahoo.com/ypatterns/
  • 21. Fluid Pattern - Drag & Drop - Layout Preview
  • 23. Upcoming Fluid Pattern - Page Navigation
  • 24. Upcoming Fluid Pattern - Inline Edit
  • 25. Patterns from Sakai UX Initiative - Portlets
  • 26. Patterns from Sakai UX Initiative - Lightbox Overlay
  • 27. Building the OSDPL in Drupal • Open-source, complete content management system • Provides flexibility in presentation and repurposing of content • Hundreds of user-contributed modules – – – – – – – – – – – Tagging - tagadelic & community tags Ratings - fivestar & voting api Workflow & notifications - workflow & actions Role-based permissions - Drupal core User profiles - Drupal core Versioning - Drupal core RSS feeds - Drupal core Customizable views - cck & views Auto-generated navigation - taxonomy menu Re-sizing of images - image cache WYSIWYG editor - tinymce • Tour of http://uidesignpatterns.org
  • 28. General pattern library issues • What is the right granularity for a pattern? • How many organizations can/should we serve? • What is the relationship between design patterns & a style guide? • How can we organize the information in the pattern library so users can easily find relevant patterns? – Hierarchy, search, tags • How do we interact with/borrow from other pattern libraries? – Use mark-up language to facilitate reuse (e.g. PLML)?
  • 29. Building a pattern library community • How are patterns contributed, edited, and moderated? – Do we need a ‘staging area’ before releasing in process patterns? • Should patterns be general and apply to everyone, or customized for each community? • How can we encourage contributions and at the same time ensure the quality of the patterns remains high? • How can we ensure the library grows, evolves, & lives on?
  • 30. Possible future directions for OSDPL • Encourage contributions! • Limited moderation combined with mentoring of pattern authors • User ratings drive pattern popularity • Personal tags, allowing for customized organization of patterns • Dynamic generation of pattern examples (e.g. Sakai) based on preferences in user profiles
  • 31. Get involved with design patterns! • Review, create, use and share design patterns http://uidesignpatterns.org (beta) • Attend next Design Pattern working group meeting on Wed, July 16, 2pm EDT: http://uidesignpatterns.org/meeting-7-16-08 – – – – – Review of existing Fluid & Sakai patterns Discussion of OSDPL community practices Discussion of OSDPL architecture Review of new patterns Read more about design patterns: http://wiki.fluidproject.org/display/fluid/Design+Patterns • Join our mailing list – fluid-talk@ for design patterns and other general discussion
  • 32. Get involved with Fluid! • Use the Fluid UX toolkit: http://wiki.fluidproject.org/display/fluid/UX+Toolkit • Use & extend Fluid components in your applications: http://wiki.fluidproject.org/display/fluid/Components • Join our mailing lists at http://www.fluidproject.org – fluid-work@ for community collaboration • Come to the UX BOF at 1pm today to discuss UX in Sakai • My contact info: – Allison Bloodworth, abloodworth@berkeley.edu