Releasing a public beta of your application

Take what I’ve posted here with a grain of salt: it’s June 2009, and Hyperspaces has been in beta for close to 6 months. Life tends to happen, and I’m sure my users are happier that I chose to give them something to play with. I’ve learnt a lot about the process though, which I’ll blog about at some point.

With the Hyperspaces public beta coming quite soon, I’ve been thinking about how to release beta software, and when it’s appropriate to do so.

My previous piece of software — VirtueDesktops — had eternal beta syndrome (EBS). Hell, while I was running the project I’m not even sure I’d have called it a beta knowing what I do now. This was a huge fucking mistake. And it showed. Users got awfully upset, and the only reason I got away with it was because I didn’t charge anything for the software.

1. Release your beta when you have weeks left until release — not months

How often do you download a great new piece of software that’s in beta, and then spend the next 6 months waiting for it to become stable enough for daily use? Seriously, if you couldn’t realistically release a bug-​free version of your software within 4 weeks of putting out your public beta — hold off and get your software to a point where you can!

2. Protect your reputation above all else

I believe the most important thing I have as a developer is my reputation. Skills, languages and patterns can be learnt — reputation is something that has to be earned, and is really hard to rebuild if you damage it. In my experience buggy releases or a constantly “in-​beta” product are two of the fastest ways to cripple your reputation.

3. If something goes wrong — make sure the user can let you know as easily as possible

This applies regardless of the release status of your application — if something goes wrong, the user will only let you know if:

  1. The error really pisses them off; or
  2. It’s incredibly easy to do so

I generally believe in collecting as much information as possible and automatically posting this back to your servers — this way, you don’t need to ask the user to root about in their Library folder. If you’re going to do this, make sure you let the user know exactly what’s happening!. When I was coding VirtueDesktops, I used Unsanity’s Smart Crash Reporter — and was quite happy with it. I’m still not sure what I’ll use for Hyperspaces — APE is out for Leopard now, but it’s not out of beta yet.

Conclusion

Don’t release your software before it’s ready, and make sure it’s easy to report errors when they happen.

Comments

Gravatar for Mark Allan.

Very good advice there. Some­thing that a lot of devel­op­ers would do well to heed (myself included!).

The only com­ment I’ve got, and I really hope it’s not too late, is to request that you steer clear of APE and hax­ies. I don’t trust that soft­ware. If you do end up using it for bug-​reporting, please can you make it optional so that I don’t have to require APE in order to use Hyperspaces?

Posted by Mark Allan on

Gravatar for Tony.

No, not too late at all Mark — I know the stigma attached to APE, and I don’t want it to impact on sales of Hyper­spaces. I’m happy to head down another path, and have already been doing some research.

Do you have any sug­ges­tions for crash and error report­ing classes?

Posted by Tony on

Gravatar for sjk.

Noth­ing against Unsan­ity, but I don’t want to run APE so add my vote for mak­ing SCR usage optional if you choose to use it.

Posted by sjk on

Gravatar for Tony.

I’ve cur­rently inte­grated Uli Kusterer’s (http://​www​.zathras​.de/) crash report­ing class, which works quite nicely. No APE being used.

Posted by Tony on

Gravatar for sjk.

Until I ask Uli, do you know of any apps cur­rently using UKCrashReporter?

Posted by sjk on

Gravatar for Tony.

@sjk: No, I don’t know of any that make use of UKCrashRe­porter off the top of my head. I’m com­pletely open to sug­ges­tions for other approaches to this, it’s just what I’ve put in place right now.

Posted by Tony on

Gravatar for sjk.

I like NetNewsWire’s sim­ple crash reporter, though it doesn’t allow input of addi­tional infor­ma­tion so some­thing like that might not serve your purpose.

Posted by sjk on

Sorry, this conversation has finished.

This post is a bit old now, so I've closed the conversation. If you're keen to keep talking about it, please email me directly.