Archive for the 'Distribution' Category

A pretty common question on software development forums:

Should I release my new product in July or postpone it for a couple of months?

I recommend to release your new software product as soon as possible to quickly test the product idea and to start communication with users.

July is a good time for pilot release also. Just make it soft and relatively silent. Don’t put much money in promotion and marketing. Your primary goal must be gathering as much feedback from users as possible. Put all your efforts into testing of all aspects of your new project in live environment: application, setup, website, order process, statistics collecting, support, feature request management, etc…

If you start now, you will have enough time to collect and to analyze initial feedback and to polish everything before majority of businesses gets back to work. Then make a second release in August or September. The second version will be more stable and tested, and likely even with several new features. Then, you may put more efforts and money into marketing and promotion of your product: post announcements, send press release to media, buy ad, and so on.

Upselling (or Up-selling, or Upsell) is a simple way to increase your average revenue per customer. It’s easy and effective. At the time of purchase simply offer your customers extra options or a more valuable deal.

This is just a short list of what you can offer to your customers besides your main software product:

  1. Bundles with complementary software products
  2. Add-ons and plug-ins
  3. Visual themes and skins
  4. Advanced versions of software (Professional, Deluxe, etc)
  5. Multi-user discounted licenses
  6. Source code
  7. Delivery of files on CD or DVD
  8. Boxed version
  9. Printed manual
  10. Express shipping
  11. Extended download warranty
  12. Access to private knowledge base or use-cases
  13. Bulletin or a newsletter subscription
  14. Professional community partnership
  15. Priority support agreement
  16. Long term or life-long support agreement
  17. Long term or life-long update agreement
  18. Setup and installation services
  19. Customization services
  20. T-shirts, cups, mouse pads and other stuff
  21. User training
  22. User certification

Nevertheless, try to choose upsell options wisely in order not to turn your order page into a pile of junk and scam-like offers.
Also don’t force your customers into up-selling options as it won’t be appreciated.

If you have ever released an update of your software product then you likely faced the problem of notifying your existing customers about the update. In this post I’d like to give a simple yet very important advice how to notify your customers properly.

Releasing the upgrade is a very important task. After several months of development and testing you may get tired and miss some important details on the final stage - distribution and official announcement.

Here is a list of the most common issues that may happen during the release and reduce the effectiveness of your announcement:

  • There is a bug in your software
  • There is a bug in your setup utility
  • The download link is broken
  • Your server is unexpectedly down
  • There are typos and mistakes in your announcement text
  • … or else

You must detect the possible unexpected problems and fix them before all your customers have received the announcement message. The trick is easy - send your announcement by portions.

The first pilot portion of your mailing must be sent just to a few customers, about of 100-150 contacts. Those users must be as different as possible: from different countries, with different operating systems, corporate and home users, old clients and newbies, etc… Usually the first mailing to such small yet contrasting group of users allows detecting the possible issues in your release or notification. In the same time you won’t be overwhelmed with support request from thousands of disappointed people.

Wait for about a day for possible problem reports and initial feedback. If everything is OK then you may send another portion of mailings to about 5-10% of your customers. Wait for another day. If everything is OK this time then continue sending your announcement by portions of 15-20% with pauses of several hours between each session.

This simple approach will allow you to:

  • quickly detect the possible problems in your release;
  • keep the majority of your customers happy and properly informed;
  • save your support team from the sudden hurricane of the bug reports;
  • keep your mail server work load stable.
Dennis Crane

How to name software product line editions

If you decide to split your software product into several editions with different settings then you will likely wonder how to name them. Naming software editions depends upon what do you offer and what do you limit in each edition. There are several common approaches in building editions:

  • Functional limitation (F)
  • Environmental or purpose usage limitation (U)
  • Limitation of number of installations (N)

Here is a list of common edition names. The hints in parenthesis designate which of the approaches each name suits better.

Level 1
Junior (F)
Beginner (F)
Student (U)
Educational (U)
Light (F)
Lite (F)
Bronze (F,U,N)
Empower (F,U,N)
Starter (F)

Level 2
Standard (F,U,N)
Regular (F,U,N)
Intermediate (F,U,N)
Personal (U,N)
Home (U,N)
Silver (F,U,N)

Level 3
Advanced (F,U)
Professional (F,U)
Business (F,U,N)
Commercial (F,U)
SOHO /Small Office or Home Office/ (F,U,N)
Company (F,U,N)
Gold (F,U,N)
Mega (F,U,N)

Level 4
Deluxe (F,U,N)
Architect (F,U,N)
Site (F,U,N)
Enterprise (F,U,N)
Platinum (F,U,N)
Premium (F,U,N)
Exclusive (F,U,N)
Ultimate (F,U,N)

This list gives you an idea how to get started with your own software editions. Combine names from different levels to build your own successful product line.

If you know more naming examples then post them as comments please.

Dennis Crane

Tracking your file downloads

Tracking is a king in mISV business.

When somebody downloads a file from your website you must log the event. Therefore, you must invoke a script (e.g. download.php) on your server that will write the info about the event in a file or database and then will redirect the visitor to the actual binary file.

In the same time, using script as a download link is not practical because many software archives do not allow links to php/pl/cgi pages, only to the exe or zip.

To overcome this you may use .htaccess file for redirection.

If you use http://www.site.com/download/abcmaker.zip as a public download link then the sample string for .htaccess can be:

Redirect /download/abcmaker.zip http://www.site.com/download/download.php?product=abcmaker

and the download.php must contain something like:

<?
...
//logging info to file or db
...
header("Location: /download/abcmaker_1421.zip"); //link to real file
?>

As you see this approach allows also to change the actual file name on the server while all incoming links may still point to http://www.site.com/download/abcmaker.zip

There are many software products that have a project-oriented concept. In other words they allow creating, editing, and managing projects or documents. The examples of the project-oriented programs are various text and media editors, database systems, spreadsheets, programming tools, setup builders, knowledge bases, and a lot of other applications. I’d like to gift you an idea about how to make project-oriented programs more user friendly and easier for getting started.

If you are an experienced developer and if your product has a long history then likely you have been using the approach I’d like to tell about. As for me, I came to this feature only in the second year of the Dr.Explain’s life. So, I think there are ISVs who also might be interested in my suggestion.

The idea is quite simple. Create a sample project or a sample document in your program and install it together with your program on the user computer. On the first launch of your application, suggest a user to open this sample project. For most people it’s easier to modify an existing thing to see how it works rather than to create it from the scratch themselves. Having a sample document in your software will help new users learn you product and get started quickly.

Try to include all the key features in the sample project to immediately show the wonders your application works. If your application is too complex and may be used in different ways then it’s better to create several sample projects or documents for most typical practices.

We started distributing the sample project with a new version of Dr.Explain 2.5.93 released in March 2007. Before we did this we periodically received user messages with requests to send them the project from which we had compiled the Dr.Explain’s own help file. People wanted to know how it’s done. With the sample, they could reproduce some of our techniques in their own projects. Now, new users see the sample project in recent document list when they launch Dr.Explain for the first time and they can play with it to evaluate the program. This works great for us.

Is there a place for sample projects in your software?

This post is inspired by a recent discussion in the ASP groups.

It was noticed that most of software don’t offer users an option to immediately launch the program in the end of setup process. After installation, users have to locate the application shortcut manually in Start menu among dozens of other software groups.

You made your potential customer download and install your program why do you make it hard to locate it? Users hardly know what’s your application name among 50 similar ones they just installed until they realize what they need.

There is a simple and inexpensive solution.

After your application is installed, make one more step and offer the user to immediately launch the application. You may add the ‘Run ABC…’ check box in the last screen of setup wizard and make it checked by default. Many setup builders do support this feature.

Another way is to automatically open Start menu folder where your application placed its shortcuts. So user can run your software immediately, check out help file or whatever is there.

Don’t make users think. Help them start using your software as early as possible.