Shareware Beach

Thursday, 28 February 2008

I Love to Write

Filed under: Marketing,Personal — Jan @ 18:31

When I was seven years old, my mother gave me the typewriter that she had used in college. You know, one of those things on which you hurt your fingers smashing letters onto paper, so you don’t have to be embarrased about your illegible handwriting. Though it was just a toy at first, I soon started typing up whole stories of my own creation. First I’d type a draft on cheap paper. I’d then correct the draft with a pen, and retype it on nice paper.

Four years later, I got my first PC, and a copy of WordPerfect 4.2. During the DOS days, WP was what MS Word is now. My writing output soared, as I now had a keyboard that didn’t hurt my little fingers any more. Well, at least not until a decade and a half later. Not to mention that I could just type the draft, edit it, and print the final version without retyping. What a concept!

By the time I moved on to high school, I also moved on from writing stories to writing software. Software that actually did something was far more exciting than text that just lay there. I didn’t really have an audience for either form of creativity.

My writing skills have come in handy when I actually started publishing my software. Writing good documentation is just as difficult as writing the software in the first place. No wonder that the average piece of software, or even the average piece of anything, comes with lousy documentation.

When I developed PowerGREP, I didn’t just put a table of supported regex tokens in the help file, as most competitors do. I wrote a full-blown regular expression tutorial. You can’t use PowerGREP if you don’t know anything about regular expressions. Documenting how PowerGREP works without explaining the product’s core technology seemed pointless. Later, I published the regex tutorial separately at, which attracts top search engine rankings.

Content always beats gimmicks. You can do SEO until Google puts you at the top. But it’s pointless without worthwhile content. The Back button always sits at the top. Sure, screen shots and even flash demos are definitely needed when promoting software. But without good supporting text, a screen shot is just a picture that says very little.

One thing I took away for myself from the ESWC 2007 was a resolution to write more. In fact, I resolved to write something every single working day. That “something” could be a blog post, a new page for one of my sites, or new documentation or samples. It doesn’t really have to bring in any money, as long as somebody will read it and find it informative.

The hardest part in writing, at least for people whose main job is something else, is to simply do it. The main goal of my one-piece-a-day routine is to build the habit of writing things. Take this very blog post you’re reading now. Once I was past the first two paragraphs, the words easily flowed. In fact, trimming down my articles is something I need to work on. Voltaire wasn’t kidding when he said he didn’t have time to make it shorter.

The hardest part, for me, is just sitting down and starting to write about the topic I have in my mind. There’s always a million things to do, and writing never seems to make it to the top of the list, unless I force it to be by setting aside a set time for it every day. I’m not writing daily yet, but I’m getting there.

Monday, 10 September 2007

Product Recalls

Filed under: Just Great Software,Marketing — Jan @ 17:43

There has been quite a bit of news lately about companies doing large-scale product recalls, particularly for stuff made in China. By now every marketeer has written his opinion on the expense of such recalls and the impact on the brand names involved.

But what I find interesting is not that QA failures happen, but that manufacturing companies do recall and even replace their products at great expense. This is in stark contrast with the software industry, where bug-riddled products seem to be the norm rather than the exception.

It doesn’t have to be that way. A defective software product doesn’t require a recall in the strict sense of the word. There’s no pile of inventory to take back. All that needs to be done is to fix the bugs, and make the new version or a patch available for download. Relative to a tangible product recall, the cost of issuing bug fixes is nil. Sure, time developers spend fixing bugs is time they don’t spend adding new bugs (under the guise of features) to the software. But that time should have been spent before the product was released. Remember that bugs are a business decision.

For typical consumer and business software, where bugs are annoying and perhaps costly to the user, but hardly life-threatening, the business decision will usually favor an early release to bring in money (unreleased products sell even less than bad products) and beat competitors to market. This doesn’t even have to be a bad thing, if each release is followed up with timely updates or service packs. Then customers can choose if they want to get version 3.0.0 hot off the server, or if they’ll wait for 3.1.0 to fix most of the bugs that plagued the initial release.

But this was going to be an article about recalls. Sometimes, a product or an update is released with a severe bug that makes it unusable to a significant portion of is user base. It doesn’t have to be a total crash or data loss bug. E.g. the initial release of Delphi 2007 had a few new bugs in its Forms.pas unit, resulting in applications with improper taskbar button behavior. While that didn’t stop those applications for working, it made Delphi 2007 unsuitable for the production of “just great software”. But instead of swiftly releasing an update, and an apology, CodeGear dodged the issue with some online articles for changes users could make to Forms.pas (not an easy proposition for newbie programmers) and an official update months later (too late to earn back goodwill).

But it doesn’t have to be that way. About a month ago, I released EditPad Pro 6.3.1. It was a minor update with only fixes and small improvements, so QA was limited to testing the changes and normal everyday use. I didn’t notice any problems, and there were no reports from the early downloaders of the new release. So a few days later the monthly Just Great Software newsletter announced the update to all our customers. To reduce the load on our server, it takes a few days to email everybody.

After the whole list had gone out, I got two support requests claiming that EditPad Pro 6.3.1 locked up completely, seemingly at random. I did a few quick tests, but I could reproduce anything, and the list of changes for 6.3.1 didn’t include anything that could cause lockups. It was getting late, so I called it a day. The next morning it hit me: I had made a change to some threading code inside the editor core for an upcoming release of RegexBuddy (which uses the same editor control as EditPad). This change didn’t have any user-perceptible impact on EditPad, so I hadn’t added it to EditPad’s changelog. Stress testing that code in EditPad quickly exposed the problem. Fixing it was tricky and took a few hours, as I didn’t want to roll back the improvements RegexBuddy needed, and I obviously really wanted to get things right second time around.

And then comes the recall. The bug only occurred in certain situations, and certainly wouldn’t affect everybody. But for those affected, it made EditPad unusable. And it must have been a significant slice of the user base, even though in the end only three people reported it before I fixed it. So EditPad Pro 6.3.2 was published right away. And then I did something that really qualifies this release as a recall rather than an update that’s simply put out there, waiting for customers to be found.

Since our download system requires the user to enter their user ID and email address to generate a licensed copy, we also know exactly who downloads their licensed copy of our software exactly when. That makes it trivial to compile a list of email addresses of customers who downloaded version 6.3.1. It turned out to be a pretty long list, as the newsletter had already gone out. I wrote an email explaining the problem and its severity, asking the customer to download 6.3.2, and apologizing for the whole ordeal. I sent the email immediately to all those who downloaded 6.3.1, and waited for the fallout. It could hardly be worse than having to respond to the same angry complaint of 6.3.1 locking up over and over for the next two weeks. Or worse, having people dump EditPad when it crashes, without checking if there’s an update.

While the recall did result in a bunch of extra support requests, I did not receive a single negative reply. Let me quote you a bunch of replies that people did send:

This bug hit me once yesterday but I blamed Windows XP :-) Thanks for the quick repair work.

[...] Thanks again for sending out the notification email recommending that I immediately upgrade to the new version. This is excellent proactive customer support and I commend you for it.

No apology necessary. “The person who never made a mistake never made anything else either.” Your prompt notification and remedy has reinforced the high regard I have for your software.

A quick response to let you know how much I appreciate your attention to product quality and your dedication to your customers. It is your thoroughness that continues to earn my highest personal respect and my loyalty as a customer.

Oh dear – things happen… But it is one of the reasons I have such faith in your software and your service – an immediate apology and an immediate fix. If only more were like that… Thanks once again for your ever efficient and outstanding service.

Jan, WOW! You are really on the ball! If Microsoft were even half as good, maybe their stuff’d be worth what they want people to pay for it… Many thanks for your kind notice! Frankly, I’d rather do text in Editpad than in Word if it’s amenable.

This is a shining example of your perfect committment to quality! I had experienced the problem, but you solved it before I had a chance to report it. Thanks!

The first and last quotes are particularly noteworthy. There were quite a few more who wrote that they’d encountered the problem, but never emailed for support. And those are probably only the tip of the iceberg of those who encountered the problem, but didn’t ask for support, and didn’t say thanks afterwards. (Nor would I want everyone to say thanks. We’d spend all day sorting out the replies.) But the point is: you can’t rely on your customers to find your software’s bugs for you. Particularly threading issues which happen seemingly randomly often go unreported, as people don’t like to embarras themselves with inaccurate descriptions. (Thinking: “It only crashes 10% of the time, so if I write, it won’t happen to them, and I’ll just get a boilerplate response saying there’s no problem.”)

The customer I quoted first blamed the wrong product. That, and all the other praise, is what a software publisher gets when they really put in an effort to fix bugs quickly. Fixing bugs doesn’t cost software developers money. It earns them money through increased goodwill and increased word-of-mouth, eventually leading to increased sales. Ironically, a developer with a track record of resolving problems quickly can more easily get away with shabby releases than a developer without such a track record. If 1.0.0 doesn’t work well, nobody minds waiting for 1.0.1 or even 1.0.5, if they know they’ll get it soon enough.

Thursday, 6 September 2007


Filed under: Marketing — Jan @ 9:00

Before you spend money on advertising, you might want to spend some on a spell checker.

Nobody’s going to stumble over a few typos on your web site. But a typo in a big macho banner ad, that’s just too funny–not good for ROI.

Tuesday, 17 July 2007

Ordering Pages from The Customer’s Point of View

Filed under: Marketing — Jan @ 20:03

In a comment to my previous article, reader Ahmad Gneady ponders whether he should spend the time to create integrated order pages for his web site, or just keep sending customers to an e-commerce provider’s order pages. The core of the question is of course which will bring more sales. So we have to look at it from the point of view of the (prospective) customers.

Ahmad argues that a 3rd party sales system is better because the customer knows he can deal with the 3rd party in case the publisher of the software decides to take the money and run. I agree. If Ahmad is your customer, he’ll be more likely to buy if he can do so through an established e-commerce provider. That’s because as a shareware author, he’s very familiar with the way these companies do business. He may even have collected a whole bunch of their freebies at the shareware software industry conference in Denver last week.

But what if your customer is more likely to be an intelligent businesswoman who confidently uses her computer every day. She’ll gladly spend money on any software that will save her valuable time. But she doesn’t hang out with geeks and would rather take her kids to the park than keep on top of the latest online developments. How does she approach your web site and your business?

Nobody will argue with me that she’s never heard of Little Shareware Guy Inc. But has she heard of Digital River or Plimus or BMT Micro? She might have purchased something through them in the past, but I doubt she’ll notice your ordering pages look exactly the same. And if she does notice you’re using an e-commerce provider she’s dealt with before, I’m sure she won’t realize that the fact she had to wait two days to get her license key last time was the fault of the author of the program she bought, and not the fault of the e-commerce provider. All in all, your 3rd party e-commerce provider isn’t going to get much positive brand recognition from her demographic.

In fact, I’d argue that LSG Inc. enjoys far more brand recognition with this prospective customer. She looked around your website to see what you’re about, and compared your site with that of your competitors. She likely downloaded your free trial version and used it for a few days or maybe a week or two. She may even have tried and uninstalled a competing product or two. At any rate, with the typical shareware sales cycle, she has a pretty good idea of your reputation in her mind when she decides to make the purchase.

She’s comparing your product and your site with that of Other Shareware Dude Inc. She’ll compare pricing and payment options, and may even look at the actual ordering pages while still checking out the web sites, before risking a trial installation. But in her mind, the ordering pages are a part of or an extension of your web site. She doesn’t care that SWREG existed as a service on Compuserve since before anyone had ever heard of the Internet, or that Digital River is a large company. Enron was a large company too.

And what if your customer is Granny, who has never bought any software before, and still hasn’t gotten over the shock of having to call her grandson to clean up a sypware infection only three months after he gave her her first computer? She won’t bother with a trial. She shops for a puzzle game like she shops on or any other big online retailer. Does Amazon suddenly send you of to a 3rd party site when it’s time to enter your credit card details–the most risky step in the entire transaction? Of course not! How serious is your business if you can’t take your customer’s money on your own?

This last consideration, in fact, is something I personally look at when trying to determine if I’m dealing with a fly-by-night venture or a serious business. Marble flooring doesn’t make you a better lawyer. But if you can sink your money into the floor and still have enough left to pay for that designer suit, your practice is probably quite successful. At least successful enough to negotiate a nice credit line with your banker. Geeks tend to stick up their noses to fancy fluff. But I bet our smart businessgirl is very aware of how she looks, and how the people she deals with look. While on the Internet nobody knows you’re a dog, everybody knows if your website looks like a dog.

In fact, as an aside, geeks are also very aware of how they look. They wouldn’t be caught dead in a suit. While peacocks inconvenience themselves with huge tails, and therapists inconvenience themselves with overpriced furniture, geeks inconvenience themselves with shoddy dress. “I’m so smart I can offend all the suits and still strike it rich!” It’s just as folly, of course. But peahens still know what to look for.

You’re probably wondering when I’m going to get to the point. Well, all of the above is the point: you have to put yourself in the mindset of the people you’re trying to get something from. Give people what they want, and they’ll gladly part with their money. But think in terms of real people, not averages or statistics. I learned in high school that the average woman has 1.6 children. Well, during the 24 years I lived there, I never met a woman who had 1.6 children. Most have two. Don’t worry if 40% of your customers think this way or that way. Decide which market you’re after, and optimize for that.

So, what’s my answer to Ahmad? Ha! Have your cake and eat it too! Implement the integrated ordering pages, and keep your current payment processor as an alternative. You’ll impress the people who trust a company that takes the responsibility for their own ordering system. And you’ll still have a safety net for those who’d rather trust a 3rd party provider.

Even if you don’t want to go through the trouble of implementing integrated ordering pages, it’s still a good idea to have more than one e-commerce provider. No matter who you use, you’ll run in the situation where one site is down and the other is not, or one can’t charge the customer’s card for some unknown reason, but the other can. For maximum redundancy, use at least one that’s not owned by Digital River. Nothing wrong with DR. Just that the companies they own share many things on the back-end.

Next Page »