When just starting a project, you have nothing---no UI, no data layer, nothing in between. Thus, a single story like users should be able to view their foos will entail a lot of work. Once you have that story, one like users should be able to edit their foos is more realistic, but that first story will involve setting up a UI layer, a presentation logic layer, a domain logic layer, and a data access layer.This doesn't fit with my concept of tasks: to me, I'd rather have something like the following tasks:Show dummy data for a user's foos in HTML, derived from JavaScript objects.Set up a presentation logic layer, and connect the JavaScript objects to it.Set up a domain logic layer, and connect the presentation logic layer to it.Set up a data access layer, and connection the domain logic layer to it.Do all of these fall under the single story above? If so, I feel like stories are not a terribly useful framework in the early stages of a project. If so, that's fine---I just want to make sure I'm not missing something, since I'm really trying to learn this agile methodology as best I can.
What kind of users stories should be written in the initial stages of a project?
project management;agile
This is a good question and there are probably several good answers to it.  My take is this:A story is a user story so it must be defined in terms that describe how it benefits the user.If Agile and stories are going to work for you, then they should work even in the beginning stages.  The first bullet point is a single user story (worded a bit tech-y though), but the other three are technical task descriptions.In the beginning stages of a project, when you don't have the appropriate frameworks in place to make CRUD (Create, Read, Update, Delete) development quick and easy, your stories need to be of much smaller, incremental pieces.Instead of User should be able to view their foo, something like this:User should be able to see a page with sample dataUser should be able to see a page with interactive sample dataUser should be able to see a page with live interactive sample dataRemember that most user stories that seem too huge to develop in a single sprint (I've found that anything bigger than about 8 story points, or days of development, was too big) can probably be broken down into pieces that are still meaningful to the user.The story/feature doesn't have to be marketable, it just has to be meaningful to the product owner. In the case above, you could put in some quick demo pieces to show what has changed and how that story is now done — for example, for #3, you could show the page for two different users with data pre-populated in the database. At stage #2, all users would see the same data.