However, I feel it has the potential to be so much more if Apple would just implement what every Mac developer has been asking for since day one. - Dan Counsell
I feel like we see this kind of request a lot: if Apple would just do this one thing, we'd be much better off. Paid upgrades, a better App Store rating system, better search, better analytics, access to customer info, free trials. Something Apple could do to make our businesses more successful.
They could add paid upgrades on the Mac App Store if they wanted too. They won’t unless we bang the drum loud enough and make ourselves heard. - Dan
Dan argues that free upgrades for life isn't a sustainable business, and I completely agree on that point. But I disagree that the solution is in asking Apple to implement paid upgrades. I don't think paid upgrades would help us build sustainable businesses, at least not in the long run.
Instead I'm focusing my efforts on what I can do today with my business to make it successful, without relying on convincing Apple of anything. I think we have many options available to us, but lets explore the world of paid upgrades first.
A World with Paid Upgrades
Dan makes a compelling case for paid upgrades:
That's a nice spike in upgrade sales, followed by an long-tail of increased sales. What's not to like there? My issue with this model is that it isn't reliably healthy. You need to keep releasing paid updates to see these spikes, otherwise your sales will diminish back down to unsustainable levels. The beginning of Dan's chart is after four years of RapidWeaver 5 sales , I'd venture this chart will look the same after a few years of RapidWeaver 6. It's all about the spikes.
A sales model based on upgrade pricing relies on convincing your users that the new version of your app is worth more of their money. As a developer you now have to hold features back. You need to create a big enough splash with each major update to convince existing users to hand over more money, and hope the temporarily increased press coverage will attract new users to look at your product.
Over time this is going to become more difficult as your existing versions are going to be become "good enough" for most of your customers. There is a limited quantity of awesome new features that everyone cares enough about to pay for.
This has already been played out in the software world.
Look at Windows: Vista jokes aside so many people stayed on XP because what they had was "good enough". They didn't like change, and they certainly didn't want to pay money. It got the job done just fine despite how much better their tech-support laden daughter swore Win7 was. Likewise, when was the last meaningful update to Microsoft Word for most people, 2000? Microsoft had to keep inventing awesome new things (remember how the Ribbon UI was the headline new feature?) to try to attract users into spending money again. They had to mostly rely on the fact that new PCs didn't ship with Word so users would have to buy a new copy. Or look at Photoshop, the big-daddy of expensive upgrades for our crowd. I didn't really have a compelling reason to pay for an upgrade after CS 3 back in 2009.
Eventually, after some number of releases, your previous release will be "good enough" for a lot of your users.
To combat this you're going to try dramatic new things (see: Ribbon UI) to appear new-and-shiny to users. You're now invested in making big splashes vs small incremental changes and quickly adapting to user feedback. This can be very dangerous as users hate change, and you can easily become out of touch with users when spending a year+ on a new version before they can use it.
Some users will just start ignoring the paid upgrades you're releasing, and that's OK as they're content on version 2.5 of your app. But if you don't balance the frequency / features of paid upgrades right you risk pissing off your users that do still need more features. They feel like they just paid for your software, or perhaps they feel like they've already paid you 4 times and now think you're being greedy.
Dan waited four years to ask his users for more money. I'd venture that was long enough to avoid annoying users, but in the mean time his revenue suffered. He had to bet his business on the fact that his upgrade would drive enough sales to recover. It's the same as launching an app for the first time, and he'll have to keep doing to to stay in business.
The appeal of a model like this is that a user will hopefully upgrade at least once, even if it is after skipping 3 of your paid upgrades, so your revenue per user is going to go up vs free upgrades.
I think there are better ways to approach repeat revenue, though, that don't put your marketing efforts at odds with what's good for the user.
There is one thing we can't escape: most users still can't seem to understand why the software we make has value / is worth their money. So why cater to them and lower our prices to a threshold that we hope is low enough to still get them to buy? We may blame Apple for this, but it's existed for a long time.
When I served my time in the trenches of Circuit City customers were floored when they realized they had to pay for MS Office, which was $150 at a minimum when using a student discount. Most who needed it were parents of a soon-to-be college student so this should be a no-brainer, their child would be using Word near-daily for four years. But they expected Office to be free, and boy was it a hard sell. Most customers ended up not buying Office as it just wasn't worth their money; that Open Office that came installed on the PC was probably good enough. Either that or they'd turn to piracy.
Software's lack of perceived value holds our businesses back far more than App Store shortcomings do. And I don't think the customer perception is invalid -- what we create just isn't worth it to them. Welcome to the mass market: just because we spend a year working hard on our software doesn't mean the market will, or should, place value on it.
We need to take a step back and remember that while we're the kind of people that love paying for updates, both to support our peers and get the latest-and-greatest, a large part of our market likely isn't. We can try to fight this perception of value, but honestly I think it's a losing battle.
So how can we increase the revenue of our product when users don't value our software?
Sell a Service
Plenty of apps out there already go this route. Runkeeper / Strava / Evernote / Dropbox don't charge for their software, but instead they charge yearly for the premium features their users are going to want.
Services and premium features, now those are things users understand. Runkeeper Go helps runners schedule their run around the weather forecast, live broadcast their races to Facebook for friends to see, and gives them advanced fitness analytics. Each of these features could have easily been a major headline to a paid upgrade.
A subscription doesn't have to rely on locking out arbitrary features following a freemium model, it can be a content-based service. One of my favorite examples is ForeFlight which charges pilots $75+ a year to have up-to-date digital maps on their iPad. The app is free, but it's useless without a subscription. Microsoft and Adobe are releasing products under this model, too. There is no free or pay-once version of Photoshop on the PC; it's part of the Creative Cloud subscription. Note you'll face more challenges putting your software behind a paywall like this: unless you have brand recognition or some kind of niche group that needs your product, it's hard to pull off. But if you have the right target market (like pilots sick of lugging around maps and airport directories) this is a very viable strategy.
When you have recurring revenue, gaining a customer isn't a once-and-done payment where your success is based on volume of sales, slowly saturating a market. You don't need to find a reason to change them an upgrade fee two years down the road when your sales diminish from saturation. Revenue isn't rebuilt from scratch every day, it's a snowballing effect where every new subscriber will likely increase your revenue for the foreseeable future (as long as you keep providing value).
Your motivation to update your software is directly tied to keeping your paying customers happy. It's a healthy relationship.
Basing your revenue on a service instead of app sales has another benefit specific to the App Store. While the App Store Review Guidelines prohibit timed trials and demos for the app itself, they don't prohibit timed trials on features that are normally part of and in-app purchase or subscription. You can give your users a limited taste of what your premium service is like before charging them, making the sale much easier.
There's one last benefit: human psychology. It's much easier to convince someone to pay $19 a year than it is to get them to buy a $39 piece of software once (see: cell phone subsidies, inkjet vs laser printers). This is part of the idea behind paid upgrades, but in this case users know what they're getting into. That's extremely important in how it relates to the long-term relationship you have with your customer. Since they understand they're paying a subscription for an ongoing service, they won't start feeling that you're being greedy after the third time you ask them for money.
I'm not being an absolutist here. I don't think services are the only way to sell software.
There are plenty of software types that will have a near-impossible time selling themselves as a service. You might be able to find a way, but I doubt a tip calculator would do well as a service. You probably wouldn't be investing a lot of time in updates to a product like that, either.
Services aren't easy, either. Offering one relies on finding a market that places an ongoing value on what you offer, and has money to spend. Then you've gotta build the right mix of value vs price. Like Dan said before: turn the knobs of what's free and what requires a subscription wrong and you'll fail with nobody buying subscriptions. It's a hard balance to find.
Business is always tough, though.
I believe that while paid upgrades are a fondly-remembered concept, most developers would only be able to reap the benefits of paid upgrades once or twice over the lifetime of a product, if that. I don't think they're a wrong way to do business, but I don't think they're that awesome either. Paid upgrades will earn some extra money with their sales spikes, but that has diminishing returns and doesn't equate to making our businesses sustainable.
The only solution is to adapt to market demands and work within our limitations. Every market is different, keep experimenting and find what works for you. Your odds of success will be much higher than banging on some drums demanding someone else to helps you out.