Course contentsShow
System Design
Lesson 10 of 1,9191. System Design Mindset and First PrinciplesFree lesson

Identifying Functional Requirements

Practice extracting functional requirements from problem statements: user actions, business logic, and data operations.

Identifying Functional Requirements

What you'll learn: How to read a problem statement and extract exactly what the system must do for its users.

The Core Idea

Functional requirements are the actions and behaviors your system must support. When given a problem like "Design Twitter," you need to translate that into concrete capabilities: users must be able to post tweets, follow other users, see a timeline, etc.

Think of functional requirements as the verbs in your system's story. They answer: "What can users do? What must the system process?"

The Three Pillars

When reading any problem statement, look for:

1. User Actions

What can people do directly?

  • "Users can upload photos"
  • "Customers can search for products"
  • "Players can send messages"

2. Business Logic

What rules or transformations happen?

  • "Show trending topics based on engagement"
  • "Recommend videos based on watch history"
  • "Calculate delivery estimates"

3. Data Operations

What information must be stored, retrieved, or modified?

  • "Store user profiles"
  • "Retrieve last 50 messages"
  • "Update follower counts"

Example: Design Instagram

Problem statement: "Users share photos with followers."

Extracted functional requirements:

  • Users can upload photos
  • Users can follow/unfollow others
  • Users can view a feed of photos from people they follow
  • Users can like and comment on photos
  • System must store photos and metadata

Notice we're not talking about "fast" or "reliable" yet—that's non-functional. We're only listing what happens.

Key Takeaway: Functional requirements define the system's behavior through user actions, business rules, and data operations—the "what" before the "how well."