1. **Independent**: As much as possible, create user stories that are not dependent on each other.
2. **Negotiable**: Requirements keep evolving; this means we should be able to edit the user story until development work starts.
3. **Valuable**: The user story should be of value to someone — the customer, stakeholder or business folks.
4. **Estimable**: We should be able to estimate any user story played in the iteration.
5. **Small**: User stories should be small enough to reduce dependency and incrementally develop the feature.
All user stories need to be: Independent: As much as possible, create user stories that are not dependent on each other.
If there are dependencies in user stories, they may be combined into a single story, or play the story in such a way that it does not become a bottleneck to the team
Teams should be flexible with changes
If all user stories are not testable, then either the requirements aren’t clear, or we need to go back to the drawing board to make the functionality less complex
Larger user stores can be split into smaller ones to make them easier to develop
At the same time, there is a fine balance between being too granular or too large.
Make the right decision as a team
Testable: If all user stories are not testable, then either the requirements aren’t clear, or we need to go back to the drawing board to make the functionality less complex