Project Requirements
Introduction
Effective project planning starts with understanding what the user wants. This includes:
- Engaging stakeholders early and often
- Asking targeted questions
- Identifying constraints, goals, and priorities
Two Types of Requirements
Functional Requirements These describe WHAT the system should do.
- Examples:
- The system shall allow users to log in.
- The application should send an email when a user registers.
- Examples:
Non-Functional Requirements These describe HOW the system performs.
- Examples:
- The application must respond within 2 seconds.
- The system should support 1000 concurrent users.
- Examples:
Software Requirements Specification (SRS)
An SRS document serves as a contract between stakeholders and developers.
Typical SRS sections:
- Introduction
- Functional Requirements
- Non-Functional Requirements
- System Features
- Use Case Descriptions
- External Interfaces
More details: How to Write an SRS
Use Case Diagrams
Use case diagrams help visualize interactions between users and systems.
- Actors: Users or other systems
- Use Cases: Tasks or goals the system enables
- Relationships: Associations between actors and use cases
Use case diagrams highlight how features are expected to be used from a user's perspective.
Example:
What is a Use Case?
A use case describes:
- Preconditions: What must be true before it begins
- Normal flow: Step-by-step interaction
- Alternate flows: What happens when things go wrong
- Postconditions: What must be true afterward
Use cases are effective tools for understanding both user expectations and system behavior.
Question: Can you determine at least 4 use cases in the example above. Do any of them have a pre-conditions? Are there any dependencies between the use cases?
User Stories
In Agile, requirements are captured as user stories. A user story answers:
- What: Description of the feature
- Who: The user who will benefit
- Why: The value it delivers
Format:
As a [role], I want [goal], so that [reason].
Example:
As a student, I want to create a secure password so that my personal information remains secure.
Acceptance Criteria
Defines when a story is complete.
Example Acceptance Criteria for the example user story above:
- Minimum 8 characters
- Includes lowercase, uppercase, numbers, special characters
- No repeated letters
More info:
Epic vs. User Story
- Epic: Large user need broken into smaller stories
- Example: As a host, I want to make Thanksgiving dinner so my guests think I’m a good cook.
- User Stories from Epic:
- As a host, I want to bake a pie, so guests have dessert.
- As a host, I want to set the table, so guests have a place to eat.
Types of Backlogs
Product Backlog
A product backlog is an ordered list of all the work that needs to be done on a product. It includes features, enhancements, bug fixes, technical work, and knowledge acquisition necessary for product development. The backlog is dynamic, constantly evolving based on customer feedback, market changes, and team insights.
Key Characteristics
- Prioritized by value, risk, and effort
- Owned by the Product Owner
- Refined regularly (backlog grooming)
- Items are usually written as user stories
In Agile, the product backlog serves as the single source of truth for the development team about what to build next.
Sprint Backlog
The sprint backlog is a detailed and time-bound subset of the product backlog that the development team selects during a sprint planning meeting. It includes the specific user stories, tasks, or backlog items that the team commits to completing within the current sprint (typically a 1–4 week iteration). In addition to listing the items, the sprint backlog also outlines the team’s plan for how to implement and track progress on each item.
Key Characteristics
- Represents the team’s commitment to deliver specific work during the sprint.
- Contains work planned for a single sprint, typically 1–4 weeks.
- Only the development team manages and updates it.
- Tasks may be broken down or updated, but scope changes require team agreement.
- Items are decomposed into tasks that can be acted on immediately.
- Supports tracking through daily stand-ups and visual tools like task boards.
- All items should directly contribute to achieving the sprint objective.
User Story Points
Points are assigned to stories based on:
- The amount of work to do
- The complexity of the work
- Risk or uncertainty in doing the work
- Time / Duration
Techniques like Planning Poker help assign points collaboratively.
Reference: Atlassian on Planning Poker
Velocity
Measures how many story points a team delivers per sprint.
More details: Scrum.org - Velocity
Burndown Chart
Tracks remaining work over time to monitor sprint progress.

Real-time visualization of team velocity and goal tracking.
More info: Burndown Basics
User Interfaces and User Stories
UI wireframes should complement your user stories but not dictate implementation.
Example User Story with Scenario:
As a user, I want to be able to log into the system so that I can use it.
Scenario:
Given a logged-out user
And the user provides login credentials
When they are authenticated
Then they see their homepage
Tools: Microsoft TFS vs. Jira
Microsoft TFS (Team Foundation Server): TFS Overview
TFS vs Jira Comparison: Watch Comparison
Disclaimer: Generative AI was used in part to generate these lecture notes.