I was listening to music on my iPhone while reading over the release notes for the iPhone SDK 3.0.  A cool track came on, one that I hadn’t listened to in years, and hearing it prodded me to “tweet” about it because I wanted to recommend the band to some friends.  At the same moment I was reading about MPMusicPlayer, which third-party iPhone apps can use to access and play music from the iPhone’s music library.

This coincidence lead me to think: “It would be cool to have an app that would automatically tweet what you are listening to so you could share the music you like with your friends with zero effort“.  This is how I’ve found almost all of my favorite bands, via suggestions from friends, and I thought it would be trivial to build an app to automate the process.

So I started sketching out the simplest app possible to do just this and threw together a few UI designs.  Functionality-wise I settled on the idea of a player that just shuffled the entire library, with the only control being the ability to “reject” a track that you don’t want to hear at the moment.  It was around this time that it occurred to me that the app should have a way to remember what’s been played (or skipped), because there wasn’t any point to tweeting about the same song twice, right?

I even came up with a clever name, “Shufflito“; the first time I had the name for an app before any of the code was written.

I selected the easiest design to implement and built a prototype just to get my head around the parts of the SDK related to playing music from the library.  It was around this time that I described the app to Jamie.

She loved the idea (at least part of it). 

She was completely uninterested in the twitter-related aspect of the application, but loved the idea of a dead-simple player thatnever plays the same song twice.  After trying to explain why that was insignificant compared to “the marketability advantages of implementing functionality that leveraged social networking” she told me (to paraphrase) “just build the player part andget it out there before someone else beats you to it“.

She’s usually right about this kind of thing, and since I already had a working prototype, I decided to run with it.

Somehow I was able to convince Jamie to design the icon for Shufflito as well and it turned out beautiful.  I then attempted to convince/bribe/cajole her into re-designing the icons for all of my previous apps and was summarily dismissed.

There were (and are) some significant technical challenges involved in implementing the app the way I originally envisioned it, but through a combination of diligent hacking and pruning of features a “release candidate” build was ready after about two weeks of coding.

During this time I was sure to “eat my own dog food“; primarily to test the reliability of the app but also to get a feel for the usefulness of the concept.  At first I had my doubts; but as testing wore on I began to enthusiastically agree with Jamie’s assessment as to the value of such a simple application.  This lead to a few additional “tweaks”; some which made it into the 1.0 release and some that will be coming along shortly after.

The moral of the story here is to solicit feedback early in the development process.  In most cases, developers are not representative of the audience they are targeting (with some exceptions) and try as we might, we can’t look at an app (especially our own) with the objectivity that a non-programmer can. 

In this example what was considered (by the developer) to be the most “beautiful” part of the app didn’t even make it into the final release (in filmmaking this is sometimes called “killing your babies”).  This would not have happened without honest, trusted and direct feedback from the outside of the development process.  This sort of feedback is hard to come by and if you have relationships that provide it I highly recommend you cultivate these connections. 

Was this decision successful?  In the financial sense it’s too early to say, but form my personal sense of Quality the results have been very satisfying.

Shufflito is available now from the iTunes App Store.  You can find out more about Shufflito and other fine iPhone applications at http://www.gullicksonlaboratories.com