User experience principles

  • Privilege a user’s mental model over the system architecture
    Design to match the user’s mental model, especially for complex or highly technical tasks (such as adjusting settings). Make the system as simple to understand by making it conform to how they think about it.
  • Save user work, even if it’s provisional
    It is incumbent that users trust our tools. Any work they perform must be considered valuable and worth saving. Don’t lose their work if they navigate away, save it and make it easy to pick up again.
  • Capture and conserve energy
    When the user takes an action or enters data, save, reuse and extend what they give to the system. Leverage it to the fullest extent to make downstream activities smarter and faster. E.g. once a user performs an action on an individual item and it could apply to others provide a batch control to repeat the action for the user.
  • Don’t block the user because it’s easier for the system
    Let the user navigate and act freely in the system. Make the system do the work of saving or creating drafts, adding names, etc… Create ways for the user to pick up work after it’s been saved for them.
  • Always give users context for the details
    Make sure that the details have enough context to support strong user understanding of what they are looking at. i.e. Long content in the list should scroll under the header. If other content exists below the list, once the list reaches the end the page should continue the scrolling.
  • Make it easier to do the “right” thing instead of “harder” to do the wrong thing
    When shaping user behavior focus on making it easy and inviting to do the desired behavior instead of designing it hard to do the “undesired behavior”. (e.g. make it helpful and easy to enter structured date, not hard to enter free text).
  • Allow users to access help at any point in the experience
    We build complex products. It’s important that our users can easily help themselves learn or solve their own problems. Help should never be more than a click away.
  • Enable users to give page level feedback
    Provide a button for launching a page level GetSatisfaction form where users can give feedback.
  • Allow users to adjust settings for the functionality they are using quickly and easily
    Don’t make users search for ways to customize their interface. For carbon this means putting all options to customize or adjust settings in a central location with groupings that make sense to the user’s mental model.
  • Guide users when they are accessing new or redesigned features
    Employ WalkMe or similar guiding tools to help users become familiar with and successful with new features.

System design principles

  • Limit the number of design patterns in use
    Reuse existing design patterns and design solutions unless the problem calls for a new approach. It’s easier for developers to reuse code and it’s easier for users to learn and embrace new functionality.
  • Avoid local optimum solutions
    In many cases, local optima deliver sub-optimal solutions to the global problem. Focus on optimizing for a globally coherent and consistent system; this will make it easier for users to learn and develop expertise across the entire system.
  • Design for perpetually intermediate users
    Provide support for beginning users and all the needs of experts, but optimize the design for the most representative users, the perpetual intermediates. Those that have learned the basics, that are basically comfortable with the framework, but not expert enough to rely on lots of shortcuts or power tools.
  • Plan for graceful degradation of ‘training wheels’
    Anticipate that users will get better with experience and will need less training and support as they go. Provide ways for early hand-holding to phase out or be dismissed as the user gains confidence.
  • Show the right options at the right time
    Limit the control options to a contextually relevant set. Don’t show options that aren’t supportive of the actions the user is performing in the moment.
  • Limit interruptions
    Let the user accomplish their work with as few interruptions to the key workflow as possible. Provide helpful notifications that don’t block their actions when they need guidance or information.
  • Maintain feature/approach parity across devices/platforms
    To the extent that it’s possible to provide a good experience across devices with the same pattern do so. Break this when consistency would mean a severely compromised experience for a specific device. If you break the rule, break the rule consistently.
  • Support multi-modal interaction
    Designs are optimized for touch, mouse, and physical keyboard. Consider design and development implications for virtual (touchscreen) keyboard, voice and accessibility.
  • Design for a range of device sizes
    The product works on a phone, a tablet and a laptop/desk-top device. Design and develop responsive versions for each size device. Designs should include sample screens for multiple devices or point to existing responsive patterns to guide development and testing.
  • Limit the use of modals to actions which are context independent
    Sending a message or creating a task or reminder requires little context, and can be performed in a modal. Reviewing a Facesheet or editing a SOAP note requires patient context, place these into the workflow instead of outside of it.
  • Eliminate noise in data
    Prevent user errors with smart, helpful validation before they submit data. Helpfully check for duplication and provide simple ways avoid it.

Back to Redesigning an EHR