So you’ve built the next killer app, and it looks and feels and works exactly how you dreamed, designed, planned and sweated to make it. Even the non-programming stuff is as brilliant as you can make it, the web site, the artwork, the documentation and the press goodies. As far as you are concerned, it’s ready to ship - and real developers ship after all.
Not so fast, bucakaroo! Best to beta test first.
Beta testing the the practice of putting your blood, sweat and tears up for critical assassination and teardown by an inveterate mob of opinionated people you trust to give it to you straight.
Its hard to put yourself out there like that, to face the criticism and the comments and the differing opinions. Especially when the work you have done is so good, that obviously they’re all just going to love it.
And when your beta testers come back so quickly with changes to your perfect app, it burns and hurts. Don’t they understand how much effort you put in? Don’t they know how much thinking went into each feature they dismiss? How can they have missed the most awesome feature in the app? How can they not figure out how to use it properly? How can they want more features? What do you mean you don’t understand the documentation, its the best ever!
Get over yourself, buckaroo. The kind of stuff that comes out from beta testing is amazing and you should pay attention.
Beta testers find bugs in your elegant code you would never have thought to look for. Beta testers use the app in different ways than you intended, and find that it either works or not. Beta testers complain about the phrasing of your words, because you did not communicate effectively enough. Beta testers misunderstand your icons, or don’t even tap on them, because your art is not good enough or clear enough. Beta testers declare your best features that took you weeks to get right to be useless to them, because they either miss it entirely, some other arbitrary feature is much better in their correct opinions. Beta testers come back with missing features critical to them, ones you rejected because you though it was not necessary, or, worse, ones you never thought of. Beta testers do the silliest things to your app, like give it to their five year old nieces to tap away until it crashes. Beta testers input the strangest things into your data fields and make it crash. Beta testers put your app on hardware you’d never think of and test it.
Beta testers, in short, look at the app from their own perspectives, do all the things you would never have thought of to the app, and criticize all the things you did think of in the app. The best beta testers do.
It may be hard to deal with it, but it’s oh so worth it.
All the bugs and changes and issues and discussions you have with your beta testers lead to a better, more stable, clearer by text and idiom, tighter, faster and more brilliant app, and that’s the one you want to ship.
A beta tested app is going to be much sturdier, because the mob tried, and succeeded, to break it, and you made it sturdier. Its going to be more useable because the mob looked it, poked it and prodded it to work the way they wanted it to be, and you made the necessary changes. Its going to be easier for customers to pick up and use, because the mob beat you into clarifying your idioms, text, naming and art work, and you applied these changes. And its going to be more successful because your beta testers gave it a critical teardown several times over.
Beta testing helps in other ways as well
- It makes you a better designer and programmer. After surviving a few code review maimings, you became a better programmer, no? After a few beta tests, you begin to think and design and code for your customers as well as for yourself.
- It makes you a better communicator. We all struggle to name things in our apps, and to document them and to market them. Listening to the words used by your beta testers helps you to understand how they see it, and how your customers will see it in the future. Change your naming, change your documentation, translate from you speak to user speak.
- It catches all the big and little things you missed, and a single programmer will always miss things. More eyes see more things, unlike cooks and broths. And maybe next time, you’ll look for those things too.
I think the biggest thing I get back from beta testing is to see how people I trust build their own mind-models of the app I built, and grow their own understanding of it, how to use it and how it meets their needs. And that tells me how others will do the same. And if I can learn how they looked at it, I can make better software for all, and I’ll be a better indie developer.
So to my beta testers out there, thank you, and please continue to do the things you do. I chose you because I trust you and your opinions, and because you look at things differently to the way I do. Your time, efforts and honest opinions make my software better, make me better and make it better for everyone who buys my products.