UX Gate: Principles

Events happening in the community are now at Drupal community events on www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

After long discussions in http://groups.drupal.org/node/158764 and numerous meetings about the UX gate we concluded that we want the UX gate to have a "principles" requirement.

We feel design principles are better at capturing the complexity of the design decisions that people need to make. Guidelines such as "Help text is succinct and helpful" are very specific and not applicable when solving other kinds of design problems.

The current principles:

Description When is this needed? Details Resources
Simple on the surface, powerful underneath. Required for all patches that add or change UI behavior Our products appear quite simple on the surface but include powerful features that are easily accessible to those users who want them.

Goal

Our aim is to have around 4-5 design principles that are universal to a lot of different contexts but also very understandable so they are easily transferable in discussions. Knowing that these design principles can be more subjective, it is not so much about exact terms of meeting a principle requirement as it is about "setting-the-mindset" for great design to happen.

There are many principles we could use, such as "Optimize for intermediate users", "Create smart defaults", "Create (visual) hierarchy", "Keep the context close at hand" or for example the ones Acquia use in their design process "Simple on the surface, powerful underneath" and "Beauty should be effortless, ugliness should require work" and many more, for example at http://www.ixd101.com/ .

So what principles do you think we should have?

Comments

Two suggestions that

yoroy's picture

Two suggestions that immediately come to mind.

Simple on the surface, powerful underneath - Great one and very much aligned with what Drupal is/wants to be.

Group related functionality – Or something similar that gets us away from things like having to set the site name [here] and setting the logo (click, click, click) [there]

Have to think some more about others that would be good to apply.

My proposals

Noyz's picture

Be worthy of people's trust
Good design can go a long way to earn the trust of the people who our products. Establishing trust starts with the basics – making sure the interface is efficient, professional and stable. Actions are easily reversed, ads are clearly identified, terminology is consistent, and users are never unhappily surprised.

Simple on the surface, powerful underneath
Our products appear quite simple on the surface but include powerful features that are easily accessible to those users who want them. Our intent is to invite beginners with a great initial experience while also attracting power users whose excitement and expertise will draw others to the product.

Pave the cowpaths
Make decisions based on our observations of actual usage. Where paths are already being formed by behavior, formalize them.

Don't make me think
Keep our products consistent. Avoid introducing new interaction patterns when an existing one will perform the same task except when usability is compromised. Prefer self-evident UI over reading documentation. Optimize for scanning over reading. Realize users don't don't make optimal choices, they make satisfactory ones.

Hi I like the idea of

lukus's picture

Hi

I like the idea of providing UX principles. Thinking about the task of coming up with a set of principles leads me to the following questions:

Should the principles be actionable or just provide a general philosophy?

Is there ever likely to be a case where a project is questioned for not following the principles?

Not "just", but yes, we're

yoroy's picture

Not "just", but yes, we're looking for a small set of general design principles that helps set the mind for great design to happen. These principles together will be 1 item in a list of 4 or 5 checks that together make up the usability gate for core changes that affect the ui.

My first thoughts: Mashup

dcmistry's picture

My pick is more of a mashup from previous conversations (and responses above). My top 3 would be:

  1. Clear and succinct help text
  2. Clear visual hierarchy: design for the 80% use case
  3. Don't make me think

Dharmesh Mistry
UX Researcher | Acquia,Inc.

V1rtual's picture

And now .... I'm blocked. But I need to re-send this badly enough to create new account. :(

That's plausible with happy tears :)

Ideas from ixd101.com:
1.) If they are just plain text without sketches, I've little ideas how to realize them (need time to understand them).
2.) I understand 80% from sketch in each point being taken, with joy.

Here come the idea :
1.) Simple on the surface, powerful underneath applied to UX documentation itself.
2.) The Information Hierarchy applied to UX documentation itself.

But wait, this look like off-topic. What it is supposed to do with UX Gates / principles?
Right, I don't have idea about that now because they're still a going on process of smart people. But it is relative to UX Gates like this: Bad documentation = More work to UX Gates and developers. Then make time to write good documentation, be sustainable and grow is good investment. And many UX aspects are generic that can get head started without holding back from coding.

Ok, back to topic. Here is action to implement these 2 principles to documentation hierachy :
1.) Simple on the surface -> those "text" on ixd101.com -> UX Gate descriptions, UX principles
2.) powerful underneath -> those "sketches" on ixd101.com -> Formal UX Documentation No way!
2.) Powerful underneath -> those "sketches" on ixd101.com -> Good UX library
3.1) Don't make me think and this one make me laugh (More surface, gather sample chapters, to developer and save their time? ... other parts are paid but better than nothing.)
3.2) Formal UX Documentations = Learn to become UX Jedi
4.) Take course = Yoda insight Beyond the scope!

How to implement 1.) UX Gate descriptions, UX principles :
1.) Seem like smart people on the work here :)

How to implement 2.) UX library :
1.1) Break down UX principles -> UX Libraries with some orientation to mudding through 80%. For example: Introduce UX/UI conventions -> Essential UI video series -> Examples to steal -> Do and don't -> Step-by-step -> Use cases-> Fun testing results -> FAQ.
1.2) UX Magazine for download on Drupal front page, curated and hand-picked 8 interesting topic in libraries. 1 click conversion using 'print to PDF' ,dump togather, Done. ( The idea is , if we can make resources, re-using the libraries content and build more distribute channel. Think 20% of Drupal developer, site builder subscribes to this newsletter/download. That 1 hours per ? work could lessen 1,000 hrs per ? and fasten Drupal development)
2.) Start each writing with short in less than 200 words, essential and informal style, no blabbing. Ordered list is hepful. Be formal only when can do without make it harder to get, or necessary like time-independent subjects. (Think explain views module in 1 minute talk)
3.) Text documentation should have media attached, no matter how badly it look to get started. Use easy to understand, painless to created formats like Handsketch / Screen capture / Use case video or whatever is fun to do, with some captions/notes. A series of medias may help lessen text and easier to understand.
4.) Enhanced attached sketches, medias. Developers opted for design request and should not be worry about look of things (look fun for designer, I feel joined this aspect)
5.) Can be added: short 'Excerpt' or 'Quote' extract from page, for people to quickly understand before go though the pages in 3 seconds. Or even rewrite. (look fun for editors)
6.) Can be added: Drupal function/module that do this (look fun for architect. The more Drupal consistant, the better)
7.) Can be added: Related links, merged and link them togather in meaningful way (look fun for UX people).
8.) Make it quite fun process, and let it grow (Switch mindset to how those million dollar blog books grow from one man sub-par blog, it's not how academic book is written. But in more controlled way to advantage from our specialists).

How to implement 3.1) Don't make me think :
1.) Exposed picture with link from UX documentation front page -> summary of sample chapters -> Book store (affiliate to Drupal if possible, no link if not possible)
2.) Read them and 'rewrite' them to text or video documentations. (I means... learning and inspired with finger cross)

How to implement 3.2) Formal UX Documentations :
1.) Give related links, to the point/action, in each UX Documentation pages as needed. (easy subject <3 links/ normal subject <5 links / sophisticated subject <8 links)
2.) Some-what 'Categorized' resources page, for those happy to be Jedi apprentices. Most developer should not forced to go thought this.

Why UX initiative will bridge Drupal to the world?
1.) Drupal developers are too smart. That's real strange problem.
2.) Guide Drupal developers how to lessen their smartness and able to switch their mindset back and forth to understand those normal 98% people.
3.) Drupal become in sync with the rest of humanity, get adopted by all and rule the world.

PS: Since I have no idea how Drupal core developer process look like, this blueprint look like guide for module developer and site builder (intended, so you know I just really know about this). Many number just come from Krug's <8 choices suggestion that make sense to applied. My note grow too fast, better stop now. Need someone to further re-think, re-do and rewrite.


Please steal this!

It is hard for me to see what

yoroy's picture

It is hard for me to see what you are suggesting here. We are looking for suggestions which principles would be good to have. It seems you are trying to apply principles to design process. That is not the topic for this discussion though. Could you give a short explanation of your main idea? Thanks!

Here's a nice, 6 minute

yoroy's picture

Here's a nice, 6 minute explanation of the classic 10 heuristics for good interaction design: http://www.youtube.com/watch?v=hWc0Fd2AS3s
The interesting bit is that some of these are at odds with eachother. Simplicity and error prevention vs. user control and shortcuts for advanced use.

Meaning, design is about trade-offs.

The three principles we want to choose would help us make the Drupal specific design decisions.

Two Key points: Clear Language and Clear Roles

user advocate's picture

Yoroy, taking a cue from the Nielsen video that you posted about I would identify these two points as being high priorities:

Nielsen point 2: “Communicate clearly with the user”
I find it vitally important to recognize that various groups of users do have distinct ways of speaking (idioms) and that, ideally, an interface would use the most accurate terminology and phrases possible. This can be tackled on many levels but I think the first priority for Drupal as a CMS would be to distinguish between developers and content managers. I’m currently investigating UX issues in Panels and finding that language used is one of the bigger blockages for non-technical users. More of my thoughts on idioms here: http://www.tuag.ca/articles/core/section1/user-narratives-intro

Nielsen point 8: “Aesthetic and minimalist design”
This is a really important point that is a factor with the trade-offs you mentioned @yoroy and achieving a "Don't Make Me Think" level of usability.

Simplicity and flexibility (user control) do tend to be at opposite ends of the design spectrum. Interfaces need to be designed for targeted user Roles – and by ‘Roles’ I mean defined, logical sets of tasks that a specific class of user would need to carry out. (Unfortunately we use the term ‘roles’ in a different way in Drupal – i.e. as permissions sets, which I consider to be not precise enough for UX design needs).

A problem that often arises with UX design is lack of precision around task sets which then leads to superfluous elements on the screen and added user confusion. The key is to ask “Does this element serve the target user?” and if not it is removed from their version of the interface.

So I believe 'simple' can only be defined in terms of targeted user Roles. (An interesting paper on 'Users, Roles and Personas' is here: http://www.foruse.com/articles/rolespersonas.pdf)

Having said that, I’m not sure how specifically these principles could be acted upon although I do have some notions about specific problems that need to be resolved to move in that direction. Happy to say more if anyone is interested.

Michael Keara
User Interface Systems Architect, Myplanet Digital

Michael Keara
User Interface Systems Architect,
The User Advocate Group

Thanks for chiming in

yoroy's picture

Thanks for chiming in Michael. You're right that inconsistent and unfamiliar language in the ui is a big usability issue, it shows up as one of the major stumbling blocks in all core usability tests as well. I did a lot of string rewrites for D7 but there's obviously even more labels, descriptions and page help texts that still need work. Let me know if you want to help get an actionable plan for this off the ground (via my contact form or drop by in IRC in #drupal-usability)

Your Drupalcon sesson proposal looks exciting too! Just to be sure you know about it let me link to Core Context UX: Page & Component library here as well.

Thanks for the link

user advocate's picture

Thanks for the link Roy. Looking forward to checking that discussion out.

Michael Keara
User Interface Systems Architect,
The User Advocate Group

Discussed the design principles in the bi-weekly meeting

dcmistry's picture

We discussed principles and concluded that we really liked the direction of :

Everyone agreed to have this as the design principle
1. Simple on the surface, powerful underneath
Description: needs to be polished
• Prioritize your feature set. Drastically. Put first things first.If you need help prioritizing your features, the UX team can offer suggestions.
• Don't shove things behind an 'Advanced settings' tab though
• Take it from small steps (understanding the concept), to bigger steps (applying it), to that one large step where you discover the limitless possibilites

Other potential design principles:
We went over a number of other principles, we did not agree on them fully yet - some of them overlap with other gate requirements and others might lack actionable points. These will need further discussion:

• Connect the dots – about flow, way finding, knowing where you are and where to go
• Pave the cow paths – follow established paths and patterns
• Aim towards universal design
• Provide clear and succinct description/ help text. Avoid Drupal jargons.

Actionable principles
Bojhan raised a concern whether we should pursue focusing on making each principle fully actionable. Due to the complexity of a principle trying to cover much ground, this might be a though job to do.

What we need to do next?
- Discuss how actionable these principles should be, and how we can make them actionable.
- Agree on some more principles

Other ideas for principles:
- High level concepts
- Simplicity
- Consistency
- User centered
- Actionable / HowTos / Examples
- Glossary for developers
- Simple English <= use the simplest, most basic words.

Dharmesh Mistry
UX Researcher | Acquia,Inc.

I must admit that I didn't

yoroy's picture

I must admit that I didn't think of 'Connect the dots' before we were as good as done or I would have pushed for agreement on that one too :) I really like it for Drupal, that oh-so modular and extensible soup of modules people have to learn to navigate. It applies to a critical task in the core queue like New users universally did NOT understand that you can extend Drupal and smaller issues like adding a link to content types page on create content page. Or Merge "List links" page into "Edit menu" page

And paraphrasing Bojhan, it applies also to the engagement life-cycle (learning curve), from helping people start out, on to understanding basic concepts all to that last click that is the Grand Light of Endless Drupal Possibilities.

User roles

matthewv789's picture

I have to agree that targeting user roles is a key insight. I see the typical usability problems of Drupal as stemming from two things:

  1. Bottom-up design for self-use rather than user-needs driven design. That is, in typical unix fashion, Drupal developers tend to create tools for their own use or solutions to their own problems. Then they release them to everyone else to learn and struggle with. It's kind of a miracle if there's any documentation. Often a user interface is applied, but usually after the feature is coded, and it's just "provide access to this setting somewhere", not designed particularly. It's almost an afterthought - slick enough looking since it uses default Drupal UI widgets, but not necessarily discoverable, intuitive, etc. - something like Linux on the desktop. This is the inverse of what really should happen for good usability: a user need or pain point is identified, a good solution is designed (presumably after brainstorming, testing and refining various options), this is turned into a spec, then delivered to a developer to implement, then what they implemented is tested to ensure it meets the needs of users.

    Solution: look at user needs, and focus development requests on addressing "pain points" for users. Often, though, the kind of complaints that result are unwelcome in issue queues (they may be impolite, or just uninformed, and at any rate are too far removed from the mindset of many maintainers). One way to facilitate this might be a team that exists to collect user feedback (including rants and raves on both core and contrib), then files thoughtful issues with the appropriate maintainers.

  2. No clear audience. By trying to be all things to all people, Drupal is in danger of being mediocre at everything. In order to succeed at step #1, clear audiences need to be identified. I don't, on the other hand, think that Drupal can succeed with just a single audience. It's too big, too layered, too multi-faceted.

Personally, I tend to divide Drupal into three layers corresponding to three audiences:

  1. Code/API/framework layer, corresponding to core and module developers and fairly hardcore coders building highly customized sites mainly through code, custom modules, hooks, etc.

    For this layer, there really should be a focus on the lowest-level API functionality that provides a foundation for all the rest. This should focus on code, not on UI. The core API should be stripped of most anything that can easily be built on top of it - it should just be the fundamental building blocks. It should focus on richness, flexibiltiy, and elegance of code and API interfaces, performance, stability, and security. Increasingly, components in this layer may be provided by components from other libraries (symphony2) so Drupal core maintainers don't have to write/maintain everything directly any more.

    Since Drupal is very developer-driven, I tend to think this layer will "take care of itself". Those writing the code are their own audience here, so we probably don't need much external direction here.

  2. Site-builder layer. This does include some API-level code that might be beyond what's in core, but mostly centers around using the UI to build at least moderately complex sites. These types of users are typically fairly experienced web developers. They may or may not be expert PHP programmers, but the key part is that they 'get' the notion of building a site from modular components to provide additional functionality, are comfortable customizing many settings, and understand setting up custom content types then using various means to display portions of that content in various places (Views, Panels, etc.) - one of the strengths of Drupal being that it enables a great deal of this type of thing without needing to write any code.

    For this layer, the focus should be on including nearly everything someone would need to build a highly-customized site without much, if any, coding. Views, for instance, should be a part of this, along with something like Display Suite for layout (which I prefer to Panels, which I consider to be too big, too confusing, etc.) This layer should generally NOT focus on "pre-built solutions" like a complete blog or forum.

  3. Installation profiles and "complete solution" modules, corresponding to end-user, small home business, and beginner developers. These are the kind of people who want to "install and run". They don't understand the notion of modules, plug-ins, extensions, etc., and the idea of defining content types, let alone Views, customized templates, Panels, etc. would be way beyond them (at least at first) - not to mention delving into php code. They also don't want to spend all day messing with configuration settings. These people typically want a small, relatively simple site in a defined form: a blog (think WordPress or Tumblr), a forum, an image gallery, a small brochure site, a simple online store (though the latter always introduces the complication of accepting payments).

    The point here is to figure out what the most common needs are, figure out what the most common expectation is for what meets those needs (ie, WordPress as the prototypical "blog", though look at Tumblr too), and figure out how to package that so that it is the easiest-possible install requiring the minimum of configuration to "just work" in the typically expected way, and the necessary configuration options are front-and center with most everything else fairly hidden.

    Here, of course, the focus should be on putting together really-polished installation profiles. Having the option to combine more than one option would be desirable too: a 5-page brochure site with an attached blog, or a blog plus a forum, or forum plus user blogs.

I really think everything is different about these audiences: the approach to "how to customize the system" (code vs fairly intricate UI giving a great deal of control vs ultra-simple UI and "don't customize"), documentation (API references vs how-tos and tutorials vs "virtually none - it's so simple you shouldn't need any"), etc.

I am not sure how best to divvy up responsibilities between these three areas, or to ensure that all "deliver" on time for a new version launch (ie, D8 core/API/framework level is ready, but site-building is 6 months behind and installation profiles are a year behind that. Or would that really be a bad thing?)

But at any rate, I'd like to see Drupal focus on several "audiences", then focus efforts on making Drupal more usable for each audience, perhaps by segregating it into conceptual layers that target each of those audiences.

Usability

Group organizers

Group categories

UX topics

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: