The art of dating
Ok, so this title is a ‘little’ misleading, or is it?
I want to share something about formatting and presenting dates. For my Android app, I need to show the user some dates. And that is where the trouble begins.
Let me explain.
My medication reminder app shows a list of alert moments for the next few days. Sounds simple, but how to go about it? Some constraints:
- The list is finite, only alerts for the next few (max 7) days are shown.
- The list is ordered, by date and time.
- Users should be able to grasp the information in a few seconds. Less thinking is better.
- Users only want to know when to their next medication moments are!
- It’s for a mobile app, so potentially users from all over the globe.
- All of those users are in a hurry.
How to decide on the date format
How hard can it be? Just show a list, order first by date, then by time, showing how many of what medication the user should take. So I start out by displaying dates as ’09/16/2011′. That isn’t always very clear. Especially for dates such as ’09/07/2011′, is 09 the month (September) or 07 (July)?
To prevent misunderstanding over which part is the month part and which part is the day part, spell out the month like ‘September 16th, 2011′. Looks better doesn’t it? But does this really fit the users mental model? It probably does when you’re making a dentist appointment for over 2 months. But for this app the user is more likely to think in terms of Thursday or Friday. So, add the day and I end up with ‘Wednesday September 7th, 2011′.
Wow, wait just a minute! That is a lot of text. Does it fit on the screen of a mobile phone? Do users really need to read all of it? Users want to know when it’s time to take their pills not read a book. I really need to cut down on the prose.
Is the year (2011) needed? Let’s see, the users will most likely be interested in medication moments between now and a couple of days. (Besides that is what my group of test users told me.) So, remove the year and while I am at it, I am removing the month as well. See how that works out. Now the format is something like ‘Friday the 16th’ and ‘Saturday the 17th’.
It’s starting to look better and better. Can I also safely remove the 16th and 17th? What happens if I do?
The alert list only shows the next seven days (starting today), so there should only be one Monday, one Tuesday and so on in the list. So, I can make things easier and shorter by just showing ‘Friday’ and ‘Saturday’ etc. So I have gone from ’09/16/2011′ to ‘Friday’. I need to code less, the users need to read and think less. Everyone wins.
Or actually Done wrong!
Test with users
So far, this has been a mental and logical exercise. My users should be happy, but my test users were not as excited as me! To be honest I’m starting to feel more then a little stupid by now.
I need to check with more ‘normal’ people.
They are right of course. If it’s Friday 9 o’clock in the morning, today is today and tomorrow is tomorrow. It takes more brain processing cycles to think of today as Friday or Saturday.
My test users made sense (at least to me), so I will use today for today, tomorrow for tomorrow and the rest of the week can be regular Wednesdays and Thursdays. Sound logical when you write it down, doesn’t it?
The end result now looks something like this. Personally I am happy with it and my users tell me they are as well. But who knew I had to think so much to make my users think less.
My lessons learned?
- Always (and I mean always) test with real users!
- Take the users mental reality/expectations into account.
- More user testing.
- Less is probably always better. Less reading, less thinking. And hopefully less coding.