Skip to content

Instantly share code, notes, and snippets.

@cfsanderson
Last active September 4, 2019 16:03
Show Gist options
  • Save cfsanderson/b01ae514224422502002566c3d38a5f1 to your computer and use it in GitHub Desktop.
Save cfsanderson/b01ae514224422502002566c3d38a5f1 to your computer and use it in GitHub Desktop.
Design Notes

Design Notes

Table of contents


Design Thinking

Design Thinking 101

Design Thinking tackles complex problems by:

  1. Empathize: Understanding the human needs involved
  2. Define: Re-framing and defining the problem in human-centric ways
  3. Ideation: Creating many ideas in ideation sessions or independently and then reconvening (brainstorming sucks)
  4. Prototyping: Adopting a hands-on approach in prototyping
  5. Testing: Developing a prototype/solution to the problem
  6. Implementing: Do it

Design Thinking 102

Part 1: Ideology

Not about design. Actually about strategic options and system impact.
This is where "D" (design) school meets "B" (business) school.

Part 2: 6 Step Process

  1. Empathize
    • empathy map
    • involve others in research
  2. Define
    • define and align on problem
      • dot voting
      • diverge and converge
      • prioritization matrices
  3. Ideation
    • workshops
    • varying expertise
    • end users
  4. Prototyping
  5. Testing
  6. Implement

Think dynamically and document along the way.

(TOC)


10 Usability Heuristics

A heuristic is any approach to problem solving (...) that employs a practical method, not guaranteed to be optimal (..) or rational, but instead sufficient for reaching an immediate goal.

Jacob Nielson and Don Norman created the comprehensive list of usability heuristics

  • 1) Visibility of system status
    The system should always keep users informed about what is going on, through appropriate feedback within reasonable time
    • Gmail loading envelope
    • Medium like button
  • 2) Match between system and the real world
    The system should speak the users' language, with words, phrases and concepts familiar to the user, rather than system-oriented terms.
    Follow real-world conventions, making information appear in a natural and logical order.
    • Gov.UK
  • 3) User control and freedom
    • Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue.
      • Support undo and redo.
      • Always be able to go back and forth and user can stay in control.
        (e.g. Google Drive asks you if you want to "undo" when trashing something.)
  • 4) Consistency and standards
    • Users should not have to wonder whether different words, situations, or actions mean the same thing.
    • Follow platform conventions.
      • Salesforce acquired several softwares and had build a system that could make them all coherent.
  • 5) Error prevention
    • Even better than good error messages is a careful design which prevents a problem from occurring in the first place.
    • Either eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action.
      • e.g. Google Flights doesn't let you select an earlier date for return flight than the departure flight. It will auto correct and move the departure date for you.
      • e.g. Airbnb search will still give you relevant searches even if you input a typo.
  • 6) Recognition rather than recall
  • 7) Flexibility and efficiency of use
  • 8) Aesthetic and minimalist design
  • 9) Help users recognize, diagnose, and recover from errors
  • 10) Help and documentation

(TOC)


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment