User Stories
http://www.flickr.com/photos/psd/3731275681/
Where do I start?
The only thing that matters about a web app: How does it make your users' lives better?
http://www.flickr.com/photos/tambako/3593686294/
Who are your users?
Create mini-profiles for several target users of your app. Brainstorm as many potential users as you can think of. So I'm writing an app for posting, rating, and commenting on funny pictures of cats. My list of users:
- A cat owner with a digital camera and too much time on their hands
- A boring prof looking for a funny cat picture to spice up a preso
- A graphic design nerd who loves to play with Photoshop
- The FunnyCatPictures.com site administrator
Don't leave out this last one; that's a user too! Quite a bit of your functionality may actually be directed at them. This list doesn't have to be long - you may only have two or three types of users on your site, and that's fine.
What do they want?
For each user in your list, what do they want from your site? Why would they visit it in the first place? How will it make their life better?
- cat owner
- recognition from other cat-freaks for having a super-cute cat
- boring prof
- very quickly find the funniest pictures on the site
- graphic design nerd
- recognition from other nerds for mad Photoship skillz and lame internet humor
- site admin
- quickly become aware of inappropriate content and easily be able to deal with it, able to offload some moderation work onto trusted users, ...
How will they get it?
This is the heart of the exercise; where you turn theory into a practical, do-able, todo list for your project. Working from your list of user profiles and what they each want, generate a list of user stories. Each user story should be one to three sentences long, and should briefly describe (in non-technical language that the user themselves would understand) how the user accomplishes a task on your site.
If you're really obsessive about it, you write up each user story in the same format: "As a __(type of user)__, I can __(description of task)__ so that __(motivation)__." Personally I don't care if you use that format; do so if it helps you think through your stories.
Sample user stories
- "As a cat owner, I can post pictures of my cat and have them credited to my username so people know that's my cat."
- "As a cat owner, I can up-vote (or favorite) cat photos that are super-cute, so I can be recognized for my super-cute cat."
- "As a boring prof, I can sort the pictures on the site by how many upvotes they've gotten, so that I can quickly find the funniest ones."
- "As a Photoshop nerd, I can copy photos from the site, photoshop them in funny ways, and then re-upload them with a link to the original, so that people see how witty and talented I am."
- "As a site admin, I want users to be able to flag offensive photos so I can quickly check them out, so users aren't driven away from the site."
- "As a site admin, I want to be able to delete a given photo from the site with only two clicks, so I don't spend my whole life managing this damn site."
- ...
And more
You'll probably have more than this. The entire functionality of your site should be captured in user stories.
Tools: Pivotal Tracker
pivotaltracker.com
Homework
Create a list of user profiles and their motivations (save this in your week5 homework folder). Use that to generate a full list of user stories, and enter those in your Pivotal Tracker project. Prioritize them according to which you think are most important to the success of your site. This will be the todo list you'll be working from the rest of the semester.