Seth Godin says:

The people who make desktop software are making themselves obsolete. When you start developing on the web, your default is to be smart, to interact and to be open (with other software and with your users). Desktop software (like Word) is insanely unaware of what I do, why I do it and who I do it with. Right now, the desktop folks have the momentum of the incumbent. Not for long. Time to hurry.

As a web developer, I know that there are numerous technologies out there that can make the web feel more and more like a desktop app- some like Adobe’s AIR and Appcelerant’s Titanium provide an actual desktop app that use web markup and coding to create a desktop application. That’s fine- but I don’t subscribe to the new ‘Web is the OS’ movement. I work on my desktop and there is a real difference between the two. At the simplest, my desktop is usable no matter what happens online. If a website I use goes out of business, gets shut down, decides they don’t like me anymore, etc., I’m sunk. I can’t use that anymore. And anything ‘saved’ on their sites is just gone.

But I digress. Seth is right in that it’s odd that apps I use on my own computer know me less than a lot of websites I use. One reason for that may be that on a website, you try to customize the experience for user because you want something- more users or more money. So the data and personalization goal is to drive revenue. You are hoping that if you create a great experience the user will continue using the app.

A desktop app is either:

  • Free : you’ll never get any revenue for it
  • Shareware : the user has a short time to decide to pay or not. Most of the time they will not have enough time to put enough data in for it to show whether it will personalize things or not.
  • Commercial : the user has already given you money. There may be hope that they will upgrade when it’s time, but those upgrades are usually driven by a need for a new feature- not because the app is so fun to use or personal for the user.

But a web app usually has a free model to attract eyeballs or a monthly payment system. Everything depends on people coming back while a desktop app developer may not care whether a paying customer ever uses their app at all.

Why should your app be different?

If you’re making a free, open source app, that changes more than just the initial ‘price’- your upgrade model is different too. As long as your app is useful, there’s nothing to stop users from getting the latest version. If they like what they’ve seen so far, why wouldn’t they upgrade? If the app you’ve created gives them the personal experience that just makes their whole desktop come alive for them, they’re going to talk about it with those they know. They’re going to start talking about you.

When they do that, you’ll have created a reason not just to use your app, you’ll be making the whole Linux community a better place because your app is there. Face it: Apps drive adoption. A stronger Linux community will depend not on the kernel but on the apps that are available to users. Make yours personal.

Two Goals For Your App

  1. Keep track of what users do and when they do it. One of the things Seth mentions is his contact list and how it would be nice to sort that based on when they were used or maybe the frequency of how often they are contacted. To do either of those your app needs to save data on how often and when contact is made. Store what actions are taken, who they involve, how many times they happen, when the last one was, when the first one was.
  2. Alter your app’s behavior to take advantage of the data. Offer new sortable columns if that applies. Highlight certain things differently based on age. If you see certain things happening on a schedule, have your app offer to do it automatically or create a toolbar button to easily perform that action. Making an app isn’t about collecting data- it’s about applying it. Every screen and button in your app should be aware of who is using the app.