A guiding valuesvalue of agile is individuals and interactions over process and tools. What this means is that agile favours conversation and interaction between team members.
This is one of the reasons that the user story came about. It is not intended to be a detailed requirement. Instead it is an invitation to a conversation.
It is quite acceptable for a user story to be a simple sentence and it is not necessary to have details such as user permissions, design and impact areas.
You are probably thinking that a user story without details is not going to contain enough information for the development team to do the work properly. This is correct and that is where the conversation comes in.
Think of a user story as going through a life cycle:
- First it is a simple sentence, just sufficient for people to understand what the requirement is about and so do prioritisation.
- As the user story moves towards the top of the product backlog the team may do some backlog refinement on it. For example, the Product Owner might talk about the story with the team to ensure they are clear what they are after.
- When the user story reaches the top of the product backlog it may be that the team wants a bit more detail added. They do this so that it is easier for them to estimate. For example, they might ask the Product Owner to work with them to add some acceptance criteria or other details.
You ask the question "What makes a good user story?". I would answer that it depends on where in the life cycle the story is. Initially a good user story will just be a clear, descriptive sentence. By the time you get to sprint planning a user story should have evolved to include any details that are necessary for the team to estimate it and then start work.