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."