Archive for August, 2006

TryBeta Feedback

Monday, August 28th, 2006

TryBeta is for you, the software developer looking to make sure your software is stable, high quality, and accepted by your potential market. We believe it’s going to be a great resource for all developers and we want to make sure that it is not only an affordable option for developers, but that it provides the features that developers are looking for.

Please fill out this quick questionnaire. We take all feedback very seriously and would like to know, based on your experiences, what makes a good beta testing program. What do you, as a software developer need? What do you want TryBeta to do for you?

We look forward to hearing what you have to say.

Note: All fields are optional

If you would like to read up on TryBeta, you can read an earlier post describing the service.

TryBeta Survey

Do you currently have a beta testing program for your software?

 No, I do all my beta testing

 I have a team of onsite beta testers

 I have a group of beta testers, but hardly if ever hear from them

 I outsource beta testing to a quality assurance company

 I have a small group of reliable beta testers

 I have a large group of reliable beta testers

 Other

If not, do you want to start one?

 Yes

 No

 Maybe

What problems do you face with beta testing?

 Can't find reliable testers

 Hardly or never hear back from testers

 Feedback is inadequate or incomplete

 Too hard to manage

Any other problems you face with beta testing?

How important do you feel beta testing is?

 Extremely important

 Important, but not my highest concern

 Not very important

 Not important at all

What are the top 3 essential features of a beta testing program?

 Active involvement of the developers

 Incentives for users who beta test

 Group discussions between testers

 As many users as possible

 Easy way to submit feedback

 Having an organized way to manage user feedback

Any other essential features?

What would you like to know about potential beta testers?

Just from what you have read and seen here, what are you expecting from TryBeta?

Would you use TryBeta based on your current expectations? (If not, why?)

Payment Terms: Would you rather

 Pay a flat yearly subscription fee to maintain your beta testing community knowing you may not have a beta release at all times

 Pay per beta cycle

Do you have any comments or concerns about TryBeta? (If you have a question that needs a reply, please use the contact form in the upper right hand corner)


You can sign up on our main page to be notified when TryBeta is launched

Customer Support is The Best Marketing

Saturday, August 26th, 2006

Selling software is not about the software, its about the service you offer and the experience you create for your users. That’s what separates commercial software from open source software.

I am a big supporter of customer focused software development. Solving the customer’s problems is what software is intended to do. If your software can’t provide the solution your users are looking for, do everything in your power to make sure you do.

When it gets tough to spend time handling support emails instead of developing software, think about all of your customers as potential sales people. Make them happy and they will spread the word about your products to friends, family, co-workers etc…

Now, some customers wont ever tell a friend about your product, but others will. Its difficult to determine which ones will end up talking about you.

For the past 7 years I have put a large focus towards helping customers as quickly and as best that I can. Here are some of the ways it has paid off;

1) A customer needed to use one of the applications provided by my company but it lacked a certain feature. I created a simple plug-in and sent it to him which provided a solution to his problem. A few weeks later a review came out about the product and the reviewer just happened to be the same guy I sent the plug-in too. The application ended up getting a great review that went out to a large user group.

2) A customer who bought our HTML editing application owned a large web site with a pretty big following. He sent in a handful of emails and surprisingly to him, we delivered prompt replies to all questions. He continues to recommend our software to his community.

3) We ask customers where they heard of us when they order. The most significant answer is friend, colleague, or co-worker followed by search engines and download listing web sites. Clearly, leaving a good experience with customers is the best form of marketing you can offer.

4) Another interesting success story can be found here.

Tips On Turning Customers Into Marketers
1) Encourage customers to spread the word
The usual tips of having a tell a friend link on your web site and an affiliate program are important. However, you have to actively seek out users who get exciting about your software. These users are the ones who provide feature requests, report bugs, and actively try to engage in any form of communication with you. If they take the time to talk to you, they are most likely excited about what you have to offer. After you provide them with top of line support, give them a coupon (try making the coupon ID their name), and tell them they can send it out to 10 of their friends for a 20% discount.

2) Take the blame for ALL mistakes
Did a bug in your software crash your customers computer or was it an error on their part? Who cares! Apologize for anything that goes wrong and offer to fix it. Tell them how important this issue is and get it fixed ASAP.

They don’t want to deal with your company anymore? Give them a refund before they get the chargeback and bad mouth your product. Never take money from a customer who can not use your software as advertised, whether or not it is your fault or theirs.

3) Understand that not all customers are as knowledgeable as you
After receiving their registration code I got an email from a customer saying that they need a new code because their keyboard could not type the zero with the diagonal line through it.

Lets face it, we are not all experts in all areas and will look inexperienced in anything we do. Understand where your customers are coming from and don’t get frustrated with any “basic” misunderstandings they may have.

If you get the same basic question over and over, there is something wrong with your software!

4) Always encourage customers to provide more feedback
Communication is the most important part of any business. You must base your decisions on what your customers need. Encourage them to continue to send feedback so that you can develop a bond that keeps them coming back to buy what you have to offer.

5) Your customers will talk about you
Your customers are talking about you, both good and bad. Don’t let anyone get away with a bad word about you.

The most important advice I have used for the past 7 years is to treat each customer as if their happiness means another sale. You never know who they will be taking too.

6) Get them involved in the planning/development
If your customer sees his or her opinions and suggestions incorporated into your software, which product do you think he is going to be sticking with and recommending to his friends?

Show your customers how much you value their opinions by taking their advice seriously. If you don’t quite agree with their suggestions, tell them why and offer alternatives.

Principles Of Software Design

Tuesday, August 22nd, 2006

1) Show confirmation after an action has been performed
After the user has performed an action, such as deleting a message, sending a message, uploading a file etc…, make sure it is clear that the action has been carried through.

Often applications will assume that just because the user has knowingly pressed the ‘Send’ button or the ‘Delete’ button, they know exactly what has happened. However, it is important that the users gets proper feedback even if the last action was a success. Don’t allow your users to wonder whether or not the last operation was carried through properly.

Another important principle that falls closely in line with this one is to provide active feedback as a long operation is taking place. Instead of making it seems as though your application has froze, visual feedback during long tasks is extremely important to let the user know what’s going on.

2) No Error Codes
Building on the previous point, when an error occurs, notification to the user is extremely important. This error code, however, must be descriptive and offer advice on what the user can do to fix this.

At a bare minimum, any error codes reported by the operating system, web server, etc… should be converted into plane English (or whichever language the application is developed in).

Once you translate the application’s error codes into something your users will understand, provide them with the steps to fix this problem. What should they do next? How can they fix the problem so it won’t happen again?

3) Always Provide A Way Out
Wouldn’t it be scary if you pressed the Delete button by accident and the confirmation message that appeared did not include a Cancel button? That would be the absolute extreme situation where the user was not provided with a way out.

Often applications don’t provide a clear way out of an operation if the user changes their mind. This happens a lot with online applications that force users to press their back button. I believe there should always be a way out of an operation without having to press the back button or quit an application.

This issue comes up a lot when an application tries to perform a long operation, for example, searching through thousands of files. It’s always important to let the user cancel the operation if they feel it is taking too long or realized they made a mistake.

Make sure you provide a way out of every decision you ask the user to make.

4) Easily Accessible Help
Are your users reading your manual from start to finish before they open your application? Not likely!

Nobody wants to read through manuals before they can use the new software they just downloaded. However, that doesn’t mean that they won’t go looking for help.

It’s important to provide the user with the necessary information and help resources when they need it. Using help tags is a good start, but combine that with quick links to additional help topics without making the user stop what they’re doing.

Help icons in all dialogs should take them to additional information on the current features they are working with. When they’re in the ‘Search Dialog’, the help icon should take them right to the search topic in your user manual.

5) Let Your Users Be Lazy
Spend that extra time putting in the necessary features to make sure your users don’t have to do additional work. Do they need to locate a file on their hard drive? Your application should offer to find it for them. Do they need to install another component from your web site? Your application should install it for them (Or at-least take them to your web site).

Allow your users to do less, so they can focus on using your application.

6) Make It Inconvenient To Delete Data
Even if this is an important feature in your application, make it really inconvenient. Don’t allow users to delete data easily. There is a reason Windows has a Recycling Bin and the Mac has the Trash can. If you allow users to delete data easily they will delete important data and blame you. Make it really inconvenient for them to delete anything, and if they do delete something, offer them a way to get it back.

7) They’re Not Reading Your Warnings
Building on the last principle, it is important to know that users are NOT reading your warnings. No matter how much you try to tell them, they are not paying attention.

This includes the pop-up Message Dialogs right before the user decides to delete his hard drive. The fact is, if users actually did read your dialog boxes, you would have a lot less support to handle. However, that doesn’t mean that these messages should not provide all the information necessary for users to make decisions.

Message dialogs that try to show a warning or error message should be visually different than other messages. I don’t mean to make your application completely different from other applications your users are used to, just to make sure that they know the message they are about to dismiss is real important.

8) Multiple Undo/Redo
So what happens after they ignore your warning dialogs? They realize where they want wrong and want to fix it.

All applications should have multiple undo and redo features. This should not be a feature, but rather a “Bug”, if it does not exist.

9) Hide the Advanced Features
When you design your application plan out what are the essential features and what are more advanced features for the users who want more control over your application’s features. Users just want to get their work done and not be bothered with dozens or options and choices. Give them what they need and tuck everything else away in an unobtrusive spot that users can get to only if they want more control.

For example, if your image editing application allows users to export images they have edited, a basic feature might be to choose the picture format. A more advanced feature would be the number of colors or the ability to include comments in their picture files.

10) Remember What They Like
Your windows and dialogs should remember previous settings that the user has chosen before. Going back to your image editing application, if they previously selected to export as a JPEG picture, your Export dialog should remember these settings.

11) Stay Consistent
Stay consistent both within your application and with other applications the user is used to. Make sure that interface elements are standard and are used properly. It is really difficult to create a new widget and expect users to know what it’s supposed to do. This is one of the problems with cross platform applications. They just don’t seem to blend in with the Operating System. It’s also a problem with web-based applications. Who gets to decide the Interface Guidelines that should be used? These decisions are already made for you when creating desktop applications for Mac or PC.

Non-standard controls will also not look good as operating systems get updated or the user uses different skins and templates.

A Little Teaser

Tuesday, August 22nd, 2006

We’ve been working really hard on getting everything ready. All the the functionality is there, we are just re-working the interface and looking for critical issues.

The site is coming together very nicely. We want to make sure that it is as easy to use as possible before we start inviting developers and testers to try it out.

I am going to post very soon how we plan to launch the web site. Remember to sign up on the front page to be notified when we launch.

Here is a little teaser to show what the web site looks like now. Enjoy:)

TryBeta.com Teaser

Helping People Who Cannot Afford Your Software

Thursday, August 17th, 2006

Today a discussion in the ASP Newsgroups started about potential users who  feel it may be ok to steal software if they can not afford it. Unfortunantly, not everyone is able to have the opportunity to purchase your software, and thats normal for any product. The problem is that because software is so easy to steal, customers don’t really understand the consequences of their actions. Its not as if these same people would rob a Sony store for a 50 inch plasma TV just because they want it but cant afford it.

For the users like this who can not afford to buy your software, surely they must understand the risks of downloading illegal cracks with the potential of viruses or spyware. Even more so, they may be willing to donate some money, but without any push, they quickly forget.

An obvious reaction would be to try and do everything you can to prevent these users from being able to steal your software. Using dongles, online validation, multiple registration checks etc… are a few ways developers can fight this problem. However, do we really want to put ourselves in the same situation as the Music Industry put themselves?

I believe we can turn these users into our beta testers and get their valuable feedback. In return, these users will get substantial discounts or free copies of their favorite products. These users are not thieves or pirates. They are everyday people who do not have the means to pay for your software for whatever reason. What if we could say to them “Try our software, tell us what you think, and we’ll give you a free version with no viruses or spyware”? This would provide a win-win situation for both software developers and software users.

“It’s broken”… says who?

Monday, August 14th, 2006

Seth Godin did a presentation where he speaks about things being broken. He says that things are only broken if you think they are broken. Which means being broken is simply a matter of opinion. What’s broken to one person can be totally fine to another.

The problem with developing bug free software is not that it is impossible to remove coding errors, but that it is impossible to make a product that is not seen as “broken” by all of your users. Not all users will agree on the way you have implemented a feature, or how your software works in general.

One important point from the presenation which applies to software development is;

I’m not a fish
In the presentation, Seth gives examples of people who design things which they obviously have never used before. For example, a car interior where the cup holders are right in front of the air conditioner. Try placing a cup of coffee there every morning.

Your software is being developed for your users, not necessarily for you. You have to have the feedback of your actual users during development, otherwise you may make quick design decisions which actually prevent people from using your software effectively. Essentially limiting what your software can do (ie, you can’t use the A/C while using the cup holders).

In software development, often authors will try to do everything they can to tell users how to use a certain feature properly. However, the user may be so used to doing something a certain way that just by habit, they use the feature how they believe it should be used. It may never occur that instead of trying to “fix” the users behavior, they should fix the application’s behavior.

It’s much more expensive and time consuming to change design flaws later in development. Hopefully with TryBeta, you will be able to work with your users to come up with the most useful design implementations as early as possible.

Encouraging Communication With Customers

Sunday, August 13th, 2006

Two problems that small developers face, which I believe are related are;

1) Too many customer support inquiries and not enough time to handle them all
2) The lack of feedback from beta testers

All software is technically always in beta since a perfectly stable product will never be a reality. If this is the case, then why not continue to encourage any kind of feedback at all times, even after the beta process?

Customer feedback should be encouraged and never taken for granted. This includes any kind of support inquiries or trouble shooting issues.

Often developers get the same users sending the same problem in over and over. All this means is that there is a problem with the underlying feature or process in your software. This is the time where you must reconsider how a feature was implemented. Does it function the same as other applications that the customer might be used to? What are they expecting the application to do at that point?

I believe the most important way to encourage customer feedback as well as reduce the time it takes to reply to customer support inquiries is to build a community for your users where it is easy for them to share ideas, issues, or questions they have about your product.

There are many ways to build your community, however, building a large community of users takes time, especially when you are just starting out. Here are some tips to consider when developing your community.

1) Make it easy for users to share and talk
Create an online discussion forum for your users where they can communicate with each other as well as brainstorm solutions to problems they are having. When you allow users to collaborate like this, you will learn about how they are using your products and how you can improve usability, which features need be added or changed, and what major issues customers are having. Your customers will often have creative ways to implement ideas or inspire new features.

2) Make it as easy as possible for legitimate users to participate
A major problem online is SPAM. You don’t want to have your boards filled with SPAM bots posting links back to their sites. This often means having email verification to insure actual, legitimate users are participating. To help with this issue, make sure each customer who orders your product knows about your community. Even better, create an account for them automatically with their purchase so they can start participating. This way you know they are legitimate and you remove many barriers that may have prevented them from participating

3) Actively Participate in your own community
Showing that you are part of the community is very important to customers. If they know that this is the best way to get help or provide suggestions, they will be more likely to participate rather than send private email messages to support.

4) Make your members feel special
If certain members are posting a lot and helping other users, make them feel real special. Give them an important status such as YourProduct Guru or provide them with pre-release products and ask them for their personal feedback. This is a great way to turn active users into beta testers.

5) Remove unimportant features from forum/community software
Most forums come with many features that are not needed. This includes calendars, birthday reminders, buddy lists etc… Remove or disable the unneeded features of your forums to reduce any clutter and confusion. Focus on allowing users to share ideas and experiences.

6) Integrate your forum into your web site
It is very important to make the look and feel of your community match the rest of your web site. Create custom skins and choose the colors that blend with your site. This helps create trust and allows your members to take your community seriously.

7) Kick off your community by making it a useful resources
A good way to kick start a community is by filling it with useful tidbits of information relevant to the topic. By finding resources that are useful to your members you will encourage them to come back and seek new information. This doesn’t always have to be cutting edge news, just something you think the members will find useful.

8) Advertise your online community as a benefit to your software
Your online community should be seen as a benefit that customers get when they purchase or use your products. A successful online community is difficult to imitate, so turn this into an advantage over your competition. When customers purchase your products, they are also joining a large community of users, let them know that.

You’re software is for your customers, so their feedback is the most valuable resource you can ask for.

We’re nearly there…

Tuesday, August 8th, 2006

Trying to finish up the last feature…comments.

Then we’ll give it a quick bug test on our end and open it up for beta testing. Fill out the form on the front page to be notified when we launch!