Paying for Beta Software

After my review of Cha-Ching, the concept of paying for beta software has surfaced in my head a few times. It seems strange on the surface, but the more I let the idea marinate, the more sense it makes to me.

Paying the Bills

Traditionally, you put together an engineering team, pay the engineers to develop a piece of software over the course of months or years, and sell it at the end.

Cha-Ching Beta Message


Things changed quite a bit with Mac OS X. Because Apple gives away high-quality tools at no cost, it's possible for a very small group of people to start working with very little initial investment. All you need is a computer.

(This is, of course, how it was in the beginning of personal computing. But as software development became more complex, a small team became less practical.)

The catch is that if you actually want to finish and ship, you might need some sort of funding. Apple lowers the barrier of entry enough to put self-funding into realm of plausible, but everything moves a lot smoother with a little bit of support.

One option is to find a private investor who will pay your bills while you work on the software. In this case, you push your unpaid time into the future since the investor will want more than just the original cut back — you'll have to give up percentage of total sales and perhaps a voice in the company's direction.

In a way, this is inherently backwards because you're giving up what you were after in the first place: your own show. Giving up control of your idea might make the whole effort moot. Not to mention the challenge of trying to convince somebody who doesn't necessary "get" the Mac design ethic to part with their money.

Conundrum! How can we solve this?

Split the Difference

So if you're not already wealthy and you don't want somebody hanging over your shoulder telling you how to run your company, what options do you have?

Users can fund development, but it's not easy to get somebody to pay for something that doesn't exist. You could release an extremely stripped-down version of your app and call it 1.0, but that might send the wrong message. Those are the two extremes. What about something in the middle?

Selling a beta is a way to split the difference. With this approach, you can be clear about your intentions. Users understand that you haven't yet implemented the complete "base level" functionality, but you're willing to compensate for that by reducing the price and providing free upgrades for the 1.x series.

With this approach, developers and users both sacrifice a bit. The community funds the developer's efforts, and gets something to use in the meantime. There's some element of instant gratification, and users can feel they're helping to make something happen. Distributed funding.

I don't know how many people remember, but Apple charged $30 for the public beta of Mac OS X. That case is a bit different because Apple didn't need the funding, but the fact is they did sell software which wasn't ready to be put on store shelves.

By selling betas at a discount, not only are you funded by the people who actually matter and understand what you're doing, but you have a product out in the market much earlier than you would otherwise.

I realize not everyone agrees with this, and it's certainly not a perfect fit for every developer. But what I like about this concept is it's a creative and simple solution which doesn't involve parties that don't fit in the equation. It's at least another option on the table.
Design Element
Paying for Beta Software
Posted Dec 26, 2006 — 30 comments below




 

Josh — Dec 26, 06 2884

Great analysis! I am on the Cha-Ching team and I can tell you that this is exactly the reason we are selling it as beta. We are just like all other normal people. We have bills to pay and families to take care of. Developers like us need funding to survive while bringing great software to the people. I totally agree with your points :)

Trausti Thor Johannsson — Dec 26, 06 2886

Beta is a finished product feature wise, it just might contain bugs. Calling an application that doesn't have all features a beta is not correct.

I am not saying that you can't add features while it is in beta, but mainly a beta version is feature complete, just might contain bugs. So I don't agree fully.

Selling a beta version is another thing. What Cha ching is doing correctly is selling it at a probably 50% discount, which is nice, but it constitutes a commitment, even if he only sells one copy, he must finish the product. This is a lousy way to test the market with.

And that Apple sold beta of Mac OS X 10.0 for $30, well you did recieve a nice looking box and a CD, it was pretty much to cover the shipping and handling, totally different.

Kay — Dec 26, 06 2887

This is pretty much like what the Pragmatic Programmer folks do.

You can buy a beta book early and get a discount when the real book ships. It sounds pretty decent, if you really want to have either the book or in this case the software. Of course you have to trust the author to eventually deliver.

But if you have the trust, it's a good deal for both parties.

Don — Dec 26, 06 2891

That makes sense for v1.0 products, but I'm not sure if it holds for later versions.

Scott Stevenson — Dec 26, 06 2893 Scotty the Leopard

but mainly a beta version is feature complete
That's the historical definition, but my feeling is terms like this are really more defined by what they mean today than what they meant when the term was originally coined. The implication of beta has changed a lot, and there's no putting the genie back in the bottle.

but it constitutes a commitment, even if he only sells one copy, he must finish the product. This is a lousy way to test the market with
I bought Cha-Ching for what it does today. I don't see it as a speculative investment because, frankly it's only fifteen dollars. I think the discount is more of a concession than anything.

If it's a choice between paying for a beta or having the product never see the light of day, I'll pay for the beta. It's a way to return balance to the landscape so we're not held hostage to the whims of just the top five or ten developers.

Ted — Dec 26, 06 2894

but mainly a beta version is feature complete

That's the way I always understood it to be. Alpha = Executable and usable to a certain extent, feature incomplete, bugs galore. Beta = Generally solid, feature complete, may contain a few bugs.

The problem is that not all developers adhere to this versioning philosophy. Look at Parallels. While their betas are generally of very high quality, each beta iteration is known for gaining new features over the previous iteration.

The problem is many developers have extended beta to equal = still implementing new features, may contain bugs, and have come to lean on the "release candidate" phase, which is almost always feature complete, and exists for the sole purpose of squashing bugs before shipping.

ssp — Dec 26, 06 2895

I am with TTJ here. When hearing 'beta' I think along the lines of 'essentially finished, but potentially buggy and lacking polish'. And even with the word 'beta' being used from anything as a cheap excuse on something that has been properly released (web 2) to something that may have been considered 'alpha' a few years back, _I_'d like to keep using the word 'beta' in that traditional sense.

After all it is a useful term that makes a meaningful statement about the software. Without it – or a reasonable replacement – how can we reasonably talk about the state of software that is being development?

Kay — Dec 26, 06 2897

ssp,

FWIW I never buy software without trying it first. Normally, you'll see very soon if it is actually stable enough to be used. If it isn't, I won't buy it.

I couldn't care less if the software developer calls it alpha, beta or stable.
If it isn't working, I don't use it. If it's mostly working and I really get a bang out of using it, then I would consider paying money up front.

Especially if I get a discount.

The problem for the developer is of course to get attention. It's a lot of work to polish an application, even if it is small. The temptation to release it too early is great and if you plan on charging money for it and people get free pre-releases, then it's hard to convince them to pay money for it later. I know I react that way. Probably just out of instinct, because I tend to buy software from small developers much more than I would spend several hundreds of dollars for products.

As Scott said, it's just 15 bucks. It solves the problem. And hey, you even get more features in the end ;)

Scott Stevenson — Dec 26, 06 2899 Scotty the Leopard

@Ted The problem is many developers have extended beta to equal = still implementing new features, may contain bugs

Your comment made me look at this with different eyes. When the term beta and alpha were originally given to software, the various parts of an application were much more tightly entangled. A lot of those programs were just one big file of code.

In Cocoa, the various pieces of an app are loosely coupled, and much of the low-level parts are stock classes. You don't have to roll your own memory management, archiving, and so on. It's pretty common for the application base to be solid, but the various branches off the base are still being figured out. Particularly on Mac OS X, developers start with a general set of requirements, and allow the details to evolve as necessary.

I don't know if feature complete is really common as its own landmark anymore. The usual process is to get the core working and stable, then build off of that, adding one chunk of functionality at a time. You generally don't move on to the next feature until the current one is essentially complete. As a result, feature complete is a stone's throw from "ready for release."

If I see something labeled as alpha, I think there's a low chance it's going to work right at all, so I generally don't bother. We either need to allow beta to mean "stable, but feature incomplete" (which, frankly it is already does), or we need to invent a new term. The term alpha just doesn't cut it.

Chuck — Dec 27, 06 2901

I have always understood the difference between alpha and beta to be that alpha is basically a developer-only release — no sane person would want to use an alpha to try and accomplish anything (think the early DPs of OS X). A beta, on the other hand, is meant to be usable but not necessarily tested or completely finished (think Public Beta).

Michael Stroeck — Dec 27, 06 2902

When I read "Beta" or "Alpha", I usually understand it to mean "Read the next two sentences to see what we are talking about!" ... The terms have no strict definition or useful informational content in and of themselves anymore and standards vary wildly from one developer to the next. The proof is in the pudding: If the description intrigues you in any way, just download and try wether it does what you want it to do.

James Randall — Dec 27, 06 2904

For me it comes down to two things. The amount charged for the beta and the usefulness of the beta.

With Cha-Ching its already pretty useful and fairly stable (its not crashed or done anything weird on me) and I'm reaching my 28 transaction limit. When I do I'll probably buy it even in its beta state: even if the developers do no more work on it its worth $15.

The developers have hit a fairly decent sweetspot. If it had been bug ridden or cost $20 or $25 I probably wouldn't bother.

Frank 'viperteq' Young — Dec 27, 06 2908

I'm sorry...I have to completely disagree with having people pay for 'beta' software. I also understand the term beta in regards to software as "stable, feature complete, but may contain bugs." The reason that I left the bugs part in their is because at this point in development you have no idea how each and every user will implement your software. When you initially conceputalized the software, you came up with a workflow that you thought would solve a particular problem, but that doesn't mean that people will use it exactly in the way you intended. Hence, bugs.

Your argument that "various branches off the base are still being figured out. Particularly on Mac OS X, developers start with a general set of requirements, and allow the details to evolve as necessary." doesn't really sit well with me. If you as a developer don't know how everything is supposed to work under the hood of your software then you need to sit back, chill out, figure it out and then ship. Don't make me pay for software that you, the developer, don't don't even fully understand.

The reason developers are taking this route now is because they all want to be the next Delicious Monster. Mac software developement, while still occupying a niche space, is becoming very competitive so people are looking for other ways to get their software out to the people and get paid. The problem is guys like Wil Shipley and Gus Mueller put a lot of time into their respective products to make sure they were as solid as can be before they shipped and they didn't try to make a fast buck while doing it.

If you are a developer that is intending to go solo and you don't want to take on any outside investors, then you need to do whatevery body else before you has done: Get a job, save money, learn your code and platform and then when you have enough money that you can live off of (and operate your business) for a year to a year and half, go independant. This of course requires that you sacrafice and maybe forgo a few nice things for a few months, but in the end most things that you want to do require some sort of sacrafice.

Making users pay for software that may or may not be in a shippable state yet isn't gonna help you pay off your mortgage any faster and in fact may turn people against you and your software. Just look at Disco and the fiasco that ensued from that.....

Scott Stevenson — Dec 27, 06 2910 Scotty the Leopard

@Frank 'viperteq' Young: If you as a developer don't know how everything is supposed to work under the hood of your software then you need to sit back, chill out, figure it out and then ship
I think you probably got the wrong impression from what I said. I wasn't suggesting this is a case were things are still being figured out "under the hood" (which I'd think of as data model, persistence, memory management and so on). What I mean is what's exposed to the user at the surface (the workflow, if you will) is likely to evolve not just during beta, but throughout the lifetime of the product.

If you look at the most successful engineering organizations today with the highest number of happy users (Apple, Google), they understand that trying to figure out the details before shipping is a waste of time because the nature of successful software is evolution.

Mac OS X 10.0 is hardly recognizable as what we think of as Mac OS X today because it has evolved so much. What 10.0 did have was a solid foundation which could be built on. As far as I can tell, Apple doesn't particularly treat each major release as "done," just a station stop in a continually-moving train. The best thing Apple could do for Mac OS X is to get the first solid version out and into circulation.

The idea of perfection before shipping is, I think, an illusion. You make sure it's reliable, and polish the user-level features to 80-90%, then ship. Any more than that is a waste of time because things are going to change anyway. I suspect (though don't know) that the Delicious Monster folks that you mention would agree.

so people are looking for other ways to get their software out to the people and get paid
I don't think that's it. You learn more by releasing something solid and stripped down than holding onto your code until you reach some sort of arbitrary feature perfection. If you've ever been to WWDC, and heard a Pixar rep talk about their software process, you'll hear the same thing. You don't want to end up with a product that has all sorts of code implementated for things that doesn't matter to most people.

In fact, I bet if you ask Gus Mueller, he'll tell you about all sorts of features or polish he wanted to get in but had to draw the line somewhere to get the first version out. To you, it's (nearly) perfect. To the developer, it's work in progress. It's the classic programmer dilemma.

All of this is, of course, my opinion based on my experiences. Yours may be different.

Joe — Dec 27, 06 2911

Having shipped my first release as an indie developer today, i've also thought long and hard about when to ship my app, and whether or not to release a beta or to charge for it.

Just last week, I found out a critical bug that caused potential data loss (ouch) in certain rare situations. Out of the 40-50 times that i've tried to deliberately simulate it, i've only managed to get it to occur once.

Like what Frank has suggested, I have saved up my money, and been living off my savings for the few months that I spent creating this app (and learning about Cocoa along the way). To tell everyone on the Internet the truth, my savings are drying up, and the temptation to Just Ship It got extremely strong during the last few days.

Before I managed to find the fix for that bug, i've thought hard about whether or not to do a Beta 0.9.9 release so that I could at least get some money to tide the times, and also get some feedback from the users on that bug. Except for this last nagging bug, I was satisfied enough with the core features to do a 1.0 release.

The pros for doing a paid beta release was obvious to me: Money to keep myself alive while I aim for the next release, and get useful feedback.

The cons?
1) Because the bug could cause data loss, face the wrath of Angry Users.
2) Deal with my conscience telling me that its just plain Evil to ship something with a known bug in it. ;-)
3) Face the wrath of Angry Bloggers that will write about yet another app that slaps a beta sticker on their product and charges money for it.

Thankfully, after an entire day spent chasing that elusive bug, i've finally managed to get it completely fixed so I managed to release it today as 1.0 and not a beta.

Just a post to show the thought process of one developer...

Joe

Scott Stevenson — Dec 27, 06 2912 Scotty the Leopard

@Joe: Deal with my conscience telling me that its just plain Evil to ship something with a known bug in it

Because of the broad definition of bug, most software ships with known bugs. The only real issue, I think, is if the bug is destructive or not. If a graphic draws three pixels off, that's technically a bug but you can certainly ship with it.

This is the point at which you tell us where you find your software so we can all try it out. :)

Joe — Dec 27, 06 2914

This is the point at which you tell us where you find your software so we can all try it out. :)

Certainly. :-) If you have a Treo (or plan to have one or know someone who has one), check out http://www.funkeemonk.com/

Michael Strck — Dec 28, 06 2915

Joe,

I don't have a Treo, so I can't comment on the functionality, but judging from personal experience, you might want to lose the brushed metal look... I'm (small) part of the team that develops Vienna , an OSS newsreader for OS X. We use brushed metal currently, and about half of our user-feedback starts or ends with "BTW, you should switch to polished metal". People are beginning to find brushed metal really grating...

Joe — Dec 28, 06 2918

People are beginning to find brushed metal really grating...

I'm actually part of that group of folks now. :-) Actually, i've planned on changing the entire UI to use the polished metal look instead, but due to last minute issues, that did not make this current release. I'm thinking of basing my changes using the samples on Matt Gemmell's page at http://mattgemmell.com/source/

Apple really should make this polished metal look available in Interface Builder.

Philippe Regenass — Dec 28, 06 2919

Thank you Scott for this article. I'm currently a student and finish it in summer 2007. My dream was own little software company for Mac OS X. That's the reason why i start a jear ago with th development my own little shareware application called Luscious SMS. 01.01.2007 starts the public beta phase and also the "early bird". Sorry for this excursion.I want say with this is, I can't found software company without experience about shareware development and resulting money.
Selling Luscious SMS as beta version (reduced price of course) is a good experience for my and in summer 2007 I have enough facts to decide if I want further on developing sharware applications.
PS: I respekt the article from ThinkMac about [url_http://www.thinkmac.co.uk/blog/2006/11/grubered-what-is-beta-software.html]selling beta versions [/url]. This article was my reason to implementing Help in the first coming beta version of Luscious SMS ;-)

Scott Stevenson — Dec 28, 06 2920 Scotty the Leopard

Apple really should make this polished metal look available in Interface Builder
This sort of thing would typically only happen in a major OS release. You could request it for Leopard using the bug reporter.

Ryan Perry — Jan 02, 07 2981

Hi Scott,

As a newer, indie developer of Mac software, and as a developer with a few years of experience working for software companies in the bootstrapping process, I want to voice my agreement with you.

It's very difficult to predict exactly what the needs of your users will be without feedback from your actual user base. And if you haven't released something, then you have no user base to speak of. Thus it's important to get the software into their hands as soon as possible.

As for asking users to pay for pre-1.0 software, the fact is that if a user doesn't feel comfortable doing that, they won't do it. Only users who are ok with potentially buggy or incomplete software are going to give you money for it. The choice is entirely theirs. As long as you're making sure that the software isn't going to damage their environment, and that the user is well-aware of the incompleteness of the software, then everybody involved in the transaction is getting what they expect.

Finally, as others have noted above, the relationship between the user base and the software company is a symbiotic one: they must take care of each other, or else they both lose. Offering a discount on pre-1.0 software is a good way for both parties to help each other out during the infancy of a company or project. The early user feedback helps the company make sure they're creating the software that the users need, and the early income helps the company defray the cost of bootstrapping.

P.S. - Thanks for the great sites you've put together for the Cocoa community.

Stephen — Jan 03, 07 3002

Joe: I'm glad you commented here, otherwise I might not have found your application which is something that I've been needing, because I do like to store these chat logs, but it bogs down the Treo messaging app. If you accepted paypal payments than you'd have my money now, but if things keep going well with this app you'll be receiving my money anyhow.

Bill Coleman — Jan 03, 07 3012

Years ago, someone proposed the following definitions:

Alpha = Software that is feature complete, but has not completed QA, so it may have bugs.

Beta = Software that is feature complete, has been through one QA cycle, and has no known bugs.

I have yet to see a development effort that kept pace with those definitions. Usually, there's one or two late features that haven't come in by the time planned to declare Alpha, and there's lots of bugs (and maybe even a couple of missing features) when it comes time for Beta.

If developers could keep with the above definitions, we'd see no grief with distributing Beta software, even for a profit. The real issue is short-cycling both the development (eg QA) and the revenue cycle at the same.

Bret — Jan 03, 07 3018

Ehh... what I'm using is something like this:

concept: No code written yet. Sketches, outlines, desired feature lists and vague ideas are all that exist yet.

delta: Does not work at all, due to large missing chunks. Might not compile.

alpha: Kinda-sorta works. Not feature complete. Usually very buggy; most user scenarios have not even been run yet.

beta: Basically works. Mostly feature complete; but there could be some stragglers that come along later. Still quite buggy, and is in the QA cycle. Bugs still contain crashers and show-stoppers. All intended user scenarios have been run at least once.

gamma: Works. Feature complete. Few bugs, no known crashers, no known show-stoppers. All intended user scenarios have been run multiple times.

rc (release candidate): Same criteria as gamma, except it's been thru more QA cycles, and no new bugs are popping up. All non-show-stopper bugs that will be fixed for this release have been fixed.

gm (golden master): The final version. With the exception of the version strings, it's a binary copy of the last rc.

________________________________________

In general, I probably wouldn't be comfortable charging too much $$$ for my definition of beta... I think I'd probably want to make it optional at that stage; but required (with an escalating size of the requirement as the project developed) at the gamma stage and later. I'd also do it so that beta/gamma participants contributions made for a discount off of the final price (umm... perhaps for every $1 contributed, you get $1.50 or $2 off?).


P.s. - yes, I do know that delta comes after gamma in the greek alphabet.

Sean — Jan 04, 07 3031

I don't pay for beta products! Especially since x.0 products tend to be beta anyway. A lot of developers are using their public as paying beta testers anyway. I'm talking about big and small, software and hardware. Gone are the times when a products ships with very few problems. It upsets me to no end that people are asking users to test their products for pay.

My understanding of alpha and beta terms goes along the lines of what the majority of people have commented here. Perhaps developers need to re-educate people on a grand scale of the "new" defitions of these terms, or as Scott said, invent something new...

Joe — Jan 05, 07 3047

To Stephen:

Thanks for the interest in my app! The only reason why i'm not supporting PayPal payments is because eSellerate charges a *huge* commission just for processing PayPal payments. :-(

Things are going great on the development-front now and i'm currently on schedule on making a 1.1 release before the end of the month.

Matthew — Jan 05, 07 3058

Hi Scott,

As a software consumer, I'm totally behind the notion of "funded beta's." For this reason: a funded beta from a legitimate coder(s) has a better chance of reaching its full potential and, perhaps more importantly, it helps to ensure that the application stays on the market.

A very important point, however, hasn't been emphasized to this point (not that I could see, anyway).

All of the pay-for beta's I've run across also offer a free trial of one sort or another. Perhaps it's time-limited, perhaps it's feature-limited, maybe it's use-limited, but the consumer can at least try beta software to determine whether or not it's suitable to their needs.

No one loses.

Mark — Jan 14, 07 3227

Remember that Apple offered $30 off of the purchase price of Mac OS X 10.0 to those who had purchased the beta, so it was more than just paying for a fancy box and shipping & handling.

Joe — Mar 02, 07 3668

To Stephen: I just added PayPal payment processing to both the embedded web store and the web store for FunkeeStory. :-)

I have made a mistake by misreading some of the eSellerate FAQs and thought that they charged a commission on every PayPal transaction (like i've written earlier). This is untrue.




 

Comments Temporarily Disabled

I had to temporarily disable comments due to spam. I'll re-enable them soon.





Copyright © Scott Stevenson 2004-2015