Dig Deep Fitness And Unique Application Usability Testing

Posted March 3, 2008 at 3:06 PM by Ben Nadel

Tags: ColdFusion

Over the last couple of days, I have taken Dig Deep Fitness, my iPhone fitness software application, and actually tried using it during real workouts. This was a very interesting experience - it's probably the first time that I have ever truly field-tested an application. In the past, I have tried to mimic what I thought an "end user" would do and I have given demos of software and web applications and I have tried to create highly usable web interfaces. But the truth is, unless you try and use a product as a real consumer, you can never really get a good feeling as to how it will be used. There are just too many contextual issues that can only be felt and experienced by a true user in a true using environment.

For a contextual example, using the Dig Deep Fitness iPhone fitness software in the gym is not just about "using" the application. In fact, a lot about the context has absolutely nothing to do with the application at all - it's about what clothing I'm wearing, it's about how fast I am going through my sets, it's about how sweaty I get, it's about what kind of machines I am using (and do they have shelf-like areas), it's about the level of conversation that I need to keep up, it's about how many smokin hot girls are in the gym (making it hard to concentrate), it's about what exercises I am performing (and is my phone in danger of being damaged), it's about how winded I get (and how much I need to catch my breath between sets).

In short, 50% of the application's usability has nothing at all to do with the application. Never before, as a web developer, have I ever even thought about approaching usability from this standpoint. And, I am not saying that it is even always an option; right now, I just happen to be in the highly unique situation where I am both the developer and the target audience. I'd say this is extremely rare and therefore is not something that can be achieved elsewhere. Sure, you can do usability testing with real test subjects, but even that is in a test environment that maybe nothing like a user's real environment.

That interesting perspective aside, there are a few things about the actual iPhone fitness application that do actually involve the web application itself. The biggest points of friction that I encountered are:

  1. The keyboard. Typing on it is a pain in the butt! Most of the time, I need the numeric keyboard and it defaults to the alpha keyboard. This requires an additional key press every time I want to enter weight or rep data. And, with every set containing both weight and rep values, this is a lot of extra typing on a keyboard interface that already suffers from usability issues.
  2. The select box. When selecting your next exercise to perform, you have the option to select an existing exercise from a drop down box. This box is very small, is not usable for long lists, and make reading long-named exercises very hard (if not impossible).

I see that I have to replace that drop down box with a list of exercise links that can allow for full screen "flicking". This will take care of that point of friction (I believe). The keyboard issue is a bit more complex. After some Googling, I am not seeing any way to default to different flavors of the keyboard. I might end up having to change the way weights and reps are being entered - maybe some sort of HTML keyboard or convenience links (ex. +5 lbs, +10 lbs).

This was definitely an eye-opening experience; it makes me wonder about what other things that I've built that I thought were good but, unbeknownst to me, ended up causing much more friction that I could have imagined. It just goes to show me how hugely inadequate we, as developers, are as "test subjects" for the software that we build.




Reader Comments

There are no comments posted for this web log entry.

Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
May 20, 2013 at 4:38 PM
Using A Dynamic Column Name With ValueList() In ColdFusion
@Dana, Your confusion is well founded, since this is a very confusing features. In fact, it ONLY works if you use array notation. Meaning, that this: arrayToList( query[ "columnName" ] ) ... read »
May 20, 2013 at 4:34 PM
Using A Dynamic Column Name With ValueList() In ColdFusion
I was thinking chicken and the egg, I wouldn't have expected it to work in the valuelist going in I guess. Maybe I just need a beer, long day :) ... read »
May 20, 2013 at 4:29 PM
Using A Dynamic Column Name With ValueList() In ColdFusion
@Dana, That's if you're trying to reference a specific row. In this case, we're trying to reference the entire query column as one cohesive value. So, you are correct that if you wanted to output a ... read »
May 20, 2013 at 4:24 PM
Using A Dynamic Column Name With ValueList() In ColdFusion
I thought when you used array notation to reference queries you always had to have the row or it would throw a similar error as well? ... read »
May 20, 2013 at 11:45 AM
Using jQuery's Animate() Step Callback Function To Create Custom Animations
This is really useful. I found out that you don't actually have to use a dummy css property (surprisingly). To animate a property in a linear-gradient for instance I did this this.css('someLinearGra ... read »
May 20, 2013 at 10:51 AM
Using A Dynamic Column Name With ValueList() In ColdFusion
@Josh, Oh snap! You're totally right! I'm not sure I've ever tried that. I did know that you can call a number of other array-methods on ColdFusion query columns: http://www.bennadel.com/blog/167 ... read »
May 20, 2013 at 10:45 AM
Using A Dynamic Column Name With ValueList() In ColdFusion
@Ben - I believe you can achieve the same functionality with ColdFusion's built in ArrayToList() function. ArrayToList( users[ "id" ] ); ... read »
May 20, 2013 at 10:21 AM
My Experience With AngularJS - The Super-heroic JavaScript MVW Framework
Is there any error logging and handling framework in angularjs, if not then in what way I can do this. ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools