Design
Home
Originally the home page had a tab in the lower right hand corner that would allow users to cancel a previously scheduled call, but from feedback we found that this wasn't externally consistent with other web pages. Instead we moved this functionality to the page header along with other options. Additionally this allowed the user to access these options regardless of the mode they were in.
Zip code results
The filter tab originally had radio buttons and an option for 'All,' but the heuristic evaluations correctly pointed out that check boxes would make more sense and provide greater flexibility for the user. We also added an input field at the top of the page that would allow the user to search a new zip code without having to return to the previous page (this improves efficiency).
Call now
One of our heuristic evaluators pointed out that we could improve efficiency by remembering what number a user entered previously and then having that number filled out automatically the next time the user decides to make a call. We added a cookie that accomplishes this.
Schedule a call
The cookie mentioned in the previous section was also implemented on this screen. We also fixed some cosmetic issues revealed by our heuristic evaluators.
Record a voicemail
Because the voicemail recording widget as flash based, it loaded slightly after the rest of the page leaving the user guessing about what to do for a small but still noticeable period of time. We added a loading symbol to account for this. Furthermore, the heuristic evaluation mentioned that users could submit without recording first, so we fixed that as well.
View scheduled calls
This page would not exist without the valuable feedback we got from the heuristic evaluations. Previously users would not be able to see what calls they had and instead had to cancel them from memory, but this page provides much more transparency so that the user is much more in touch with the actual model.
Implementation
Our project was designed as a web-app using HTML, CSS, jQuery/javascript, PHP, and a MySQL back-end. We did not use any frameworks, mainly because we were new to all of the technologies involved and were unaware of the benefits of other approaches. We had to limit the focus of our project to a single browser (Chrome) because of the variability of interpretations of CSS across the browser landscape; this severely impacts usability, and given more time we would have worked to improve compatibility with other browsers.
Because there was no other way to access the user's microphone from their browser, we were forced to use Flash for the recording widget. This completely breaks compatibility with Safari, and introduces yet another technology that our site must be dependent on. Luckily, we found the WAMI Recorder, which allowed us to create and manipulate a Flash-based recording widget using HTML and javascript.
Our original intent was to create our own database of representatives, but we ended up using the Sunlight Congress API instead. Every time users search with their zip code, the API is queried. This means our site will stay up-to-date even after election season, with no more work on our end. But it also means that if the API ever becomes unavailable our site will be completely unusable.
We had to partition the work among three people, so we each worked on separate pages; if we had not communicated effectively and reviewed each other's work, the internal consistency of our interface would have been greatly diminished. We took turns working on the common style elements in the default stylesheet, so there were a couple instances of someone's "improvements" accidentally breaking another person's work.
Evaluation
The user test was conducted on a laptop with the user in control and the facilitator and observer behind the user on either side. Our users were all MIT students who had no previous experience contacting policy makers. While perhaps more technicaly inclined than other users in our proposed population, these test subjects still had the esential trait we were looking for: a lack of experience contacting policymakers.
Because our project mission did not change from when we did our paper prototype testing, we used the same briefing. The briefing is reproduced below:
Thank you for choosing to participate in the testing of our prototype. The goal of this test is to find deficiencies in our prototype so that we can improve the usability of our system. To be clear, you are not the subject of this test, and you should not be worried about making mistakes, as this will provide valuable feedback to us about our system. The protype you will be testing is intended to mimic the functionality of a website. The purpose of this website is to provide a quick and easy way to contact your local government officials. While not required, it would be helpful if you talk through your though process as you are carrying out the tasks that we will provide for you. Your participation in this test is entirely at your discretion, and you may stop testing at any time. |
We added two additional user tasks from the set used during the paper prototype testing. The complete set of tasks is now:
- Find the representatives for your area
- Call a representative now
- Record a voicemail for a different representative
- Schedule a call for a third representative
- Reschedule the call you just scheduled
We did not use a demo because we preferred to let the user learn the interface themselves.
Usability problems and severity
User 1
- The phone number entry field was not auto-focused on the call now page (mild)
- Make the field auto-focus on page load
- The user was confused about what happened after the call was placed on the call now page (moderate)
- The user did not have her phone with her, so she was not alerted by it ringing as would normally be the case
- The voicemail record button has a microphone icon while external consistency calls for a red circle (cosmetic)
- Change the icon to a red circle
- The now button on the time entry widget confused the user because she had already entered a future date, and now does not make sense in that regard (mild)
- Remove the now button when the date is not set to today
- The time entry widget is not intuitively mapped (mild)
- Use a more intutive time selector widget
- The header buttons are not obviously buttons (cosmetic)
- Change the background color and edges of the header hrefs to be more button like
User 2
- Time selection widget unnatural (moderate)
- Remove the widget and just specify a format for user to type time
- The user asked about the politician's office hours (minor)
- We could gray out the unavailable hours in the date and time selection widgets
- The "View Scheduled Calls" link in the menu bar was not immediately visible (minor)
- Provide visual distinctions for buttons (colored boxes, perhaps)
- The now button on the time entry widget confused the user because it did not affect the date, only time (minor)
- Have the now button apply to dates too
- Possible safety issue for accidentally canceling scheduled calls (minor)
- Add a confirmation dialogue
User 3
Reflection
The iterative design process was useful, because it allowed us to make changes rapidly and then get feedback to double check that we had actually made an improvement with that change. If we were to do this again, we would probably investigate which technologies to use more carefully. For all of us this was our first time using CSS, javascript, or PHP, and while we got the work done, we had to spend more time learning the technology than we would have liked. However, now that we know the technology better, it would be useful to run more high fidelity tests, because we believe the feedback from testing phases that actually involved a computer (heuristic evaluation and final user testing) to be the most valuable and actionable. For example, even though our paper prototype had radio buttons on the filter tab, none of our test subjects commented on them, and this was likely due to the low fidelity of paper. Web prototyping is so quick, that we think it might have been more useful to test a wire-frame prototype a little earlier on.