#+TITLE: Requirements, features, user stories, tasks, walking skeletons #+OPTIONS: num:nil tags:t toc:t #+DATE: <2025-11-06 Thu 22:01> #+FILETAGS: :learning:notes: #+WIP: #+COMMENTS: t #+SLUG: requirements-features ** Requirements - Definition: High-level descriptions of what the system must do or how it should behave. - Types: - *Functional*: Specific behaviors (e.g., “The system must allow users to reset passwords”). - *Non-functional*: Quality attributes (e.g., performance, security, usability). - Agile Context: Requirements are often evolving and are captured incrementally through user stories and feedback loops. ** Epic An epic is a high-level objective or initiative that’s too big to complete in a single sprint. It represents a major business goal or capability and is broken down into smaller deliverables: - Purpose: Organise related work under a common theme. - Scope: Broad and strategic; spans multiple sprints. - Example: “Enable secure user access” could be an epic that includes login, signup, password reset, and multi-factor authentication. “An epic serves to manage tasks. It's a defined body of work that is segmented into specific tasks (called ‘stories’) based on the needs/requests of customers or end-users" ** Features - Definition: Distinct pieces of functionality that deliver value to users. - Scope: Larger than user stories but smaller than epics. - Example: “User profile management” could be a feature encompassing login, profile editing, and profile image upload. ** User Stories - Definition: Short, simple descriptions of a feature told from the perspective of the user. - Format: “As a [user], I want [goal] so that [reason].” - Purpose: Helps teams focus on user needs and prioritize work. - Agile Role: Central to backlog grooming, sprint planning, and iterative delivery. ** Tasks - Definition: Technical or operational steps needed to implement a user story. - Granularity: Smallest unit of work, often assigned to individual team members. - Example: For a story like “User can upload profile image,” tasks might include: - Create upload UI - Validate image format - Store image in database ** Walking Skeleton - Definition: A minimal, end-to-end version of the system that includes the core architecture and basic functionality. - Purpose: Validates the system’s structure early and allows incremental development. - Agile Benefit: Enables early integration, testing, and feedback while avoiding big-bang delivery. ** Hierarchy Overview | Level | Description | Agile Artifact | |----------------+----------------------------+------------------| | Vision | Broad business goals | Epics | | Feature | Functional chunks of value | Features | | User Need | Specific user goals | User Stories | | Implementation | Technical execution steps | Tasks | | Skeleton | Minimal working system | Walking Skeleton | Here is a summary of the agile hierarchy: | Level | Example | Description | |----------------+--------------------------------------+----------------------------------------| | **Epic** | Enable secure user access | Broad goal spanning multiple features | | **Feature** | User Login | Functional unit delivering user value | | **User Story** | “Log in with email/password” | Specific user goal within the feature | | **Task** | Build login form, connect to backend | Technical steps to implement the story | * Example from work: <2025-10-09 Thu> The user story creation we did for a particular made up project (not the proudest but team voted on this sadly). [[../../assets/images/career/2025-10-10-user_stories.jpg]]