Functionality: Keeping Your Users Happy

Picture this: You receive a text message saying that your bank account is overdrawn and you are in the middle of procuring your life’s necessities (also known as grocery shopping). You know you have money in your savings, so you’ll just transfer $200.00 until your next payday. So you pull up your bank’s app/website and enter your username and password on the log in screen and press enter, nothing happens. How do you feel? Most likely a bit ticked off that you can’t access your hard earned money, correct?

Here is where a website’s functionality comes into play. The design of the website/report can make is rain silver and gold, but if you click a button that is supposed to log you in or load up another date on a report, the design of the website means nothing to you as a user. As a back end developer it is my job to make sure that every time you click, drag, or drop that the information you need is accessible and loads as quickly as humanely possible. To keep our users happy and smiling, I implement a functionality goal list in all of my programming projects:

  1.  When a user creates an event on a page:
    1. Does it load correctly?
    2. Does it load quickly?
    3. Does it display the correct information?
  2. If a page is to error out:
    1. Does it display a message that says we will quickly fix this issue?
    2. Does it display any coding that a user can use to hack our system?
  3. Does it load correctly on all devices? (Meaning no cut off words, etc.)
    1. Computer?
    2. Mobile Phone?
    3. Tablet?
  4. Can something be done to speed up the final queries just a little bit more?
  5. Can (2-3) users other than myself confirm that all of this works correctly as well?

If you can confirm that all of these actions pass your expectations, you will have a functional website or report on your hands.

Want to see this list in action? Check out any of our reporting pods in Car Wars, Service Setter, or any of our other platforms!

Usability: Designing with Data

Last summer, I added a fancy date picker to the top of all of CI’s major reports. This date picker included buttons to quickly access data for a variety of date ranges. This feature enhanced the usability of our software, but we recently realized a problem – the date picker was taking up too much vertical space on the top of the page, pushing each report’s meaningful data down and out of view when the page loads. To remedy this problem, we have collapsed the date picker behind an expandable button – which bumps up the meat of the report upwards a good 150 pixels when the page loads.

date_picker

This was a quick change that was really just a solution to a longstanding (and rational) complaint from our CEO about the date picker being too big. But before making this change, I wanted to track the impact the change would have on our users, so I built an analytics script that tracked how often each button was being clicked within the date picker on a report-by-report basis.

After a week of data collection, I noticed a very curious trend. Of the thirty or so unique reports that we have across our various platforms, nearly 80% of all report views were for the Outbound Activity report. The Outbound Activity report is a useful report, but is certainly not one of our flagship reports.

Even more interesting, of the people who accessed the Outbound Activity report, 65% clicked the “Day” button on the date picker (which shows yesterday’s data), and 82% clicked the “Next Range” button.

I was at baffled by this data. Why are our users so obsessed with the Outbound Activity report? Why are they clicking the “Day” and “Next Range” buttons so often?

After a discussion with one of our consultants, the answer became blindingly obvious. The vast majority of our users use this Outbound Activity report to monitor their live outbound calling activity on a per-staff member basis, ensuring that everyone is meeting their daily OB call quotas.

Not having known this, we still had the default date range for this Outbound Activity report set to the previous week. Thus, our users were (apparently every hour or so) having to load the OB report, then click “Day” to load yesterday’s data, then click “Next Range” to load today’s data. Convoluted by the fact that the date picker was about to be collapsed behind a button, I realized that the process for accessing live outbound call data in our product was not at all easy. In fact, it really sucked.

Solving this problem was as simple as adjusting the OB Activity report’s date range to default to today’s date. The real challenge in the scenario was identifying that there was a problem in the first place, and this would never have happened had I not built an analytics script to gather data on our users’ behavior.

This experiment has undoubtedly inspired me to integrate user data collection into future design decisions. Improving usability always starts with understanding the user, and I look forward to using data collection to supplement my own intuition in my journey to get inside the minds of our users.