MacDevCenter    
 Published on MacDevCenter (http://www.macdevcenter.com/)
 http://www.macdevcenter.com/pub/a/mac/2002/10/08/dev_osx.html
 See this if you're having trouble printing code examples


Developing for Mac OS X The Do's and Don'ts of Shareware, Part 2

by Sanford Selznick
10/08/2002

Last time we were together we introduced a few ideas about shareware: what shareware is, expected startup costs, developing an idea, and sales strategy.

Now we will discuss some basic approaches for writing maintainable code, testing software, assembling a deliverable package, writing ReadMe files, and marketing and distributing your software.

Kicking Off the Shareware Life Cycle

In a previous installment we learned about the shareware life cycle. We learned how each new release results in increased public awareness of the software. And we learned how increased public awareness generates more sales. So there's a key element of the shareware life cycle: each new release. The more releases you make, the more public awareness your software will receive, and ultimately, the more sales you'll have. To this end, shareware developers should create long term strategies for releasing their software at reasonable intervals to keep the cycle going.

A large company that creates software has the advantage of dozens of programmers, testers, and marketers. A one-person shareware company has no such luxuries. To the rescue, there's an old engineering adage that says "keep it simple, stupid." But stupid is somewhat deprecating, so this author prefers the equally effective: "keep it simple, silly" (KISS). And it works for shareware.

DO remember that each new release will spawn renewed interest in your product.

DO listen to your users.

DON'T overcomplicate your 1.0 release. It may bomb, and you don't want to waste too much time on it.

A good long-term strategy for developing a shareware product is to keep the first 1.0 release as simple as possible. Only implement the basic functionality of the software that is necessary to provide a minimal set of features to the user. Consider MoonMenu, one of this author's shareware titles. The 1.0 release did little more than calculate the phase of the moon for any given date and display the moon in the menubar, along with four relatively simple calculations. From there, features were added slowly to grow the software, adding only one or two new features for each release.

There are a number of advantages to growing shareware slowly:

Related Articles:

The Do's and Don'ts of Shareware, Part 3
In the final installment in this series, Sanford Selznick describes how to handle payment processing, distribution, and marketing of your new application. Solid information helpful to beginning and experienced developers alike.

The Do's and Don'ts of Shareware, Part 1
In part one, Sanford Selznick pours the foundation upon which to build your emerging software enterprise.

Writing the Software

DO keep your code clean.

DO remember that although some operating systems have a greater share of the market, this doesn't necessarily mean greater sales too.

DO listen to your users.

DON'T rely on other programmers to test your software.

There are scores of excellent books available that detail many great mechanisms for reusing code, testing software, using revision control systems, and more. Buy them. Read them. Unfortunately this article is not a venue for this type of discussion. Below, however, is a really quick list of things to keep in mind as you author your shareware program.



Safari Tech Books Online. Build a Better Bookshelf
Online, with Safari Tech Books Online

Get your first 14 days free when you subscribe to Safari Tech Books Online, with 600 of the best technical books available from O'Reilly and other top publishers. Select up to ten books to search, bookmark, and annotate. Cut and paste code examples. Find your answers fast. Sign up today!


Release Schedule

How many releases should a shareware author plan on making? There's no formula to determine this, only considerations, such as your ability and your market. Naturally, you can't release updates to your software any faster than you can write and test them. Other limitations include the patience of your users and the public press venues. Although most users and public press venues will gladly accept notifications of updates to shareware products, users and the press do have a limit. General consensus is more than one press release each month can push that limit. If necessary, one emergency update in the middle of the month is considered acceptable. You may consider not sending out notifications of small changes or fixes to not upset customers and the press. Once relationships are broken they can be very difficult to rebuild.

Press releases are discussed in greater detail later in this article.

Testing

There are a number of approaches to finding good testers. Some shareware authors will release expiring beta versions of their software to the public. Some shareware authors will rely on friends and family.

Whatever you do, try to test every possible execution path through your code on as many system configurations as possible.

DO test every facet of your software on as many system configurations as possible.

DO be sure your software exits gracefully if the minimum system requirements are not available.

DON'T forget to spell check your user interface elements.

As a shareware author, you're not working in a vacuum. The best testers for any piece of software are the users themselves. A lot of users are really savvy. Some users know how to use low-level debuggers, and some know how to interpret log files. These are the testers who need to be rewarded the most. Offer to add the tester's names to a product's box, or give the testers a free copy of the software.

There are also third party companies that test software and charge by the hour. If you're having quality control issues, the folks at MacTester can help. MacTester has lots of system configurations available, and their rates are very reasonable. The reports they generate are very thorough, too.

This will be on the checklist at the end of this series, but it can't hurt to mention it twice: if your development or beta versions have expiration code in them, remember to remove the expiration code before you ship the final version.

And one other item: please remember to spell check your user interface elements.

Assembling the Package

DO choose a package format that's compatible with users' systems to keep your support expenses to a bare minimum.

DO write an installer to keep your users happy.

DON'T forget that money is not the only expense. Your time is an expense, too.

So you came up with an idea, wrote the software, and tested the software as thoroughly as possible. Now you must assemble the package that your users will eventually download.

What format do you want people to use to download your software? There are a number of options, all of which have their pros and cons. There's no perfect distribution mechanism. Three popular formats are discussed below.

Macintosh Troubleshooting Pocket Guide for Mac OS

Related Reading

Macintosh Troubleshooting Pocket Guide for Mac OS
By David Lerner, Aaron Freimark, Tekserve Corporation

Table of Contents
Index

Read Online--Safari
Search this book on Safari:
 

Code Fragments only

An important note about Stuffit: There was a time when every available Internet-capable program installed Stuffit Expander on the user's computer. Some of these versions are completely incompatible with archives created by the latest release of Stuffit. And here's the worst part: the operating system doesn't always launch the latest version when the user double-clicks the archive. Be sure to keep this in mind when providing support to your users. (But even with this problem, Stuffit is still a very popular and easy to support format.) There are more notes about Stuffit and server MIME types below.

The distribution archive should also include a ReadMe file. (See next section.)

Anatomy of the ReadMe File

A great place to learn about ReadMe files is to read some. No kidding. You'll find all sorts of variety, from one-liners to entire rolls of toilet paper. Some never end. (This article may never end.)

Here are some sections users will like to see in a ReadMe file:

DO format your readme file so users can easily find the information they're looking for.

Keep in mind that MacOS X TextEdit.app can open SimpleText read-only files (type 'ttro') without having to launch Classic.

Another great format for ReadMe files is html. The problem with this on MacOS 9 or before is the user may not have the browser installed for the creator of the html readme. So the user can double-click the file and get an error. On MacOS X, since creators are not necessary, this is not a problem.

You may consider hosting your documentation on your Web site.  Making last-minute corrections is impossible when your documentation is already installed on a user's machine.  Also, many users like their documentation in printable form.  For this, PDF is ideal.

Creating Your Sales Venue (Web site)

Marketing is always fun. The best part about it is that you can turn for marketing to the same place that you turn to for cheap car insurance, competing mortgage companies, and Foam Bath Fish Time: the Internet.

Don't panic. There's no rule that says your Web site needs to have 50 cross-referenced pages, or animated gifs of cartoon characters using your software (although that would be pretty cool, wouldn't it?). The basic idea of creating a Web site from scratch is the same idea as creating a 1.0 release of a piece of shareware: keep it simple, silly. A Web site, like a piece of software, can evolve as new needs arise, and can change very quickly in response to user feedback. Think of it as a piece of clay that never hardens. If you don't get it right initially, you can always mold it into something better later.

Another good reason to keep the Web site simple at first is that you won't have extraneous information users won't want. Only add sections or information users ask for. Only then will your Web site do what it's supposed to: help your users find things quickly so they can get on with their lives.

Basic Sections

Below are four basic sections users will expect to see on a shareware Web site:

Beyond these three sections, what you add is up to you. As a shareware developer, if you receive a lot of emails asking about who you are, add an "about" section. Don't be shy. Your Web site should evolve similarly in response to frequent user feedback on any given issue.

As you design your Web site, be sure links are visible and in obvious places. Users can't read your mind. (No, they really can't.)

There's no one right way to do a Web site just as there's no one way to design a storefront. Drive around your neighborhood and you'll see hundreds of unique storefronts competing for your business. There are no limits to what you can do with your Web site.

DO remember that there's no one perfect way to format your Web site. The overall look and feel of your site will depend mostly upon your own tastes.

DO shop around. There are some great examples of Web sites out there.

DON'T clutter your Web site with extraneous information.

Tools to Help

Use as many tools as possible to help you manage your Web site. Relative links are a pain to get right, but tools like Bare Bone's BBEdit software make it easy. Same goes for importing common elements into your entire site with one click of a button. The tools are available so you might as well use them and save yourself the headache.

Graphics

If you're not very good with graphics, find a local artist to help you out. A local artist usually costs between $20 and $60 per hour, and if you're completely devoid of any artistic talent (like most people), you might want to give outsourcing a try.

Small screen shots of your software in action will also quickly and easily help potential users understand what the software does. Sometimes a picture is worth a thousand words. (We don't have a whole lot of original sayings here.)

ISP

You'll want some pretty serious power from your ISP. There are thousands of ISPs out there, all with many features. Most decent Web hosting ISPs cost anywhere between $15 and $45 per month, and sometimes charge a set-up fee. Here are some features you will want from your ISP:

A good and friendly ISP is Pulver Technologies. Their uptime is excellent, and they repair inevitable problems quickly. Although once you sign up, Pulver Technologies is pretty much self serve.

Web Forms

DO create a Web form to collect customer's email addresses so they can learn about new products and updates.

DO create a Web form as a way for your users to change their address in your database.

DO remember that simple Web form back ends will email you the data field values in a special format. This is typically called a "formmail cgi", and is supported by most ISPs.

DON'T violate your user's privacy.

It's quite surprising how many users want to be kept informed about new products and updates. Provide a simple Web form to collect this information. It's free, easy, and gives you a list of people who actually want to learn about your goods.

A great marketing tool is to find out from users how they heard about you. Then you know where your users are going for information, and you can be sure to send future press releases to those who made the referrals.(But only if they want it, right?)

Privacy

The idea of Web forms brings us to our next quick topic: privacy. Don't sell your mailing lists or give them away. You'll only upset your users. Plus, you'd be surprised to learn how many users use custom email addresses so they know who they've given their address to. Because of this, if their particular email address is ever used for spam, they'll be able to track it back to you. And that's not a good thing.

So write a privacy statement, and forget about ever giving away any personal information. This policy is better for everybody.

Distribution

Below are a few notes on actually distributing your software.

By Download

Offer two or more mirror locations from which users can download your software. We are, after all, dealing with the Internet here. Servers fail. And so do links.

Download Size

Remember that users need to download your archives.  It's a good idea to make sure your archives aren't larger than an average user can download from a dial-up ISP in 20 minutes.  Large archives are often skipped by users entirely.

Registration Numbers

DO keep registration numbers short.

DO only use digits.

DO only use one bit in your registration code for binary fields.

DO be careful of unicode characters on foreign systems. They'll appear in fields whether you know it or not.

DO be sure you can write your registration code in languages other than C or C++.

DON'T forget to test your code.

When shareware is actually sold, what's transferred from the company to the user is a registration number. This is usually done by email only. Using a predefined mechanism, the users enter the registration numbers into their software thereby extending the software's lifetime indefinitely. Registration numbers can be generated on-the-fly by the company handling your sales. (See next installment.) But from a programmatic point of view, there are a number of values shareware developers may want to mathematically incorporate into their registration scheme:

There are a number of hidden gotchas here. Don't forget that on foreign language systems, usernames and organizations may be unicode. Also, avoiding letters in the supplied registration code altogether will reduce the number of support emails. Users are easily confused, and rightly so, by lower case "L" characters, upper case "i" characters, and the number one. Same holds true for zero. Using only digits nips this problem at the bud.

Ambrosia Software's 'fprefect' wrote an excellent article detailing an expiring registration number scheme.

Wrap-up

We covered a lot of ground today. The general idea behind creation of the software, the Web site, and the entire sales experience is to keep it simple. Lone developers have no choice. Don't feel overwhelmed. Most of the items are completely optional. And many of the items are personal preference.

Next time we'll be wrapping up the series with a discussion of press release format, sales transactions, user support, a checklist for launch, a few notes about localization, and what you need to work from the road.

Sanford Selznick is the owner of Selznick Scientific Software, LLC, a programming, consulting, and shareware company based in Tucson, Arizona.


Read more Developing for Mac OS X columns.

Return to the Mac DevCenter.


Copyright © 2007 O'Reilly Media, Inc.