Archive by Author

The (Trial Downloads) Numbers Game

I passed a milestone some time in the last week — over 1,000 trial downloads of some version of Bingo Card Creator.  Its actually a little higher than that as reported by my server logs but I’m discounting that a bit to account for download site update spiders and pirates.

But its really, really hard to tell exactly how many people are using Bingo Card Creator today.  This is obviously a number of profound interest to me.  In the last week, for example, Google Analytics reports that 95 people have hit my thanks-for-downloading page, which starts automagically downloading a trial demo.  On the other hand, only 18 people have used the update feature in Bingo Card Creator (17 of them with version 1.02, 1 with version 1.03).  So my lowball estimate for number of people using the software is 18ish at the moment, plus an unknown number of folks who are stuck with version 1.0 which doesn’t have update checking.  That number is unfortunately *growing* because getting a new version onto Download.com takes two weeks if you’re not willing to pay through the nose, and I’m not (need sales to cover August advertising still).

I’ve got a couple of worries for the discrepency between downloads as reported by Analytics and confirmed downloads as reported by update checking.  They could be due to any of the following:

1)  Analytics records the download but no download actually took place.  This could easily happen on, for example, IE.  Microsoft’s late-in-the-day embrace of security makes it impossible for my meta-refresh to the .exe to work properly on most computers, so I have to rely on the customers actually reading the first line of text on the page and right-clicking the download link.  This is obviously the worst sort of failure — its a failure I’ll never know about and can’t recover from.

2)  People download the demo and then fail to install it, after forgetting about it or what have you.

3)  People download the demo, install it, run it, and then are told they don’t have a sufficient IDE.  Despite the fact that launch4j, the Java wrapper of my dreams, will offer to launch the Java download page, I obviously can’t sit on folks shoulders and make them press the 6 buttons it will take to get the 18MB JRE installed.

4)  Folks might download the demo, run it successfully, and then opt-out of the checking for updates.  After all, the thinking goes, why would I need to check for updates if I’ve just downloaded it 2 minutes ago.  I might get an update request from them in 15 days when Bingo Card Creator expires their previous cancel (and then I won’t know whether its a user continuing to use my product or a new downloader… grr…).  It would be the simplest thing in the world for me to ping my server regardless of whether they want to check for updates or not, but its not honest.

Anyhow, I’m thinking of sweetening the pot a little bit to encourage people to check for updates.  At the moment my software comes with about a dozen unique word lists, and as time goes on that number is going to increase.  (I should really sit down and write some more, actually — they’re “new features” from the perspective of my users and only take ~10 minutes to compile each.)  I think I’ll reserve, say, 5 of these lists as a Bonus Pack.  And then, if folks don’t have the bonus pack installed, when I ask them for an update I’ll say “You’re missing the Bonus Pack of free word lists.  Would you like to download the Bonus Pack and check for other updates now?”  Since the Bonus Pack would be downloaded exactly once per customer, that would give me a more accurate count of total installations.

I could even, theoretically, just put the Bonus Pack in the installer and only *enable* it if folks choose “Check for Updates” (and/or automagically download a decryption key and decrypt it, whatever).  That, however, leaves a bit of a bad taste in my mouth.  Its the same “tell me you exist and I’ll give you additional benefits” transaction as the download-the-bonus-pack option is, but it seems to be based on a deception.

A Love Note To My Favorite Productivity App. Ever.

I just downloaded the Direct Access program from Nagarasoft today. It lets you type words to act as shortcuts to essentially anything you want on your computer. In default mode, its “type your keyword, then hit F1″ and you get your action. I call that the BANG key because in the Linux world typing a BANG (exclamation point) after the first few letters of a command gets you completion for it if you’ve done it recently. For example, out of the box fireBANG gets you a browser opened… from any place you can type text on your system.

15 minutes of setting up keys which are more useful to me and I had a configuration which I was happy with. I also remapped the BANG key to Alt-Enter, which I can quickly hit without having to move a hand and which I’m used to from Java IDEs. My productivity has not increased so much since I learned to Alt-Tab.

Let me paint a picture for you: here’s what my screen generally looks like when I’m in development mode.

A cluttered desktop

Looking at this ugly monstrosity, I suddenly realize “Uh oh, I really need to copy/paste a file from C:\cygwin\home\nameofdayjob\nameofdayjobcurrentproject\server\perl to C:\cygwin\home\nameofdayjob\nameofdayjobcurrentproject\client . And then I need to zip it. Aww “#$”. Zipping isn’t bad, thats as simple as right-clicking the file and using Winzip’s shell integration.

But opening monsterfolder is tricky. If I had the desktop available it would be as simple as picking the right shortcut out of the fourty that are there. But I don’t — I’ve got 15 other applications vying for my attention. And, likely as not, one of them is modal at the moment. Which means even if I try Windows-M (“Automagically minimize all programs and dump you on your desktop” — and if you don’t use this, START) I’ll get trapped at some file chooser dialog somewhere. So instead I have to navigate to it by picking one of those open explorer windows and typing the whole evil path in the address bar, in the process losing the contents of the explorer window.

But no longer!

Now its svrBANG and I get taken straight to that directory.

Now imagine I’m staring at that ugly, cluttered screen and one of the office secretaries comes up to me. “Sorry, Patrick, this needs your signature urgently.” “This” is invariably a memo which has Japanese I can’t read on it. The most recent culprit was “international exchange activities aimed at promoting economic improvement”, which naturally the Japanese have a two-letter word for. I have a dictionary site which I am totally dependent on for situations like that bookmarked in Firefox (it would practically be my homepage if my company didn’t lock me to www.nameofdayjob.com to increase our access count — I offered to write them a robot to hit the page 100 times a day to allow me to set mine to Google or something but noooooo they said that would be cheating). So I’ve got to click one of the firefox windows from the task bar (2 clicks), open up a new tab, and load the bookmark.

No longer! dicBANG and my functional illiteracy is successfully hidden for another 5 minutes!

Do you have a Start Menu which is overflowing with programs which you use once in a blue moon but can’t get rid of because you would then have to fish them out of Program Files or God knows where else? Just assign them shortcuts. PadGenerator is an excellent candidate for this — I only need it once for every Bingo Card Creator update — padBANG, done, one program group saved. I’m addicted to the old Windows-R, calc/notepad/cmd/mspaint trick. Now I don’t have to Windows-R anymore, and can extend that to programs which aren’t in the system path. paintBANG now brings up Paint.NET (oh, love that program). ftpBANG brings up Filezilla.

Do you have 432 web services you have to check on a regular basis? I’m sort of obsessive-compulsive about having access to data, and yet I underuse bookmarks hideously (never liked them because they were never portable between computers). Which means to get to Google Sitemaps, for example, I generally go to Google (via typing it out in my address bar, no less — a habit which I will never break) and then Get Lucky with “Google Sitemaps”. Now its sitemapsBANG, from anywhere. adwordsBANG. wsjBANG. instaBANG (instapundit, my “got 5 minutes to kill” blog of choice). josBANG. blogBANG (I’ll give you one guess). ffBANG (I shortened “fireBANG” to “ffBANG” for my favorite web browser, since I use this one so often).

Then I got started thinking of ways I could abuse this with my IDEs. I don’t know about you but on a scale of 1-10 I probably use all my IDEs at about a 3, because I never put in enough time to learn the guts of them. As a result, what should be simple like “Use autocomplete to throw out a try/catch block” is just beyond my capabilities for most of them. And I often end up editing programs in non-IDEs just for convinience (my favorite being nano, a pico clone — laugh all you want). Now I’ve got nice portable macros like #intconvBANG. Java mavens might recognize this one:

try {

bar = Integer.parseInt(foo);

} catch(NumberFormatException e) { };

Then I just replace bar and foo as appropriate and I’m done.

Here’s another which might be a little quirky: kBANG. k is, in my personal coding convention, always my variable-of-first-choice for iterating through anything other than an array. If I’m doing GAWK, its always (for k in hash). If I’m doing Java, k is my temporary variable that holds the iterator’s next(). Thus, kBANG is:

java.util.Iterator iterator = foo.iterator();

Object k;

while (iterator.hasNext()) {

k = iterator.next();

}

The program is $40 (save 15% with a discount available to most people who know what the acronym JoS/BoS stands for — search for the words “the 13th August”). The first time I saw that, before actually using it, I thought “God, thats a lot of money for a single-use toy”. Now I think it would be cheap at twice the price.

Impressions On Download Sites

Since I had a lot of luck with submitting my PAD file and getting it registered on a bunch of download sites automagically, I decided to try submitting to an awful lot today, via Robosoft.

Here is my view of the transaction that happens between any shareware site and a shareware author.  What I bring to the table: I give you software for free, and this lets you attract visitors to your pages, not necessarily in the search for my software but in the search for an aggregator of lots of software.  What you bring to the table: you help any of those folks who need bingo card creators find me.

Here’s what a lot of software sites seem to think the deal is: I pay them for listing.  They then, possibly, direct people to me.  And if anyone purchases my software after downloading there, then I pay them a cut.

Funny, given that there are hundreds upon hundreds of download sites on the net, and I have no efficient method of evaluating quality of traffic I’ll get, this does not strike me as a good proposition.  I would much rather spend the $20~$100 you guys want on Google ads, where I have 100% control of my advertising and can guarantee that I’ll get X number of downloads for my dollar.  I’m similarly unlikely to link to anybody who asks for it: while I sympathize with your desire to get a higher PageRank there are too many of you and all I need is for one of you to go “bad neighborhood” to screw my business royally.  I see most of you understand this, as the overwhelming majority of you (even the ones with paid registration) refuse to give a standard link to author pages.

Download.com and Tucows are sort of special cases: they have traffic which is just too high to ignore.  I’ve been on Download.com for about 3 weeks.  They’ve tracked over 100 downloads, which is roughly 50% of what I’ve given out myself over the same interval.  In another 2 weeks or so they’ll finally get through processing my submission for 1.03, after which those downloads should start to see much more frequent conversions (although I rather suspect one of my last 2 sales came from them, since that person came to my site the first time through the trial download).  (Tucows says they’ll have my application processed at some point in 2007.  Thanks fellas.  I love you, too.  After seeing what it takes to get a decent rating on your site I think I’ll pass in favor of producing a quality product.)

In any event, free is free.  My site is now available at 89 places more than it was this morning.  Here’s my promise to the RoboSoft author: if I get 4+ sales which originated at those sites in next 30 days, you get your $100 and a hand-written thank-you note.

Peeking Over Your Customers' Shoulders

I’m going to assume there are multiple possible paths to get your your Buy Now button in your trial software.  Pop quiz: which one gets used most often?

Oh, you weren’t tracking that?  Well, it seems like its fairly useful information to you — after all, from your perspective thats the most important mouse click in your program there is.  And if you know that information, you can test the placement of the link — does a nag screen produce appreciable results?  How about an exit screen?  Do people click the button more when the menu item is highlighted in blue (*cough* yes *cough*)?  Is your idea to put a tip-of-the-day to put another opportunity to buy a sound one (nice idea, Peter Muys)?  If your product is feature limited, what feature is the one that people can’t stand not having?
Yeah yeah yeah, nice to know but its excessively hard to implement, right?  You’re probably thinking you need to have some sort of shopping cart application and pass it a parameter and parse the output and and and…   No.  We’re computer programmers because we are too lazy to do things like that when there are 10 second solutions.

Step #1: Append a dummy parameter to your static HTML page which you send folks too.  e.g. Instead of accessing www.bingocardcreator.com/purchasing.htm access www.bingocardcreator.com/purchasing.htm?source=trial&location=menubar.  (Did you know that your web server will happily take any number of parameters to a request for a static HTML file and promptly log and ignore them?  Yeah, who knew.)

Step #2:  Using your favorite Analytics software, take a gander at the “dynamic content” for your file of choice.  Under Google Analytics this is under Content Optimization -> Content Performance -> Dynamic Content.  For example, I can see instantly that roughly half of the hits on my purchasing.htm page come from referals from my application.  My application has 3 paths to get to the purchasing screen (nag screens on two disabled features and the Purchase Now button), and if I wanted I could segment on those.  Something to try for v1.04.

P.S. Keep in mind its generally poor web design to include lots of dynamic parameters, because they confuse search engine spiders.  But since GoogleBot isn’t spidering your application, you can go hog wild with referrals from there and it will never be the wiser.

Bingo Card Creator 1.03 Released

Well, seeing as how I had some time free today I decided to finally get off my duff and start distributing Bingo Card Creator 1.03. The main changes:

  • Vastly improved memory usage while printing. Customers who try printing 50 cards on individual pieces of paper will not see the program die on low-memory machines anymore (I hadn’t anticipated anybody would try to do this and so didn’t test it… doh?)
  • Printing is now threaded. This means that for folks with printers which are getting a little long in the tooth, the interface won’t appear to lock up for two minutes at a time. Its mostly a cosmetic improvement since I’m guessing after printing most people will go straight to the printer, but app responsiveness is generally a nice thing to have. For 1.04 I’ll consider putting in some sort of dialog to indicate the printing is actually currently taking place — maybe popup a progress bar somewhere.
  • No more flickering — I render all the pages to get printed just off the screen in a JWindow, which means that there won’t be an ugly gray flicker in front of the main application window, and it won’t lose focus.

While at least two of these had been on the back burner for a while (“Hmm, that code is ugly and inefficient… I should fix it… sometime…”), they got kicked to the front burner directly after being cited as reasons for my first return. Yay for useful feedback, especially useful feedback that doesn’t technically cost me any money (did you know that processing a return through Paypal is totally free? Yeah, I was pleasantly pleased, too, but they refund your fee after you do one.), although it did cost a sale.

Fie Upon You, YSM

I decided to check my Yahoo Search Marketing stats today, which is always an ordeal.  And I was pleasantly suprised to see a weekly conversion rate in the 60% region, spiking to 80% on many days…

80%?!  No, sorry, something is rotten in the land of Denmark.  So I started drilling around…

My main ad terms looked somewhere in the realm of plausibility, and then I got down to the Long Tail of searchers, the kind that get clicked on once in a week… and which had 300% conversion rates.  Some bug in Yahoo’s CR tracking has been causing them to pick up multiple hits nearly every time somebody visits my download page (possibly because folks visit the download page multiple times — this is especially easy to do if you’re running IE and double-click links by habit instead of single clicking them).

So now I’ve got to figure out some way to test whether YSM is actually performing decently or if its entirely a mirage caused by poor data analysis.  Boo.

Single Minute Exchange of Dies

I studed Toyota way back during my study-abroad year in Kyoto as a college student, but hadn’t heard about Single Minute Exchange of Dies. The idea is very relevant to uISVs, but we might understand it better as “implementing scaleable systems”.

Briefly, a die is a big nasty piece of manufacturing equipment. As with all equipment, they have faults and failures. As with all equipment on an assembly line, when they are down the assembly line gets held up. As a result, there is a strong temptation to let the faults go to avoid killing the line, which results in slightly malformed components, which results in lower quality of output. Toyota had (and, to my knowledge, has) a corporate culture which was absolutely intolerant of defects, and they invented a system for system improvement. The system improvements they got from their system let them change dies in minutes instead of in days, which gave them the flexibility to yank them any time they performed sub-optimally, which lead to Toyota cars being some of the highest-quality in the world, which helped lead to US politicians campaigning in Michigan being the only people who really enjoy American cars. (OK, I suppose Japanese mobsters count, too.)

This is very relevent to the article which I posted yesterday regarding support and scalability. That is the beautiful thing about systems: systems scale. If you sell a car and the car breaks down, you get to have somebody fix it, and every additional break-down costs you additional fixing. Or, you could just sell cars which don’t break down. If you sell a piece of software that crashes, you have to answer an email “Why did my software crash?” Or, you could stop your software from crashing. Do you have systems in place which make this easy for you? Because you should: work on your system once and you keep getting value out of it for an extended period of time, without inputting more work. Here’s some systems you should probably have working for you (the 3rd one is directly responsive to “Uh oh, I spend too much time on support”, and its something that I could use some serious improve on myself):

1) Order management: For a B2C company I cannot imagine a reason why you would not totally automate the order process. Customer pays you, customer gets license key, you wake up in the morning a little richer. I use e-junkie for this and the service is brilliant: for $5 a month and Paypal fees they take care of the entire problem for me. Setting up e-junkie took an initial investment (about an hour of my time, plus time to research the tradeoffs & etc) and pays me dividends for every order: customers get instantaneous service, which is a selling point, and when my order volume (hopefully) increases from the current one-per-week I won’t be wasting my time checking that Paypal payments were received properly and manually mailing out CD keys.

2) Systems to support marketing: How easy is it for you to get a link to the most linkable page on your website? You’ve probably gotten most of yours from hustling for them — find 5 pages in a related niche, pitch your idea to 5 webmasters, get maybe one link from a PR2 site? Well, thats certainly one way to do things, and when you’re bootstrapping you’ll need to do it. But you can implement a system to get yourself links in 5 seconds. Watch:

Hiya, I hope you like my blog about uISVs. If you do, please feel free to share it with your friends! If you have a web page, blog, or want to send a link via email, just copy and paste the following: <a href=”http://microisvjournal.wordpress.com”>MicroISV on a Shoestring</a> . That will create a clickable link which your friends can follow back to my site. Thanks much for your interest!

One page on my product’s site offers some information of interest to elementary school teachers. It has an exhortation very similar to the one above. 20% of the people who land on that page convert so I rather like it when people see it. Roughly one out of every 200 visitors sends the link out. Multiply that by 1000 visitors per week and I get 5 links, some of them from decently influential sites, for free. Did I have to hustle and write 25 emails? No, the day I got a link from a PR5 ESL site I was busy doing the important things for my uISV’s success: drinking cocoa and reading the best series of books about the Napoleonic Wars fought with dragons ever written.
If you’re willing to spend more than 5 seconds, you can incorporate scripts to mail a friend, buttons which submit your site to digg or one of the other social-bookmarkers, Javascript buttons to bookmark a site automagically, etc etc. I lack the technical skill to do some of these and my target audience does not quite live in the Valley’s Web 2.0-induced echo chamber, but my two sentence HTML tutorial worked wonders.

3) Build systems: Here’s one place where I’m woefully inadequate. Suppose I get it in my head to change the text in a single dialog box in my program. I hit Ctrl-S to save the resource file. Now here’s what I have to do:

1) Run my program and verify that the dialog has not broken (5 clicks).
2) Export the JAR from Eclipse (roughly 6 clicks).

3) Run my obfuscation program on the exported JAR. (4 clicks)

4) Run my wrapper program to turn the JAR into an exe (4 clicks)

5) Copy the exe into the distribution directory (4 clicks).

6) Run my installer build script (2 clicks).

7) Install my program (4 clicks).

8) Visually inspect that nothing has broken (~10 clicks).

9) Copy the new installer to my web server (4 clicks).

10) Delete one file from the webserver and copy two. (6 clicks).

Thats in the vicinity of fifty mouse clicks, taking 15-30 minutes, to make a one-character change to my published executable. As you can reasonably expect, this forces me to make my changes in bunches, where there’s even more likelihood that something goes wrong, and where neat new features which are tested and done sit on my local machine for a week (3 at the moment and counting, include one which fixes the poor architecture choice which caused my first return and which is continuing to spoil customer experiences) because I can’t spare the time at the moment.

What I really need to do is break down and learn how to actually use an ANT build script and unit tests to do this whole thing in one-tenth the time. Build in one click, observe unit-tests function, give it a visual inspection myself, deploy in one click. Then I won’t be producing the computer equivalent of overly-expensive breakdown-prone cars with the fuel efficiency and aerodynamics of aircraft carriers*.

*This metaphor has been brought to you by Dave Barry, in his seminal work Dave Barry Does Japan, which won’t teach you very much about Japan but will cause you to bust a gut laughing.

[Edit: I tweaked a paragraph to make the connection between SMED and the software support scenario more explicit, and linked Dave Barry Does Japan.]

Seasons Change, Ads Get Borked

(If this is your first time reading a search post from me: DSW are a very business-related keyword which unfortunately this blog manages to rank higher than my business on.  Apologies for the obfuscation: D01ch S1ght W0rds.  In queries and ad text its always spelled out normally.)

Well, the upcoming return of teachers to school has apparently massively shifted the number (waaaaaaaaay up) and the behavior of people searching for my search terms, and my previously decently performing ads have sunk to about 10% CR (Yahoo has also sunk, although the magnitude was a lot less).  I’m trying a couple of things to get them back up:

1)  My most common search term is a variation on “DSW list”.  I always hit that person with DSW bingo instead, which gets about a 1.5%ish CTR and formerly had a pretty decent conversion.  I decided to test actually giving them the lists, since I have them on my website and the page they are on tries to “upsell” people to the free demo about every other word.  The only problem is that for any of these search queries the #1 organic result is just as good as my site (although slightly less navigable).  So I decided to make my add stand out in the crowd:

DSW Lists
Free lists.
No kidding.
www.BingoCardCreator.com 

Given that almost everybody is using the full character allotment in every line, the white space immediately catches the eye.  That plus the fact that this very closely matches their query has caused the CTR rate on the ad to jump to about 6%ish (triple to quadruple my best previous performer for this ad group), and (this was the major shocker) the conversion rate is higher, too!  Its a shade below 20% after two days (umm, boo) but given that the rest of my ads have been at 5-15% for a week I’m considering keeping it (this means my CPA has shot past 60 cents — egads!  Call the medics!).

Also, I noticed that every single ad on Google AdWords is the same: “We sell X.  Come get it!”.  Boo for lack of creativity.  I know the character limit is a little constraining but surely there is a way to get meaningful copy in four lines — the Japanese have been writing sub-17 letter poems from what is effectively a 200 word vocabulary for 500 years and they haven’t gotten bored of them yet.   (This is even more impressive if you understand how they are constrained in subjects — autumn, for example, “leaves” you with radiant colors, dragonflies, and thats about it.)

So anyhow, with poetry as my inspiration and an appreciation for the corny-goofballness that a lot of elementary school teachers appreciate:

DSW Bingo
Roses are red, violets are blue,
Bingo makes students love you.
www.BingoCardCreator.com

The early results suggest that I am a better programmer than a poet.

Support Does Not Scale. Customer Service Does.

I’m a big fan of all things scaling, because thats what takes you from having to scramble for money on an hour-to-hour basis and gets you to the whole “Making money while drinking pina coladas on the beach” (or, in my case, iced tea in the shade) ideal uISV existence. Two of commenters recently left well-reasoned comments to the general effect that “Support costs a lot of your time and most users don’t need it. Don’t go overboard. Instead, help out the vast majority of your customers who don’t need support.” My comments:

Cutting a customer off: There is a certain school of thought that says you should have a maximum level of tolerance for any particular customer using support resources, and after that point you say “No more”. I actually think this is (potentially, depending on execution) a decent idea, which might suprise people in light of my recent paen to excellent customer service posts. You might also be suprised to learn that I’ve described someone doing it in the last 24 hours.

Here’s the cruel math of telephone customer service: the average cost of servicing a phone call is $12. The average profit of a small order is less. You cannot afford to absorb a support call for every small order. Class poll: who caught the fact that when the the representative offered free shipping and cookies to a minor no-profit-in-this-transaction customer it terminated a (potentially hostile) support incident in under a minute, totally obviated the need for a second call or an escalation to the supervisor, and still got the sale? And that that customer was so ecstatic to be brushed off he came back bearing hundreds of thousands of dollars? Thats the difference between support and customer service. As a support incident, that call was a waste of time/money. As an opportunity for demonstrating you’ve got an unparalleled dedication to customer service, that call is as good an opportunity as every other customer contact you make.

Saving Money/Time on Support: Your first line of defense against “wasting time” (never, ever, ever think of talking to a customer as a waste of time: see below) in support is producing a quality product. I sell to a rather non-technical market. I could be spending the rest of my life fielding calls on how to use the product — and I rather don’t want to, so I coded the project to be immediately usable by anyone who is capable of finding the Internet. The handholding starts at downloading/installation (clicking enter until you can’t anymore works and will dump you at my program’s main screen) and continues to my main screen (which doesn’t just explain what you need to do, it reads my app’s typical use case out to you, step by step). Improving your application is probably one of the best-scaling support investments you can make: if you consistently find yourself copy-pasting a canned “That feature is in the Tools Menu, 3rd from the bottom” response, you should probably go about making it more obvious. If you have a work-around for that annoying printing bug, fix the annoying printing bug.

How to Think of Support: I would generally advise against thinking that you’re wasting time doing support. Most people are rather poor actors — heck, most actors are rather poor actors. If you’re annoyed by the incident thats likely to come across to your customers. Think of it as an investment if it helps you — you’re investing in your reputation as a customer-service powerhouse. Against a reputation like that, firing off a few emails every day is cheap. (Think of it: suppose that 5% is an accurate accounting of the number of “needy” customers you have. Suppose you’re rolling in the dough at 1,000 orders a month. 5% of 1000 is 50, multiply by say 4 inquiries each is 200, averages to 7 per day. 7 emails a day is nothing — you can take care of that while brewing coffee.)

Politeness and a smile are free: You can’t always say yes to a customer request (although I’d strongly suggest defaulting to yes and requiring good reasons to say no, rather than the other way around). You can, however, have 100% of your customer-facing communications be polite and positive. For instance, compare the following two emails.

Bob,

You emailed me about this support issue 4 times this week. I’ve done what I can for you. Its obvious things aren’t working out. I’m refunding your purchase price.

Sincerely, Peevish uISV

Thats the wrong way to do things.

Dear Bob,

I have done some research regarding your support request. As it turns out, our product is regrettably not the best on the market for your needs. In our professional opinion, MicroFoos’ Foozle 2006 is a closer fit for your requirements. While it pains us to have not been able to help you, here at Pleasant ISV we are totally dedicated to customer satisfaction. Accordingly, we could not in good conscience accept your money with these issues outstanding, and have instructed our credit card processor to refund you.

Thank you for choosing Pleasant ISV and we look forward to the opportunity of serving you in the future.

Sincerely, Pleasant ISV

Content-wise, these emails describe the exact same set of circumstances. In terms of customer perception, these two emails are worlds apart from each other. Peevish ISV’s mail is, well, brusque and strongly leaves the impression that there was something wrong with the customer. Pleasant ISV’s mail doesn’t blame anyone (no, really, read it again — it doesn’t say or imply a single negative thing about Pleasant). It screams “we’re competent, we’re professionals, and we don’t accept anything less than the best”, and it leaves the door open rather than slamming it on your customer’s fingers.

An inspirational quote: “ We are what we repeatedly do. Excellence, then, is not an act, but a habit.” — I have seen this one variously attributed to Aristotle and Adlai E. Stevenson. In any event, if you make excellence the routine in your customer service, people will know the difference. Promising good support/promising good customer service scales very well for your business. Think of it like the guarantee: you can’t afford for everyone to ask for their money back, but you know in advance that the overwhelming majority of people will not ask for their money back. And you know that the number of customers reassured by having the guarantee outweighs what you’ll spend on it. Support is exactly the same. Most people won’t need it, but lots of people are reassured by the fact that it is available if they do need it. Your customers have been trained for years to distrust software, despite the fact that most customers will not have any problems: software is impersonal, software gets in the way of them doing what they need to do, software breaks, and when software breaks they spend 10 hours in tech-support heck talking to people who hate them and don’t have any answers.

What if you could reassure customers? What if you had a deserved reputation for *not* blowing up in people’s faces, and for being a joy to work with? So beat the drum and beat it loudly:

If you have any problems, or just want to ask a question, talk to us. We have an actual human here. Even better — not just an actual human, you’ll get all your support emails answered directly from the head engineer/company president! (Try that with your other software vendors some time!) We care about your concerns and will work to make them right. Take a look at what Mary Sue of Normal, IL and Bob Smith of San Fransisco had to say about us: “Wow, I had expected to get a canned reply but they got back to me within 15 minutes and kept working until my problem was solved.” and “Pleasant uISV is the best in the industry, bar none. Once I bought one of their products and it wasn’t working out for me. They gave me my money back without me even asking and referred me to a competitor! It was more important that I be happy than that they make a buck. I’ll never stop using Pleasant and I recommend them to everyone I do business with.”

Or, you could say something like

Support incidents: Every customer has a maximum of four support incidents, after which they must pay a non-negotiable charge of $24.95 per incident. We do not answer requests about generic computer configuration problems, setting up web pages, etc etc.

Which of these two companies would you rather do business with? Which sounds like a risky investment? Which sounds warm and inviting?

Semi-Offtopic: The Passion of the Customers

I haven’t worked at Quill in years but I just remembered my favorite thing about the place: there is a wall right next to the breakroom which is devoted to customer service (have I mentioned that they’re fanatics about this?) It has daily metrics (I was never quite sure how they were gathered, but I suppose there must be a combination of phone surveys and automagically collected data) covering all the usual suspects: what percentage of customers are very satisfied, satisfied, etc; what percentage of orders had errors and where in the chain that error was localized to (one summer there was a spike on that graph, from “absurdly low” to “industry standard”, directly attributable to my team. You can draw your own conclusions as to how many of us kept our jobs.)

But my favorite part of the wall was letters. Quill had, to my knowledge as a lowly worker bee, two policies regarding letters: first, they were all collected and any workers individually singled out in them had the action noted on a publicly-visible board and in their file (and Quill would FIND you: there was at least one letter addressed to “that lovely Spanish woman with the Texan accent” and, by God, she got the credit for it). Second, the letters and/or copies (some people couldn’t bear to part with them) were posted on the bulletin board next to the numbers.

Anyhow, my favorite letter wasn’t a letter at all. It was a prayer card from a convent in, as I recall, New York. For anonymity’s sake we’ll call them the Sisters of Perpetual Gladness. Oh, they were a happy bunch, and it was contagious. Do you know why we had a prayer card from the Sisters of Perpetual Gladness? I don’t, because the people named on the card (whom the Sisters had dedicated a novena to — thats nine days of prayer, for you non-Catholics in the room) wouldn’t say exactly what they had done. Thats my personal metric for customer excellence: Nuns Praying For You (NPFY). Paypal, yeah, there’s a NPFY-0 business if I ever saw one. Quill probably has the highest NPFY of any any business I’ve ever been associated with. Keep in mind we were earning NPFY60+ for, well, prompt delivery of paper and pens.
But the Sisters were loyal customers and in Order Entry we lived for their call. I got one once — it made my year. And the Sister blessed me, too. I blessed her back, which was probably technically against company policy (although if you’ve been reading closely you know that when stacked against customer satisfaction policies were more like guidelines and guidelines were more like advice and advice was more like suggestions and suggestions were more like comments). Anyhow, for the Sisters, if they had asked Order Entry “We’d like an 18-wheeler filled full of printer paper and the most we’re willing to pay is, hmm, nothing. Oh, overnight delivery, too.” the only thing we would have said is “But Sister, where will we put your cookies?”

There was only one problem with the Sisters. We had some heavy-duty CRM (customer relations management) software at Quill. It supported locking a customer to one particular desk or extension — for example, if you’re the Big Important Government Account with a 6,000 page bid request your order is probably too important to be handled by $10-an-hour me, so you got locked to a specialist. The Sisters did not require any special handling like that. As a matter of fact, they required a specially-written rule to ban handling like that for their account. The reason was that every lowly worker bee could put a special handling restriction on an account, and everyone could take off a restriction from someone at equal-or-less access level, which made the Sisters’ account history look like a Wiki revert war (“They’re MINE!” “NO, they’re MINE!” “My family is from New York! I should get to call them*” “But you’re Jewish!” “So are you!” “Yeah, but I dated a Catholic once!” etc, etc)

* The Sisters’ order always had a problem requiring calling them, immediately. Typically, it was that they had missed an opportunity to get free cookies. At any given time, you see, Quill had hundreds or thousands of promotions running. Dozens of these ended in the punch-line “Free Mrs. Fields’ Cookies”. We got a very stern notice every month “Here are a list of the new promotion codes, in case a customer forgets. Remember, Mrs. Fields’ Cookies are NOT appropriate as a we’re-sorry and the customer must specifically mention the promotion to receive the premium.” An exceptionally morally upright employee would phrase the phone call something like this:

“God bless you. This is Sisters of Perpetual Gladness, Sister Mary speaking. How can I help you?”

“Hello Sister Mary, this is Bob for Quill Corporation Office Supplies. I was wondering if I could speak to you about your order of *checks watch* two minutes ago?”

“Oh, certainly.”

“Well, Sister Mary, we reviewed your order and there seems to be a problem. The last 47 times you’ve ordered with Quill, you ordered one free tub of Mrs. Fields’ Cookies. We see there are no cookies on this order, and wondered if there might be an omission.”

“Oh, thats certainly kind of you, but we didn’t see the free offer…”

Didn’t see? Why, no problem, we can look it up for you. Do you know what catalog you were using?”

“Oh, I don’t know, I don’t have it in front of me.”

“Hmm, I’ll bet it was the *check premium list* California july legal small offices circular.”

“Err, are you sure?”

“Well, did your catalog have the word Quill and some brightly colored office supplies on the front cover?”

“Yes, yes, it did.”

“Well, mystery solved! So did the circular. The promo was on page 437b. Oh, don’t worry, I’ll go right ahead and get this order and your cookies you to you. You don’t have to do a thing.”

“Why, thank you very much young man. God bless you.”

“God bless you too, Sister Mary.”