Archive for May, 2007

Dennis Crane

Eliminate the barriers in your software

barrier.jpgOne of the purposes of continuous software improvement is finding and eliminating the barriers that get in the way of users when they’re working with your software. Let’s name the most typical barriers that make your software less user friendly.

Confirmation message boxes
The most annoying things in software programs are message boxes. The message boxes force users to make decisions which they don’t want to make: delete or save, continue or stop, accept or decline, etc. Revamp your program to ask users less questions. As an alternative, it’s better to provide Undo\Rollback\History function in your software.

Status alerts
If you use message boxes for status notifications like ‘Completed’, ‘Done’, ‘Stopped’ or ‘Error’ then you may consider making a log window or a status bar that will display these messages without forcing a user each time to click message box OK button.

Ambiguity in user interface
If user doesn’t know what to do after he has launched your software then it’s another barrier. Check if in your software there are enough prompts, hints and signs that would help a user to understand what he must do to complete his task in your program. A user must simply follow your logical directions to receive the required results. Don’t make him to think much.

Initial settings
Sometimes the software application asks a user to make some initial settings before he can continue working with the program. This is a barrier also. Again, ask less questions. Try to preconfigure your software for most typical situations. Don’t make user to think about if he needs to check this option or not. Assume this yourself and don’t bother him.
For instance, if your software requires another software or third-party libraries to be installed on user PC then don’t claim from user to specify the locations of those libraries. Make your program to silently find the prerequisites on user PC and silently keep the locations in the program settings.

Software restart or computer reboot
Personally, I hate when a program tells that I must reboot my PC before the changes will take effect. I have a dozen of applications running and I don’t want to close and later to restore them all just to try another utility. I usually choose ‘I will reboot my PC later’ and may then even forget about the new installed software. This is a serious barrier between the program and a user like me.

Well, I’ve briefly mentioned just the most common examples of barriers that must be removed from any software or at least their presence must be minimized. I hope I’ll return to this topic in future and will expand this list. You are welcome to post your examples in the comments.

Kaizen is all about continuous improvement. I’d like to acquaint you with a tactics that I use to find out what else may be improved in our Dr.Explain software and other our products. Besides feedback from users, which is very important of course, I use a trick that I call ‘A Saturday Newbie’. The tactics is rather simple but very effective.

Once a week, usually on Saturday, I remove our software, Dr.Explain, from my computer completely, i.e. program files, registry entries, and installed files. Then I go to the product’s website and from this moment I try to act as a surfer who has absolutely no idea what is the Dr.Explain software. I read the software description on the web site, explore samples, online help, and use cases, read reviews and testimonies. I ask myself: “Do I need this?”, “Will it work on my PC or Laptop under my OS?”, “How much does it cost?”, and other important questions. I look for the answers on the site. If I fail to easily find the answers on the website then I tell myself: “Dennis, this must be fixed asap!”

After the initial acquaintance with the product overview on the website I proceed to the download section (if I’ve decided that I need this product :-) ) and try to download and install the demo version. So, I check if the download link is easy to find and if it works.

Now, the most interesting part begins. After the installation, which should be completed smoothly, I run the application and try to figure out how this pile of buttons, menus and controls can make my life better.

What should be my first step? Which button to press first? How to start a new project? Is there a sample? I ask myself a dozen of questions. If the answers aren’t obvious then I say: “Hmm, guys, you must make this more clear if you want my money.” Seriously, I try to forget that I’m a developer of this software and try to find a hint for my first action. Is there such hints in your product? This may be a wizard’s window, a pop-up ‘Click me!’ balloon, or even a simple ‘Start’ button (You know what I mean).
The same rule must work for all my further actions. After each step in the program I look for another clue: “What’s next?”. If I have no idea what to do next after a certain step I make a record in our To-Do list to make the transition from ‘Step M’ to ‘Step N’ more intuitive and transparent.

The main purpose of ‘A Saturday Newbie’ tactics is not finding bugs, but finding barriers that get in the way of a user when he tries to solve a certain problem with our software. Every time a user launches our software, Dr.Explain, he has a different purpose. Same here. Every time I act differently. Sometimes I act as if I need to create a new help file from scratch. Sometimes - as if I want to open an existing project made in the previous version of the program and to export it into CHM or HTML. Sometimes - as if I need to merge several existing projects. I play as many parts as I may realize. BTW, analyzing user feedback helps find out how people use the program.

Just a simple example, the Dr.Explain requires the Microsoft HTML Help Workshop to be installed on user computer for compiling CHM files. In the early versions we forced users to manually specify the path to the Microsoft HTML Help Workshop folder before enabling CHM file creation. That was a true barrier. Currently, Dr.Explain automatically detects the path to the Microsoft HTML Help Workshop on user computer and doesn’t bother users with this question anymore. The barrier was eliminated. During every testing session I find more new barriers that none of the developers or testers has seen before. Forget everything that you know about your application. Forget that you are a developer of this software and, I’m sure, you will also find many barriers in your program.

To reach the maximum effect you must not only play different parts but play them on different stages as well. Change your environment for every testing session. Use different OS versions, screen resolutions, hardware environments, and user privileges. Run your software both in registered and unregistered modes, and with all possible licenses (Free, Regular, Professional, etc.). Each environment modification may cause new barriers for your software users. You must find those barriers and eliminate them to make your software really easy to use and intuitive. I hope that ‘A Saturday Newbie’ approach will help you to do this.

Dennis Crane

Google Alerts for software vendors

Likely, you may be aware of Google Alerts.

Google Alerts are email updates of the latest relevant Google results (web, news, etc.) based on your choice of query or topic.

For mISV, Google Alerts is one of most useful tools. It’s free and it saves much time when monitoring your market niche. You must just specify the search query, your e-mail and the alert frequency. Google Alerts will notify you by e-mail when it finds something new for you.

The most handy uses of Google Alerts for mISV are the following:

Backlinks monitoring
Add ‘link:http://www.yourproduct.com’ query to your alert list to know who put a link to your website.

Competitor’s backlinks monitoring
Add ‘link:http://www.yourcompetitorproduct.com’ query to your alert list to know who put a link to your competitor’s website.

Product mentioning monitoring
Add ‘your product name’ query to your alert list to know who has mentioned or reviewed your software.

Competitor’s product mentioning monitoring
Add ‘your competitor product name’ query to your alert list to know who has mentioned or reviewed your competitor’s software.

Web site content protection
Add ‘a specific phrase from your article’ query to your alert list to know who has republished or has stolen (depending on license) your content.

Monitoring your target keyword
Add ‘your keywords’ query to your alert list to know what new resources have appeared in the relevant search results.

Keeping track of the industry events
Add ‘industry name conference’, ‘industry name trade show’, or other similar queries to your alert list to know about upcoming industry events.

Finding link exchange partners
Add ‘industry name “exchange links with us”‘ query to your alert list to find new partners in your industry to trade links.

Finding on-topic forums
Add ‘industry name “post new message”‘ query to your alert list to know what new forums about your industry have recently appeared.

Of course, there are many more possible uses of Google Alerts for ISV. Feel free to post your uses in the comments.

Have you ever thought about establishing a certification program for users of your software?
If your software is quite sophisticated and requires training then you can build a community of professionals around your product through the system of personal certificates. Offer your users to pass a series of on-line tests and award them with personal certificates like e.g. Microsoft does. “Certified Professional” sounds cool, doesn’t it?

You should follow the key principles to make your certification program really valuable for users:

  • Make exams hard to pass without good knowledge of your software. People must feel that they are true professionals. This will make them really proud to have your certificate.
  • Send paper certificates with your seal and signature on them. So people could hang them on the wall in their offices. At least give a file which they can print out themselves.
  • It must be easy for everyone to validate someone’s certificate on your web site. This will prevent fraud certificates.
  • Offer real benefits for the certified users: high priority support, free subscriptions for training stuff, access to private sections on product forum, participation in beta testing, invitation to off-line meetings and road shows, discounts, gifts, etc…

What will the certification give to users:

  • People like to be “certified professionals”. It’s like a membership in a private elite club.
  • The certificate will add points to their CV and maybe some dollars to their salary.
  • They will receive extra benefits (see above).

What will the certification give to you:

  • People will learn and test your product more thoroughly while preparing for tests. You will receive more valuable feedback from users.
  • When the certificate is hanging on the wall or is mentioned in someone’s CV it will work like advertisement of your software brand.
  • The certification program will make your product and company looking more serious and professional itself. This is a good way to differentiate from competitors and to make your software an industry standard.
  • You will create the professional community that will be spreading the words of mouth about your product. The certified professionals will help you with developing ideas and will evangelize your software among other industry professionals. They will lead many new customers to you and they will educate them themselves. If the certification program is done right then it will be a kind of religion.

Of course, not any software is suitable for establishing the certification program.

  • The software must be complex. There must be a real difference between professionals and average users.
  • The software must be expensive enough. Maintaining the certification program requires time and money from you.
  • The software must be business oriented. People must be proud to show the certificate to their colleagues, customers, or employers.

If you’re looking for new ways to promote your product then consider this idea about certification. If you already have a certification program for your users then I’d be glad to hear (read) about your experience with it.