These are the [[Design principles]] I helped create at [[UserVoice]]. They were documented as part of the [[UserVoice Design System]]. --- ## 1. Familiarity UserVoice feels familiar to users and matches their mental model and experience with other platforms and interfaces. - Make a good first impression, use well understood patterns or provide onboarding cues and affordances to aide our users in learning any new patterns we establish. ^A2F9AA70-DBBB-40C3-8084-AE1DAC3F6ECD - Apply changes that are considerate of the user’s mental model (and the mental model we project) - Ensure adopted patterns apply to our scale, context, and use cases (just because a pattern is present in numerous B2C apps does not necessarily mean it is well-suited for our enterprise application). - Use natural spoken language that our customers are familiar with. Research the terminology our users speak before making important labeling decisions. ## 2. Clarity Users understand where they are, what they can do, and what has happened. - Provide signposts and cues to help the user understand where their current context lies within the overall application. - Our work speaks the same emotional language. - Provide feedback - Waiting times - If users have to wait for content to load, show them a loader indicating that something is happening. If it takes longer, try something entertaining to keep the user engaged. - Errors - Provide clear and specific information about what and where something went wrong and what the user can do about it. - Completed actions - Provide immediate and clear feedback of successful actions. - Make actions reversible - Make impactful actions reversible. When this is not possible, ensure the user is made aware of the impact and the lack of reversibility beforehand. ## 3. Efficiency Stay out of people’s way and help them get their job done as efficiently as possible. - Support pro users and beginners - Ensure onboarding does not disrupt experienced users (or at least allow experienced users to disable them) - Limit distractions - Help the user complete their main task in the most efficient way possible and prevent them from accidentally losing the result of their work - Simplify routine jobs ## 4. Consistency and Structure The look, feel, and behavior of our platform is consistent with itself. - Value consistency over bespoke perfection. Re-using an existing pattern is easier on us and our users compared to creating a custom solution for each context/problem. - Select design patterns based on what they’re best suited for, knowing what their pros and cons are. - Use constraints appropriately #### Note: Our fourth design principle, *Consistency and Structure,* became a major point of contention during early design critiques. Doing or using something once does not make it a pattern, but our conversations often veered towards making designs consistent with other things we’ve designed rather than, as [[Jared Spool]] posed, “Will the user’s current knowledge help them understand how to use what I’m designing?” [^Spool] [^Spool]: [*Consistency in Design is the Wrong Approach*](https://articles.uie.com/consistency-in-design-is-the-wrong-approach/) by [[Jared Spool]] Next time I’d push for removing *consistency* from the design principles and focus more on *familiarity*, with an emphasis on the user’s current knowledge ([[Focus on the user’s current knowledge]]), or “sum of all their previous experiences with relevant products and designs.”