One of the big differences between Agile methods and traditional methods for software development is that Agile methods focus on vertical development versus horizontal development.
With horizontal development, you assign a developer the job of implementing a certain layer in the system. Their job is to design and develop the layer and publish the interface so people working above them can call into their layer.
Vertical development, on the other hand, assigns each developer some stories to implement in in each iteration. The developer implements these stories vertically implementing a slice through the UI layer, the business objects, and the persistence layer. No one person is assigned to implement the persistence layer for the application.
The nice benefit of this is that each layer is only as complex as it needs to be for the stories that have been implemented so far. It avoids the problem of having one person implement a layer throwing in all the bells and whistles. The layer becomes unmanageably complex and integration is a nightmare. With vertical slices, integration is performed incrementally and constantly. You always have a system that implements some interesting functionality.