Break Down Stories
User stories are often large and feature-sized when they are first added to the backlog. The delivery team, or a representative, provides gross-level estimates to help the product owner rank the backlog.
As the priority of such a feature rises and the functionality is better understood, it can be broken down into smaller stories. Ultimately, these smaller stories will fit into a single iteration.
Break stories down
When breaking large stories into smaller stories that fit into an iteration, it is important to try to write in layers, for example, like cake slices. That is, the story should require the team to develop a function that includes the GUI or presentation layer, the business or logic layer, and the data or persistence layer.
Developers' instincts are to develop layer by layer. However, multiple tables unconnected to methods or GUI does not constitute potentially shippable code. Such stories will deliver no value, however small.
When we develop in cake slices, even for a thin piece of functionality that is not in itself very valuable, there is an opportunity to learn from feedback. If we can demonstrate even a small amount of the logic or GUI, we can determine if we are satisfying our customer.