The Do's and Don'ts of Shareware, Part 2
Pages: 1, 2, 3
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. |
- The name of the software.
- The name of your company.
- The URL for your company, double-clickable if possible.
- A brief description of what the software does.
- Contact information for support. (Email, address, phone, etc.)
- A list of what files are present in the archive and what they do.
- Instructions on how to register.
- The cost of the product.
- Installation AND uninstallation procedures.
- Are you reading this?
- Basic instructions on how to use the software.
- A change log back through the first version of the software. (A surprising number of users like to see these details.)
- A legal disclaimer.
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:
- Home: From Home, link to all other areas and products.
- Support: Support pages should include E-mail contacts and perhaps Frequently Asked and Answered Questions.
- Purchase: Instructions and links to your Web store. (To be described later.)
- Products: Description information and download links for individual products. Descriptions of products should be no longer than two sentences.
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 track record. Find one that a friend recommends.
FTP access to your domain's home directory so you can upload your Web site easily.
Perl scripting with sendmail. This is really important if you want to create a Web form and be emailed the results.
Multiple email addresses with forwarding or one email address with lots of aliases. Create separate email addresses for press releases, support, and sales. That way you'll be able to filter incoming messages for better organization.
An ISP that's willing to configure MIME types. When a server sends a Stuffit archive to a user's browser, the server sends along a MIME type. There are specific MIME types for specific types of Macintosh files, and these are not always enabled by default.
Relatively high disk space. A typical shareware company's Web site may fill up to 50 MB of disk space. When calculating necessary size, don't forget to consider the sizes of archives, localized versions of those same archives, and graphics. Also remember that no one person will ever download all of it. So disk space isn't necessarily proportional to the time required for your pages to load.
Backups, Uninterruptable Power Supplies (in case of brown outs), and redundant links to the Internet.
If you're planning on doing a lot of scripting, you might want an ISP that can handle PHP and MySQL.
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:
- A sequential and unique serial number.
- The quantity of products purchased.
- A special code identifying the product purchased.
- A checksum of the user's name or organization.
- A checksum for the registration number string itself.
- A release version.
- Operating system flag and version. (i.e.: If the Mac and Palm registration numbers for a piece of software do not cross-pollinate.)
- A random number to throw off naive crackers, sometimes called "salt" in encryption circles.
- A code generation date.
- Expiration information.
- Sales engine code.
- A code to identify the referrer. (Sometimes customers will be referred to your sales site by a third party.)
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.
You must be logged in to the O'Reilly Network to post a talkback.
Showing messages 1 through 14 of 14.
-
Registration Code Generator
2002-10-23 08:23:56 anonymous2 [Reply | View]
Is there a library available to generate the registration codes? It seems that Ambrosia's registration system would make an excellent product.
-
Apple Laptop Keyboards Unsuitable for Unix Users
2002-10-14 20:13:02 anonymous2 [Reply | View]
Apple laptops are effectively unusable for unix users.
I am a long-time Unix user. That means I need to have the Ctrl key to the left of the A key. This is a genuine need, not merely a want; it is based upon ergonomics. The Ctrl key is heavily used in unix, and it must be easily accessable. It cannot be off in the lower left corner of the keyboard where it is difficult to get at, and where it distorts the position of your left hand such that you can't easily type other keys while holding the Ctrl key down.
Apple desktop keyboards are now all USB. They are all OK. The CapsLock key can be re-mapped into a Ctrl key.
Unfortunately, even in this modern age, all Apple laptops have built-in ADB keyboards. The ADB keyboard is broken-by-design. It is, in general, not possible to remap the CapsLock key into a Ctrl key.
There are some exceptions, but they are horrible kludges. They are horrible kludges because the original design of the ADB keyboard was a horrible kludge. The correct solution would be for Apple to re-design their laptop motherboards to use built-in USB keyboards. This hasn't happened yet. If you run Linux, use Debian's solution. For Mac OS X users, uControl works. There are no solutions (that I know of) for either NetBSD or OpenBSD. Please note once again that the "solutions" above are in fact kludges, because of the original bad design of the ADB keyboard.
Apple is (currently) ignoring Unix users! This is not merely speculation on my part. In an on-going email exchange I am having with an Apple employee (whom I won't name) in their marketing department, the Apple marketing person directly stated to me that Apple was catering to their historic Mac customers, and is purposely ignoring the Unix market. He also claimed that Apple would soon start paying more attention to the Unix market. I won't hold my breath. Apple has been ignoring Unix users for more than 12 years. I expect that trend to continue. (Also note that my Apple contact indicated that Macs would never ship with a 3-button mouse, even though Apple intended to port almost all X-window software and deliver it either on a CD/DVD or installed directly on each Mac's hard drive. How Unix friendly is a 1-button mouse with X programs that often require 3 buttons?)
Apple has now lost two opportunities to sell me hardware. I really wanted an Apple laptop for their superior battery life, and for the PowerPC with Altivec CPU. (The Altivec is vastly superior to the x86 line for DSP.) Because I can't live with the broken-by-design built-in ADB keyboard in all Apple laptops, Sony and IBM sold me laptops instead. If Apple fixes this problem, they will sell me a PowerBook next year; if they don't, I'll still be running OpenBSD on x86 hardware, and wishing I could use a Mac.
-
Shareware vs. Freeware
2002-10-10 06:50:19 anonymous2 [Reply | View]
Before you worry about whether or not you should try to charge, you should worry about Parker Brothers (or whoever owns Monopoly these days). You can't just take something like that, make a computer version and expect to not hear from lawyers...
Be careful. You may be playing with fire.
-
Shareware vs. Freeware
2002-10-09 22:04:21 anonymous2 [Reply | View]
Does anyone have any thoughts on where to draw the line between shareware and freeware?
I'm certainly not going to be depending on my rather amateur software-writing skills (I'm just a college student) to pay the rent, but I certainly wouldn't mind the extra cash.
I'm currently writing a simple piece of software so that you can play Monopoly in Mac OS X. It has a nice Cocoa interface and has all the basic features of the game (or will very soon) but there aren't many fancy graphics and the game is fundamentally simple. Should I try making this a shareware app or just give it away?
Is it a good idea to make two different versions of software -- one free and one shareware -- with a somewhat different feature set?
Any thoughts on this would be greatly appreciated.
Sincerely,
Nicholas Doty
npdoty@amherst.edu -
Shareware vs. Freeware
2002-10-27 07:46:50 sanford [Reply | View]
I'm not going to advise you to violate any trademarks or copyrights of Parker Brothers. (Sounds like a bad idea. Free or not, I think you'll still be liable.)
But you did have an interesting point: Does it help to have a freeware version and a shareware version of a given piece of software?
It really depends. It's possible that the freeware version could impact the sales of the shareware version significantly. Furthermore, you'll have to incur the additional complexity of maintaining and testing two different products. Even though they'd have most of their code in common, there's still lots of stuff that could go wrong, creating headaches you may not want. And don't forget that users of freeware sometimes want support too... and that takes time and money for you to provide.
Bottom line: it depends on your product and your market.
-Sanford
-
Automated testing
2002-10-09 14:57:20 anonymous2 [Reply | View]
One of the biggest drains on time as your program grows is testing, especially doing regression testing (making sure you didn't break stuff from previous versions). Its no wonder that most development shops have close to the same number of QA people as programmers.
One big win for small developers is incorporating automated testing as much as possible; you're probably going to be writing small test cases as you develop your code in the first place. Keep them around and constantly re-run them (e.g. in a daily build). That way you'll know right away when you've broken something.
Automated testing doesn't completely replace manual testing (and should be seen as a complement), but it delivers huge rewards in terms of improved quality compared with the time you have to invest, especially over the long term.
-
Define a successful shareware app...
2002-10-09 14:48:29 anonymous2 [Reply | View]
I've released a shareware app that has had > 200-300 downloads the first day, but no registrations. Is that successful? Should I keep trying? Or should I try a different idea? I mean, 200 downloads in 24 hours isn't bad, and indicates a fairly large potential market, but if noone is registering, should I not even bother?
You say in your article that if you release the first version and it flops, maybe you should look at another idea.
Is this a flop? -
Define a successful shareware app...
2002-10-09 15:31:21 sanford [Reply | View]
It's really really hard to say. It really depends on the product. Or users aren't using it enough for it to expire, or it's just not hitting the nerve with users to make them say "wow, I've gotta have it."
Was your product picked up by the public press venues like Macintouch, MacNN and VersionTracker? These are great ways to get news of your product out there.
-Sanford
-
I hate installers
2002-10-09 14:02:27 anonymous2 [Reply | View]
I hate installers. Computer columnists hate installers (http://www.macopinion.com/columns/tangible/99/08/26/). Everyone I know hates installers, except computer programmers.
Computer programmers love installers because it means less work for them and more work for users. Why bother having your program determine the user's configuration and checking what features are available when you can just ask the user! Well, you should bother because the programmer may just happen to know more about what configuration the program requires and what features are available than the user, since the programmer created the program and all.
My pet peeve is applications that require you to uncompress the installer, run it, asks a bunch of technical questions, locking up your computer, and spraying hundreds of files, fonts, extensions, folders, and aliases everywhere before you find out that it actually won't run on your computer. Urge to kill growing... GROWING...!
All applications should be distributed as runnable files. You should be able to run them off a CD after locking your hard drive to prevent the app from writing any files there. If your application requires special fonts or extensions to run, they should be bundled with the application and not installed as separate files.
Installers should be banned. -
I hate installers
2002-10-09 15:35:50 sanford [Reply | View]
If I had a nickel for every user that asked me how to install software or its update, I'd be a millionaire. Well, maybe. Installers are simple easier to support than other mechanisms.
Installers for MacOS don't generally ask a whole lot of questions. As well they shouldn't.
Problems arise on MacOS X when some modules are just plain hard to get into the right place. Some software needs to be installed as root, some software needs to be installed within a host application's bundle/folder (plug-ins for Eudora and Palm Desktop come to mind), etc.
Although programmers should try to avoid writing software that requires the above, sometimes they can't. And for these cases, an Installer really is ideal.
-Sanford -
I hate installers
2002-10-10 11:34:36 Corvus [Reply | View]
"If I had a nickel for every user that asked me how to install software or its update, I'd be a millionaire"
I believe you. I have provided computer support to education institutions for many years, and no end user can understand installers. If you want to stop people asking you how to install something, don't use an installer.
"Installers are simple easier to support than other mechanisms."
This is totally false. The easiest thing to support is a runnable application file. Users deal with these things every day, if they want to "install" one somewhere else, like on their local hard drive, they can drag and drop it there, the same way they "install" every other file they use on a computer.
"Problems arise on MacOS X when some modules are just plain hard to get into the right place."
They do not. If I want the shareware in my Applications folder I drag it there, if I want it in my Documents folder I drag it there, if I want ... Ohhh, you mean it's hard for *the programmer* to figure out where to put the files.
You're right, but someone has to figure out where the files go and what installers do is move the work from the programmer to the user. That's why users have so many problems with installers; they don't know where all these files go. Programmers are in a much better position to know where all the files go than users are, and the programmer only has to figure it out once. With an installer, every user has to figure it out every time they install.
"Although programmers should try to avoid writing software that requires the above, sometimes they can't."
They most certainly can. Microsoft Office is one of the most complicated Mac OS applications going, and installing it consists of inserting the Office CD and dragging whatever applications in the CD window you want to wherever you want to run them. Yes, those applications want to install all kinds of executables, extensions, fonts, sample files, etc., etc., but the application knows what files it needs. It knows where they go, where to get them, and copies what it needs where it needs them. It doesn't ask the user to do it.
Now, no doubt this is harder for Microsoft to do than to have the user run an installer that asks her or him to figure all this stuff out, but it's much easier for the user.
I apologise if this reply sounds confrontational, but when I read "Delivering an installer is a really great idea ... they make users really happy" I was astonished. Not only is this not true in any universe I've ever inhabited, I cannot comprehend how anyone could have this opinion.
Installers are a hold-over from the days when only computer programmers used computers. The fact that programmers still have to go through such contortions to get people to use their programs should be a clue to everyone that something is wrong with the entire concept. -
I hate installers
2003-05-11 05:41:47 anonymous2 [Reply | View]
installers are a nuisance. Programs should just be directly executable, full stop. Worst of all are those on windows that don`t ask you where you want to install a program, but just put it in a default location, which I don`t wish to use, and then refuse to work when you move them because of the equally stupid registry (give me the os/2 config.sys any day). The people who write such crap must be idiots, and overall I can`t stand the way that windoze assumes it knows best what you want. -
I hate installers
2002-10-21 23:28:40 anonymous2 [Reply | View]
I'm confused: I can't remember a Mac OS installer ever asking me anything more complex than what folder to put the application, except for Internet software (or OSes) that wanted to pre-configure things like e-mail addresses.
Windows is another world...
Also, have you tried installing an update that was little more than a resource change, without an installer? The average user doesn't know, or WANT to know, what a resource is, nor does he know how to open a package (in OS X) or use ResEdit.
Windows is a Nightmare world, in that regard... what with the infernal registry, and programmers thinking their code belongs in the Windows/System directory; THOSE are people that give me urges to commit mayhem!
micsteel at jump.net





