Let's face it, we're programmers - we think about code - wonderful, beautiful, well-tabbed code. The biggest problem that we face is in our applications is that our target users are not programmers and they don't think about code at all. The only thing that they think about is what they can see and feel, which is of course, the user experience. Even when you are using something as powerful as Interface Driven Architecture, it is not always possible to really put yourself in the user's shoes; it's not always possible to experience the application in full-on "use" mode. And so, it is hard sometimes to predict where small interface tweaks will result in a huge gain in usability.
Yesterday morning, I wrote about a small interface tweak that I made to Dig Deep Fitness, my iPhone fitness application. The update was very small - I was able to default to the numeric keyboard when entering exercise weight and rep data. Once I figured out how to do this, the update to the software took all of two minutes (include the FTP time). Like I said, a microscopic change.
Yesterday afternoon, I took my iPhone to the gym and tried tracking my workout with the updated interface. After just the first set of the first exercise, I already felt a huge gain in usability in the application. While the interface update merely removed one single click from the workflow, it felt like so much more. Suddenly, the interface felt tailored to my application - it felt as if it were built for my use-case. With the removal of just that one click, I bet it decreased my data entry time by at least a third. I know that sounds crazy, but it's true. Or at least, it is perceived by me to be true; and, really, from the user experience standpoint, that which is perceived to be true IS true.
So, nothing revolutionary here, just a reminder to be always always always be thinking about the user experience and that changes that seem small and insignificant to you as a developer might seem huge and revolutionary to the user.