Writing Scenarios
In this chapter our team will tackle the scenario writing step, and we'll start using Trello to capture the development of the scenarios and follow them as they progress through the other steps in the Agile Planning process.
-
Kelly: All right Pete, for the next step of planning our application, we are going to write scenarios for our personas.
-
Pete: What do you mean by scenarios?
-
Kelly: Well, why don't you tell me first how someone is supposed to sign up for MyFlix?
-
Pete: Oh that's easy, we'll just use the Devise Ruby library and they'll put in an email and password and sign up!
-
Kelly: Try not to think about the exact implementation, don't think about Ruby libraries, think about interactions. So there is a sign up page? How do they get there?
-
Pete: They click a link to sign up?
-
Kelly: And where is that link?
-
Pete: On the home page.
-
Kelly: And how do they get to the home page?
-
Pete: They enter the URL in their browser.
-
Kelly: And what causes them to enter the URL?
-
Pete: Well they want to visit the MyFlix app.
-
Kelly: What causes them to want that, how do they know about the app?
-
Pete: Hmm... I don't know, maybe it comes up in search results?
-
Kelly: What do you mean?
-
Pete: Like maybe they are searching for a movie, and they see a search result and it's our app so that's how they find out about it.
-
Kelly: There you go, I asked all those questions so we can hone in to an actual scenario where a user would interact with our application. If we don't drill down, then we might be making a lot of assumptions. Can you state the whole process Pete, in the context of Blake?
-
Pete: Sure...
While Blake is searching the internet to find out if there are any local theaters playing a newly released independent film, he finds the profile page for the film which is also released on MyFlix. He clicks on the link and learns about the app. Excited that he can watch it and similar films in the comfort of his apartment, he clicks the signup button then enters an email address and password. Then he enters his credit card information and finally accesses his account from his TV's browser and is able to stream the movie!
-
Kelly: That is pretty good, but I'd get rid of the clicking and sign up stuff, as well as the credit card info, here this is a better version:
While Blake is searching the internet to find out if there are any local theaters playing a newly released independent film, he finds the profile page for the film which is also released on MyFlix. Excited that he can watch it and similar films in the comfort of his apartment, he creates and account and begins paying the regular monthly fee. He accesses his account from his TV's browser and is able to stream the movie!
-
Pete: Ok, but why'd you take out all the details about signing up?
-
Kelly: Cause it's too much detail, it's not really important.
-
Pete: Sure it is, how do we know that he needs to enter his email and password, and pay with a credit card?
-
Kelly: But couldn't we just have him sign in with Facebook and pay with PayPal?
-
Pete: Hey, that's a better idea, let me re-write it to include that instead...
-
Kelly: Hold on Pete, that's my point, there are more than one way to handle sign up and payment, and at this level, it's best to just talk about them in general, because by the time we get to building it, we might know more information that will help us make a better decision about which way to go. Trust me, we will eventually get to that level of detail.
-
Pete: But if we know now what we want to do, why not just specify it?
-
Kelly: Because what we want now could very well change as we learn more things. We can't be certain, and by keeping things general we focus more on the high level user interaction and not the confusing nitty-gritty. It's just important to know that a user will create an account of some sort, not how all of it takes place.
-
Pete: And why are we writing these?
-
Kelly: Because once we have a bunch of scenarios, we can organize them in terms of importance and start planning out the rest of the app. Eventually these scenarios will drive all the little features we end up building.
-
Pete: But why do it like this, why not write down a list, like "login, watch movie, logout, reset password, review a movie?"
-
Kelly: Well Pete, these are helpful because they capture an end-to-end experience, and not just a bunch of disconnected features. If we build something based on a scenario, it would solve a user problem, or help them achieve a goal. Logging in is just one part of a larger process, the user ultimately wants to do something and the scenario captures that.
-
Pete: Ok cool, now what?
-
Kelly: Let's name this scenario "Joining MyFlix". This will just be a short hand so we can refer to it.
Scenario 1: Joining MyFlix
While Blake is searching the internet to find out if there are any local theaters playing a newly released independent film, he finds the profile page for the film which is also released on MyFlix. Excited that he can watch it and similar films in the comfort of his apartment, he creates an account and begins paying the regular monthly fee. He accesses his account from his TV's browser and is able to stream the movie!
-
Kelly: What else should users be able to do with our app?
-
Pete: See different categories of movies, and also add them to a list to watch later.
-
Kelly: Can you write that in the form of a single scenario?
-
Pete: Yeah sure:
Scenario 2: Discovering Content
Blake has some pretty specific tastes in films and TV shows. At work he browses through various categories on the MyFlix website and reads the reviews on some films in the categories he likes. Reading several summaries and recommendations that match his preferences, he adds these films to his ever growing queue, so later he can quickly pick something to watch.
-
Kelly: Great Pete, you're getting the hang of it. See this is where we can really start designing the things that MyFlix will do, at a high level. By framing the features in terms of a whole user interaction, we get a lot more context into what is going on, and how the features will be used. Can you think of something where maybe there wasn't a user scenario driving it?
-
Pete: Oh yeah, how about restaurant websites?
-
Kelly: Ok, explain.
-
Pete: Well when I'm out and trying to figure out a place to eat with my friends, nearly all of the restaurant websites don't look right on a mobile phone, I have to download the menu as PDF, or there isn't one at all, and sometimes they don't even have hours on the site!
-
Kelly: Oh yeah I get frustrated by that too. If there were a scenario describing your situation, then the team building the website would think, "hey, since people only really care about our hours and menu when they are on the go, let's format our mobile site simply and be sure to include that information front and center." I'd bet that you maybe have gone to worse restaurants with better user experience, just because the app was easy to use.
-
Pete: Oh I'm sure. So where should we put all of these scenarios we are writing?
-
Kelly: Way ahead of you Pete, I've already loaded these first two into Trello, this card board, I set up for the project:
-
Pete: Oh very, cool, this will be a great place to organize these things, but what are those other columns about?
-
Kelly: Don't worry about that for now, we'll get to them next. We'll just load all of our user scenarios into this column first, and then move them through other parts of the process. Let's make a few more.
Scenario 3 : Engaging with a Film
Much to his dismay, a film that Blake thought would be really edgy turned out to be pretty boring and he felt it was a waste of his time. He goes back to his laptop and logs into the MyFlix account and writes a review on the recently watched movie. He gives it 1 out of 5 stars and blasts the director with his personal critiques. Noticing some comments on the movies profile page that applaud the file, he argues back that their opinions were simply wrong.
Scenario 4: Inviting a Friend
Blake's friend Katie has a unique taste in films herself and one which Blake respects. He figures she would be into the selection and usefulness of the MyFlix application so he sends her an invitation through the application because it will allow her to sign up with the first month free. When Blake learns later that Katie did create an account, he chooses to follow her so he can watch her public queue and watch history, and find new films that he might like to watch based on her opinion.
-
Kelly: These are looking good, now what about the administrator, are there some scenarios for them?
-
Pete: Sure, they should be able to upload movies and set information, and also we'd want them to be able to view some information on users in the system.
-
Kelly: Good, that sounds like two scenarios to me:
Scenario 5: Adding Content
Carrie has several new episodes of a new TV show that she needs to distribute. She accesses the MyFlix administration system and queues several videos for upload, as they are uploading she fills in meta data, and sets their release dates.
Scenario 6: Analyzing Use
Carrie needs to create a monthly sales report for her boss, to show how well the application is doing. She accesses the administration system and generates a report that shows the total sales for the past few months.
-
Kelly: Ready to move on?
-
Pete: Kelly, but what about a scenario for the admin user joining the application, and don't you think we should have them have the ability to disable users?
-
Kelly: All good ideas Pete, but remember we are trying to keep things as simple as possible first, we can always come back later and add new scenarios that detail other interactions we want to build. This is a rolling process, we do a lot of work at the very beginning but then as the application grows, we might need to add another persona, and certainly several new scenarios, and so on.
-
Pete: Well in that case do we even need to build the reporting part for the admin?
-
Kelly: That's where the prioritization of our scenarios come in, we'll order them according to how critical they are to achieve our business objectives. What do you think should be first?
-
Pete: Well we have to upload content before people can watch it so let's do "Adding Content" first.
-
Kelly: Couldn't we just manually add the content somehow? Like store the files on a server or something?
-
Pete: Yeah, but that would be clunky.
-
Kelly: True, but it won't be like that way forever, but I'd rather just upload a bunch of files to a server then take time building out a fancy admin interface.
-
Pete: Oh so we could do things a little rough to fill the gaps?
-
Kelly: Sort of, we just want to focus on highest priority things first, and if we can make do with a less software oriented solution, we can lower the priority of that scenario.
-
Pete: Well then clearly the "Joining MyFlix" scenario should be first, how's this for an order?
-
Kelly: Looks great, now let's move on to our first storyboards!