Files
org_web/posts/career/requirements-features.org
2026-04-02 11:27:50 +01:00

77 lines
3.8 KiB
Org Mode
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#+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 thats 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 avatar 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 avatar,” 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 systems 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]]