Some Lessons Learned From My Pet Project - Beem
As any other developer, it is fairly normal to maintain a pet project, or so I believe anyway. For me, this is Beem - a streaming client for the popular Electronic Dance Music service DI.FM. I started it a while ago and as of now, it became the de-factor client for the service I am connecting to on the Windows Phone. In this article, I tried to highlight some of the moments that I learned that might (or might not) help Windows Phone developers.
Feedback - Make it easy for the users to reach you
Believe it or not, but a lot of users actually intend to spend some time to give you feedback connected to the application you're building. It might be different - someone might be writing thank you notes, someone else might be reporting a bug and someone else might be asking for new features. In Beem's case, over the project lifespan I received hundreds of emails that helped me make the project what it is today. As a matter of fact, Last.fm integration that is present in the latest build was a suggestion by an active user - I personally don't use Last.fm much, but found a reason to dig through their API. I love learning new things, so putting something to use that would make someone else's life easier - why not.
That being said, make sure that the ability to provide feedback is always within reach. For Beem, all you need to do is open the About page and you'll see a button that allows anyone to send an email marked as feedback directly to me.
I try to respond to those as fast as possible, which, to no surprise, can transform new users into long-term users. Rating and reviews are also your primary source of feedback, so make that option accessible, preferably somewhere close to the "send me an email" feedback option. Not everyone will take the time to look up your application once again in the Marketplace to rate it or to hold it's entry in the App menu.
Little things make the project stand out
Going back to the fact that I implemented Last.fm integration, it is a fairly small component of a much larger machine that is Beem. However, it is something that makes my application different from the official client on iOS and Android. Even if there will be an official Windows Phone client. chances are they will not have neither Last.fm scrobbling, nor SkyDrive backup capabilities for the recorded audio sessions (just throwing this out there - no guarantees this won't happen). Will there be competition for it? Most likely. Will I have something to say when asked "Why should I download your app instead?" The answer is yes. Make sure that your application is unique not only through its design, but also through the offered capabilities.
Find your niche (audience/app category)
Almost every app in any marketplace has a niche, covering a specific target audience or functionality set. For Beem it is EDM and a dedicated client for DI.FM. To this day, there are no other applications that are specifically built like it in the Windows Phone Marketplace, and that's a good thing for a developer, as I am able to build a fairly solid user base.
Building a unique application does not necessarily require the developer to fit it in a niche - maybe there isn't one yet. However, if that's not the case, you will most likely hit a greater success rate if you compliment the mobile OS and not try to replicate existing functionality. In two words - add value.
Let the press (blogs) know
And by that I mean start with your platform-based resources, such as WPCentral. Most of them have a "Contact Us" page where you can do a quick description of your app announcement and plug the application link. From my own experience, this drove the download numbers up for the day when Beem was featured on the home page. Shameless self-promotion? Not really. Too many times I stumble across a great app or game in the Marketplace only to realize that it wasn't covered or highlighted anywhere, therefore losing potential users.
Also, do a Bing search from time to time to find out where the buzz is about your application - in a lot of cases a story gets picked up from a source to another, so reading through the comments on a variety of sites that cover your app might offer you some insights into what you might work on.
There will be negative reviews
Some people will just not understand the purpose of your application.
(seriously, does Electronic Dance Music, or DI.FM sound anything like that?)
As a sidenote to this, make sure that you are explicit about how some of the features work. Beem supports "SkyDrive backup" and a lot of users automatically assumed that the backup is automated (it is not). I've received more than a couple of emails informing me of the "bug" when in fact it all works as it should.
Others will leave you guessing as to what's missing in their experience.
If you have a quality product, at the end of the day the number of positive reviews will outweigh the negative ones, so keep working at it.
There are always things to improve
Don't just drop the application in the Marketplace and expect it to become a self-sustaining entity. Services change and break, users demand more and the OS capabilities are improved and extended, and you need to keep up with all that. Frequent updates are good. Don't wait for the next big release for bug and experience fixes. Fix + Add + Release.
Marketplace crash reports are there for a reason
Don't just rely on the bugs submitted by your users. Log in to your dashboard and download the existing crash reports associated with your application. The stack trace is, in most cases, explicit enough for you to figure out the source of the problem. Don't underestimate the importance of this resource.
Get a pet programming project. Also, user feedback is one of the keys to your app's success.