As others pointed out, there is no universal definition of an Epic, so the following is based on my work experience.
What not to do with an Epic
In my practice an Epic can never be added directly to a sprint.
It is too broad, and a complexity based estimate would be way to inaccurate to even have a chance of knowing if it would fit into one sprint.
It usually covers several User Stories, each of which need to be estimated and prioritized independently - not only against other stories as part of this Epic, but against other stories (from other epics).
Just because the Epic is important, doesn't mean every story in the Epic is equally important. In reality maybe not all stories thought of as part of an Epic will even ever make it into the project, if other priorities come up.
For the same reason it is not wise to go into too much detail for individual stories, as at the point of drafting the Epic it is not clear yet which story will make it (when) into a sprint and thus into the product.
What to do with an Epic
Similar to a Story an Epic should justify its existence in the Backlog, by explaining:
- Why we want this in our product?
- Who will it benefit?
- How can we measure its success?
As an Epic might involve more then one User Role, potentially even more then one interface. Consequently it is in its nature to be too complex for writing it down as one linear Story.
It ultimately has to be broken down into several user stories, as only well encapsulated user stories should make it into a sprint.
Thus my favorite way of outlining an Epic is too write the epic as a drafted list of User Stories, without going into too much detail for each story.
- As a company Owner I can upload my existing logo
- As a company Owner I can define an arbitrary set of primary colors
When preparing for a next sprint and it's time to tackle the epic, User Stories can be broken out and specified in the agreed upon detail, prioritized and estimated for the sprint, and or left for the next sprint if the (expected) velocity is not sufficient to tackle all stories at once.