Specification and User Story Writing
Specification writing states what a system must achieve and the constraints that matter. User-story writing captures a small user outcome, then uses conversation and testable acceptance criteria to turn that outcome into a delivery-ready agreement.
itEngineering leadership and delivery management | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: Specification and User Story Writing
A specification is the part of a change where people agree what must happen before software begins confidently doing something else. It records required behavior, the constraints that matter, and the evidence that says the result is acceptable. This is less glamorous than drawing a blue export button, but it prevents the blue button from becoming a monument to a misunderstood request.
A user story is the compact version of that agreement for a small user outcome. It names an actor, a goal, and a benefit. The famous sentence form is useful because it keeps the reason for work in view, not because software becomes correct after being placed between three commas. If the work is a migration, policy obligation, or investigation with no real user outcome, use a direct requirement or a spike instead of inventing a fictional person.
The useful mental model is card, conversation, confirmation. The card is a reminder. Conversation supplies the rules, examples, risks, constraints, and questions that a short line cannot carry. Confirmation becomes acceptance criteria: observable conditions that say where this particular story stops. A criterion such as “export works correctly” has the charm of a locked door with no address. Say who can request it, which records appear, who is denied, and what happens when no records match.
Do not confuse those criteria with the Definition of Done. Acceptance criteria describe this story's behavior. Definition of Done is the shared quality bar for every increment. One is the boundary of an account export. The other covers the routine engineering work that keeps all increments fit for public consumption. Putting the latter on every card is paperwork wearing a false moustache.
When a request grows teeth, split it by behavior that still gives value. Deliver one end-to-end path before alternate paths, one user segment before another, or one rule before a broader rule. Splitting by interface, service, database, and test creates parts that cannot be accepted by themselves, which is a fine way to make a backlog resemble a dismantled bicycle.
Read the Intro for the full chain from need to evidence. Use Slides when you need the map of work types and refinement. Keep the Cheatsheet open while reviewing wording and behavior boundaries. The Practice Reference turns a vague request into a repeatable refinement session. The exercise then gives the technique a fresh case, where the missing rules have nowhere polite to hide.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://cockpit.ireb.org/media/pages/downloads/cpre-re-agile-syllabus/8d18607446-1733311678/syllabus_cpre_al_re%40agile_en_v2.2.pdf
Supports
- User stories, the 3C principle, INVEST criteria, acceptance criteria, refinement, and specification practices presented in this course.
- https://www.agilealliance.org/wp-content/uploads/2017/08/AgileExtension_V2-Member-Copy.pdf
Supports
- The distinction between a story's card, conversation, and confirmation; acceptance criteria as a boundary and basis for verification; and the relationship to backlog refinement.
- https://scrumguides.org/scrum-guide.html
Supports
- The Scrum concepts of Product Backlog, Product Goal, Product Backlog Items, and Definition of Done.
- https://www.atlassian.com/agile/project-management/user-stories
Supports
- The common user-story format containing a user's perspective, desired functionality, and acceptance criteria.
- https://www.atlassian.com/work-management/project-management/acceptance-criteria
Supports
- Acceptance criteria as clear, concise, testable conditions for a story and the distinction between a story's purpose and its success conditions.
- https://agilealliance.org/glossary/user-stories/
Supports
- Story splitting, user goals, acceptance criteria, and INVEST as user-story skills.
- https://github.com/sindresorhus/awesome
Supports
- The required Awesome list discovery index used to locate topic-relevant curated lists.
- https://github.com/lorabv/awesome-agile
Supports
- The curated Awesome Agile discovery list covering user stories, story splitting, story mapping, acceptance testing, and Definition of Done.
- https://github.com/dend/awesome-product-management
Supports
- The curated Awesome Product Management discovery list that includes Taiga, Balsamiq, and Figma.
- https://taiga.io/
Supports
- Taiga as an agile project-management destination for backlog work.
- https://balsamiq.com/
Supports
- Balsamiq as a low-detail wireframing destination.
- https://www.figma.com/
Supports
- Figma as a browser-based design and prototyping destination.
- https://www.atlassian.com/software/jira
Supports
- Jira as a product-development work-management product.
- https://linear.app/
Supports
- Linear as a product-development system for planning, documents, initiatives, and issues.
- https://www.shortcut.com/
Supports
- Shortcut as a product-development platform with issue tracking, backlogs, sprints, and documentation.
- https://www.productboard.com/
Supports
- Productboard as a product-management system for understanding user needs, prioritizing work, and roadmaps.
- https://www.jetbrains.com/youtrack/
Supports
- YouTrack as a product-management and issue-tracking product.
- https://azure.microsoft.com/products/devops
Supports
- Azure DevOps as a product with agile planning tools, Azure Boards, work-item tracking, and testing capabilities.
- https://agilealliance.org/resources/experience-reports/developers-and-validators-working-remotely-together-on-a-single-kanban-board/
Supports
- A practitioner experience report on delayed acceptance-criteria conversations causing unexpected behavior, defects, and rework.
- https://agilealliance.org/resources/experience-reports/a-tale-of-slicing-and-imagination/
Supports
- A practitioner account of story splitting that can lose user value when teams split along technical or task lines.
- https://martinfowler.com/bliki/StoryTest.html
Supports
- Story tests as acceptance criteria and the maintenance and execution costs created when duplicated broad-stack tests accumulate.
