...
- Bob skims items in the list Hubbub provides, reading items that sound seem interesting to him.
- He finds is interrupted while reading a long political article that might be good, but is too lazy to read it now and marks it as an item he wants to read laterHe finds a hilarious meme-related picture on imgur, and shares it on Facebook and marks it with a new "cool" categoryfinish reading later.
Chapter 2: Filtering
While reading the items on his feed, Bob notices that he is bothered by a problem that has been annoying him for a while now. Now that he has started using Hubbub, he thinks he can fix it.
Bob really enjoys programming, and one of his hobbies is to work on side projects which he uploads to the Web using sites like Google Code and Github. He shares this interest with many of his colleagues. A common action among this group is to post your latest project on Google+ for comments and shares, and Bob keeps up with these postings so his friends will spread the word about his projects in return. Unfortunately, some of the people in this group also post content that Bob is not interested in. For instance, his coworker Bill also uses his Google+ account to publish a stream-of-consciousness narrative of the misadventures he has with his 3-month-old child (Bob is currently happily single). Even worse, these posts are +1'ed en masse by other parents, bringing them up higher in the Google+ news feed than the posts about Bill's side projects. Telling Google+ to show less of Bill isn't a good solution because it also suppresses the side project posts. Bob uses Hubbub's filtering feature on his colleagues to prioritize posts about side projects over those about less essential life details. He does this through the following steps:
- Notes a pattern in the posts that need to be filtered (here, the projects posts have links to websites, while the life details posts don't. Also, they usually mention Google Code or Github)
- Inputs the filter into the system, and Hubbub immediately applies it to the listed items so Bob can preview the results.
- Realizing that "contains a link", while better than no filter, still lets some noninteresting posts through, Bob updates the filter to allow only posts linking to the source code hosting websites that his friends use.
- Reads the newly filtered content, and concludes that it is a valid filter that expresses what he wants.
- Saves the filter.
- In the future, Bob applies the filter whenever he wants to look through the latest side projects that his friends have made.
Chapter 3: Saving Information
The next day at work, Bob browses through his information feeds through Hubbub while his code is compiling, trying to kill time while not looking for anything in particular. Then, he finds an article describing a new, shiny library to solve a problem in his favorite programming language. Bob has been using this programming language for one of his side projects, and this library might come in handy! He's at work, maintaining a codebase in his least favorite programming language which has just produced two screenfuls of compiler errors, so he wants to archive it and refer to it later when he goes home and works on his side project. Bob takes the following actions:
- Saves the awesome library item in the feed.
- Categorizes the article with other materials relevant to side projects
- Later, when at home, views his "read later" items and retrieves the saved article.
Designs
Design # 1
Read Items
...
Sketch
...
Storyboard
...
Learnability
...
Efficiency
...
Safety
...
Initial sketch:
Improved sketch:
...
It is very efficient for reading items. Bob can quickly scroll through and skim the first line of each entry as he looks for things to read. However, If he wants to mark multiple items at once (such as read or read later), it will not be easy or quick to do here. Also, it is not clear if Bob has to click on entries to change focus between entries (will every button on the screen be accessible through one tap on the phone? Or will Bob have to tap on an entry first before he can use the buttons?).
...
Bob can easily expand/shrink entries. With this interface, items are currently not deletable, which avoids Bob accidentally removing something he wants to keep. If Bob doesn't like a tag he put on an entry, he can edit or remove it using the "tag" button again (though this is not clear in the drawing).
Filter Items
...
Sketch
...
Storyboard
...
Learnability
...
Efficiency
...
Safety
...
Initial sketch:
Improved sketch:
...
This is extremely inefficient, because it only filters on things you've already tagged, aside from what sources to include. Thus Bob has to tag everything he wants to see before he can properly filter for them.
spending a lot of time skipping past emo quotes and photos of peoples' lunches, and that he's just not in the mood for all the stream-of-consciousness vapidity on Twitter and Facebook. He does the following:
- Notes a pattern in the posts that need to be filtered (here, that the posts are blurbs and photos from Twitter and Facebook).
- Indicate to Hubbub the kinds of posts he wants to see less of.
Chapter 3: Saving Information
Bob finds an article describing a new, shiny library to solve a problem in his favorite programming language. Bob has been using this programming language for one of his side projects, and this library might come in handy! He'll want to refer to it later when he's working on that side project. Bob takes the following actions:
- Categorize the article with other materials relevant to side projects.
- Later, he'll want to retrieve the saved article.
Designs
Design # 1
Read Items
Sketch | Storyboard | Learnability | Efficiency | Safety |
---|---|---|---|---|
| Bob would read through his news items by scrolling up and down. The first few lines of each item are visible. | This interface is very similar to the interfaces for reading Twitter updates and Facebook's stream. The list format (common on phones) affords scrolling through the items, and the buttons use text to be fairly self-describing. Bob should have little difficulty figuring this UI out. | It is very efficient for reading items. Bob can quickly scroll through and skim the first line of each entry as he looks for things to read. However, If he wants to mark multiple items at once (such as read or read later), it will not be easy or quick to do here because he has to do them all individually. Having the buttons always visible may mean more scrolling is necessary, which could slow Bob down. | Bob can easily expand/shrink entries. With this interface, items are currently not deletable, which avoids Bob accidentally removing something he wants to keep. If Bob doesn't like a tag he put on an entry, he can edit or remove it using the "tag" button again. |
Filter Items
Sketch | Storyboard | Learnability | Efficiency | Safety |
---|---|---|---|---|
| To filter out his annoying Google+ updates, Bob can use this interface to select all of his sources except Google+. In addition, he checks the "important" tag checkbox to sort by importance. | This interface is very easy to use. There are only items and check boxes, so Bob can easily try out some of them to see what they do if he's not sure. | This is extremely inefficient, because it only filters on things you've already tagged, aside from what sources to include. Thus Bob has to tag everything he wants to see before he can properly filter for them. | If Bob accidentally filters on the wrong thing, he will have to start this process all over again. |
Save Items
Sketch | Storyboard | Learnability | Efficiency | Safety |
---|---|---|---|---|
| This is an example of a menu that would appear after hitting a save button on the page. Here, Bob's previously created/used "save" tags are listed in the first drop-down menu. Since bob has categorized code-related items before, he will already have a "code-related" tag of some kind in the list. This would just be a special tag that makes sure items don't get deleted. For example, if we add options for the user to delete items that have been around for a long time (month or something), items with the save tags would be ignored. Bob will then pick the correct tag from the dropdown menu for his article and specify how long to save the article for in the second drop-down menu. When he is done he hits the "save it" button. | It's pretty clear what is being saved. But Bob may not realize how to create a new save tag with this design. He would have to explore the drop-down menus to see what they do. | This is pretty efficient for saving a single item. Bob could save an item in 1 tap on his phone using the default menu values. As the list of save tags grows, we can allow scrolling/arranging options for the save tags to speed up the search for the correct tag. | The item Bob is trying to save is displayed to make sure he's saving the right thing. |
Design # 2
Read Items
Sketch | Storyboard | Learnability | Efficiency | Safety |
---|---|---|---|---|
| This interface displays a single item at a time, filling the screen. Bob is brought immediately to the first item in his feed. He goes from one item to another using the next and previous buttons. | Bob may confuse the intent of the read later tag with other tags if we include it in the tag menu. Thus we will probably have to add another button. The issue with this is that there are already 8 buttons at the bottom of the screen. This may make learning how to use the interface more difficult for new users, even if the buttons seem straight-forward in use. Next and Previous are familiar affordances from websites that Bob can use to learn how to navigate through his items. | When | If Bob realizes he accidentally skipped an entry he was looking for, he will have to hit the "Prev" several times to get back to the correct entry. However updating tags will be easy. There is no "undo" button for any of the interfaces. |
Filter Items
Sketch | Storyboard | Learnability | Efficiency | Safety |
---|---|---|---|---|
| After hitting the filter button from the reading menu, Bob comes to this interface. To filter out his Google+ updates, he simply adds a "not on: Google+" to filter them out. Similar to searching in the Finder application on a Mac, Bob can build a filter by creating "key-value" pairs for various attributes of the content (keyword, source, date, etc.). To add a pair, Bob hits the "Add Filter" button, with creates a list of attributes Bob can specify. In the sketch, the first item in the list asks what source the content came from, the second when it was posted. To remove pairs, Bob can hit the "minus" button next to the appropriate pair. | This filtering option is fairly complex. If Bob is unfamiliar with say Google Advanced Search options or Finder's search options, Bob will be very lost using this interface. However, if he is familiar with them, those affordances will make searching in Hubbub straightforward for Bob. The initial text however does give some indication of what kind of information Bob should input. For example, "on:service" shows Bob that he should input an information source. Putting in an actual source like Twitter would make this clearer for Bob. | This interface does not provide options to save filters, remember the last set of filter options, or update the filter. Thus Bob will have to input the parameters for his filters from scratch every time. This is tedious and aside from specifying maybe only 1-3 of the options, Bob may avoid using this interface entirely and filter manually instead. | Bob can easily remove a specific pair by using the "minus" button of that pair. However, if Bob simply wants to update the pair, he will have to remove the pair entirely and read it. And as described in efficiency, if Bob messes up his search, he will have to do it all over again from scratch with this interface. |
Save Items
Sketch | Storyboard | Learnability | Efficiency | Safety |
---|---|---|---|---|
| To save an entry (in this case the programming article), Bob has to navigate to that entry and hit the "save" button. A (maybe popup) menu appears with checkboxes specifying what save tags to use on the entry. Bob finalizes by hitting the "ok" button at the bottom of the menu. | Because this isn't traditional save, the word save may confuse Bob. We are using tags to specify an entry is "saved", but we don't move it to a separate location like a folder. | Because the interface is very simple, Bob will be able to save individual entries very quickly. Specifying new save tags will also be fast. After hitting the "new tag" button, a new check box and text box will appear where the "new tag" button was. Bob will simply just describe the name of the tag in the text box and tap the check box next to it (or something similar to this). | Ideally if Bob saves an item, Hubbub will remember this and turn the "save" button into an "update/unsave" button so Bob can remove the save tag or change/add save tags. The menu would be the same, but unchecking boxes would unsave the entry. The issue with this is it is unclear what should happen if Bob is initially trying to save but doesn't check one of the boxes. What if he inputs text for a new tag but doesn't check the correct box? There is potential here for Bob to produce input Hubbub would handle in a non-intuitive way. We will have to choose whether to err on the side of save or not save, and default to particular tags accordingly. |
Design # 3
Read
...
Save Items
...
Sketch
...
Storyboard
...
Learnability
...
Efficiency
...
Safety
...
Initial sketch:
Improved sketch:
...
It's pretty clear what is being saved. But Bob may not realize how to create a new save tag with this design. He would have to explore the drop-down menus to see what they do.
...
Design # 2
Read Items
...
Sketch
...
Storyboard
...
Learnability
...
Efficiency
...
Safety
...
Initial sketch:
Improved sketches:
...
With this interface, Bob is brought immediately to the first item in his feed. He goes from one item to another using the next and previous buttons. He saves and shares items using the "save" and "share" buttons. He can mark things using the "tag" button, which would open a new (maybe popup) menu. An example of the tag menu is given in a second drawing. We would either add a separate button for read later items, or add "read later" a tag in the tag menu.
...
going through each item one at a time will be very slow for Bob. If he is uninterested in the first 10 items, he will have to click the "Next" button 10 times before he sees something interesting, which is very inefficient. We will want to add a birds-eye view interface so Bob can quickly go through items as well.
...
If Bob realizes he accidentally skipped an entry he was looking for, he will have to hit the "Prev" several times to get back to the correct entry. However updating tags will be easy. There is no "undo" button for any of the interfaces.
Filter Items
...
Sketch
...
Storyboard
...
Learnability
...
Efficiency
...
Safety
...
Initial sketch:
...
Bob can easily remove a specific pair by using the "minus" button of that pair. However, if Bob simply wants to update the pair, he will have to remove the pair entirely and read it. And as described in efficiency, if Bob messes up his search, he will have to do it all over again from scratch with this interface.
...
Items
Sketch | Storyboard | Learnability | Efficiency | Safety |
---|---|---|---|---|
| To save an entry, Bob has to navigate to that entry and hit the "save" button. A (maybe popup) menu appears with checkboxes specifying what save tags to use on the entry. Bob finalizes by hitting the "ok" button at the bottom of the menu. | Because this isn't traditional save, the word save may confuse Bob. We are using tags to specify an entry is "saved", but we don't move it to a separate location like a folder. Ideally if Bob saves an item, Hubbub will remember this and turn the "save" button into an "update/unsave" button so Bob can remove the save tag or change/add save tags. The menu would be the same, but unchecking boxes would unsave the entry. The issue with this is it is unclear what should happen if Bob is initially trying to save but doesn't check one of the boxes. What if he inputs text for a new tag but doesn't check the correct box? There is potential here for Bob to produce input Hubbub would handle in a non-intuitive way. We will have to choose whether to err on the side of save or not save, and default to particular tags accordingly. |
Design # 3
...
| This design attempts to make filter application more prominent by merging | Reading the material in the center is similar to | Power users who wish to filter items regularly will | If Bob skips an entry, he can just |
Filter Items
Sketch | Storyboard | Learnability | Efficiency | Safety |
---|
Filter Items
...
Sketch
...
Storyboard
...
Learnability
...
Efficiency
...
Safety
...
| When Bob decides to create or update a filter, the screen shown | This interface is learnable, but only if the instant | Searching by typing is efficient since it allows | Bob can undo the additions he has made to |
Save Items
Sketch | Storyboard | Learnability | Efficiency | Safety |
---|---|---|---|---|
| This design for the saving items task uses a nested folder | Bob can learn by recognition, calling on his | Folders may be less efficient than tags, | Bob can't make unrecoverable errors with this |
It's possible to mix these task designs together into an overall design not in this list (e.g. we could use the reading items design from Design 3, but with tag-based archiving). Tests and iteration are useful to determine which designs to keep.
...
Save Items
...
Sketch
...
Storyboard
...
Learnability
...
Efficiency
...
Safety
...
...
...
...
...