UX Basics
User experience design is the practice of creating products that provide meaningful, relevant, and enjoyable experiences. This guide covers the foundational concepts that inform all UX work.
Last updated: December 2025
What UX design actually is
At its core, UX design is about understanding people and designing products that help them accomplish their goals effectively. It's not about making things pretty (though aesthetics matter) or following trends (though being current helps). It's about understanding the relationship between people and the things they use.
The field draws from psychology, human factors, design, and technology. For a comprehensive overview of the field's history and scope, see the Wikipedia article on user experience design.
Core concept: User goals
Everything in UX starts with understanding what people are trying to accomplish. Users don't interact with your product for its own sake - they're trying to do something.
Levels of goals
Goals exist at different levels:
Life goals: Broad aspirations ("be successful," "provide for my family")
End goals: What they want to achieve in a session ("book a flight," "find a recipe")
Experience goals: How they want to feel ("not frustrated," "in control," "confident")
Good UX addresses all three levels, but end goals are where most design work happens. If users can't accomplish their end goals, experience and life goals become irrelevant to that product.
Identifying user goals
Ask:
- What is this person trying to accomplish right now?
- What would success look like to them?
- What will they do after they succeed?
Watch:
- What do people actually do (vs. what they say they do)?
- Where do they get stuck or confused?
- What workarounds have they developed?
Pick an app you use regularly. For your last three uses, write down what your goal was before you opened it and whether you accomplished it. Notice the gap between the product's features and your actual needs.
Core concept: Constraints
Every design exists within constraints. Understanding and working with constraints is essential to practical UX work.
Types of constraints
User constraints: Cognitive limits (attention, memory), physical abilities, prior knowledge, context of use
Business constraints: Budget, timeline, strategic priorities, technical debt
Technical constraints: Platform capabilities, integration requirements, performance needs
Legal/regulatory constraints: Accessibility requirements, privacy laws, industry regulations
Working with constraints
Constraints aren't obstacles - they're design parameters. The best solutions often emerge from tight constraints because they force creative problem-solving.
When constraints seem impossible:
- Question assumptions: Is this actually a constraint, or an assumption someone made?
- Reframe the problem: Can you solve a different problem that achieves the same goal?
- Negotiate: Can some constraints be loosened if the tradeoff is worthwhile?
- Sequence: Can you address constraints in phases?
Core concept: Feedback loops
Good interfaces communicate with users. They answer questions like:
- What can I do here?
- What did I just do?
- What's happening now?
- What will happen if I do this?
Types of feedback
Immediate feedback: Hover states, button depression, input field focus
Progress feedback: Loading indicators, progress bars, step indicators
Outcome feedback: Success messages, error states, confirmation
Ambient feedback: Subtle cues about system state (notification badges, status indicators)
Common feedback failures
- No feedback: User does something and nothing visible happens
- Delayed feedback: System responds too slowly, so users repeat actions
- Wrong feedback: Feedback doesn't match what actually happened
- Overwhelming feedback: Too much feedback obscures what matters
Core concept: The iterative process
Good design emerges through iteration, not inspiration. The basic cycle:
- Understand: Learn about users, context, and constraints
- Explore: Generate multiple possible solutions
- Prototype: Make ideas tangible enough to test
- Test: See how solutions work with real users
- Refine: Improve based on what you learned
Then repeat. Each cycle should increase confidence that you're solving the right problem in a useful way.