Tag Archives: software

SQL Pretty Printer

I did some consulting a few months back for James Wang of SQL Pretty Printer, concentrating mainly on marketing and usability. James was kind enough to send me an update on his progress and allow me to reproduce it here:

I launched my product SQL Pretty Printer several years ago, but I wasn’t satisfied with sales. So I contacted Andy to do some consulting about my product and website.

After several rounds of questions, Andy looked at my product and website and did some research. Andy’s final report is easy to read and understand, and lists about 100 actionable points about my product and website. After that, it took me about 3-4 weeks to apply this advice with the help of Andy. 3 months later, I’m really satisfied with the result: the downloads have increased 36%, and the sales increased 25%.

So my conclusion is if you have a product, and want to sell more, Andy is the person you need to approach.

SQL Pretty Printer is a good example of focussing on a single, well-defined problem and really nailing it, allowing you to turn this:

ugly sql

Into this:

pretty sql

SQL Pretty Printer has a wide range of formatting options and comes as a standalone Windows app, Visual Studio add-in, SSMS add-in and even an API for integration into your own app. If you have to work with less than beautiful SQL I recommend you try it.

Haiti disaster relief

David Trump of the ASP is offering free software licences to people who contribute to Haiti disaster relief. This seems like a great idea to me, so I am copying it for PerfectTablePlan. I am going to try it for 24 hours and see how it goes. I am blogging about it here in case other software vendors are inspired to try it.

Should you offer a money back guarantee?

money back guaranteeA few weeks ago I was going to buy a digitizer tablet for my PC. Then I noticed in the vendor’s terms and conditions that they wouldn’t accept a return once I had opened the packaging. But I couldn’t know if the tablet works until I open the packaging. Duh. I didn’t buy it. Similarly I look for a sensible money-back guarantee whenever I buy software. I don’t remember ever invoking such a guarantee for software, but it is nice to know that I could if I wanted to. Also, I see the lack of such a guarantee as a warning signal that the vendor isn’t confident about the quality of their product.

I offer a 14-day money back guarantee on my own Perfect Table Plan software. The only provisos are:

  • They have to tell me what they didn’t like about my software. This is very useful feedback for me.
  • They have to email me that they have uninstalled the software and won’t use it again. I have no way of checking this, but I want them to be clear in their own mind that they are a liar and a cheat if they carry on using it (if you have read Ariely’s excellent ‘Predictably irrational’ you will know that many people are prepared to be a little dishonest, but few will lie and cheat outright).
  • They have to return the CD, if they purchased one.
  • The guarantee is only valid for 14 days.

But I am fairly relaxed about about all of these. If it is clear that someone thinks they haven’t got their money’s worth out of my software, I will pretty much always give them their money back.

Note that is isn’t a ‘no questions asked’ money back guarantee. I haven’t been quite brave enough to try that yet and really want feedback on why they didn’t like my software. Also the 14 day guarantee is shorter than most. The reason is that a lot of people buy my software for a single use (e.g. their wedding reception) and I don’t want to make it too easy for them to use the software and claim a refund after they have finished with it. However I have heard vendors say that their refund rate actually dropped when they extended the length of their money back guarantee (due to increased procrastination, perhaps). I may test switching to a ‘no questions asked’ and/or longer guarantee period at some point.

The advantages of a money back guarantee to the vendor are:

  • More sales. If they customer is confident they can get their money back they are more likely to buy. I don’t have any numbers to back this up, as I have always had a money back guarantee. But I know I am considerably more likely to buy if there is a money back guarantee. Aren’t you?
  • Less chargebacks. If a customer buys with a credit card they can get their money back anyway. They just have to ring their credit card company and do a chargeback. Your payment processor will then take the payment back and, to add insult to injury, slap a chargeback fee on top. Too many chargebacks and they might even close your account. Better to refund and avoid the chargeback fee.
  • Less bad vibes. No matter how great your software is, some people aren’t going to like it. Maybe your software isn’t a good fit for what they want to do. Maybe they are just having a bad day. Better to give them their money back than to have them bad mouth your product on every forum they can find.
  • Less bad customers. Some customers (thankfully very few, in my experience) cost more in time and mental energy than their licence fee is worth. It is better for you to cheerfully refund them and focus your efforts on more financially and psychologically rewarding customers.
  • Staying legal. You may be legally obliged to give a refund in some circumstances.
  • Good karma. If you aren’t happy, I really don’t want your money.

Generally it costs you nothing to refund a software purchase, apart from a few seconds of your time (depending on your payment processor, some may not refund the processing fee). The only disadvantage of a money back guarantee is that it makes it easier for a customer to cheat you. A lot of vendors worry about this, but in my experience (and of others I have spoken to) this isn’t much of an issue in reality. My refund rate has been consistently around 0.5% (I am not including cases where I refunded because people bought the wrong type of licence, bought 2 licences instead of one etc.). I would be very surprised if dropping my prominent money back guarantee didn’t also drop my sales by a lot more than 0.5%. So, even if all the refunds are fraudulent (which I very much doubt) I am confident that the refund policy increases my profits overall. Sufficiently confident that I don’t intend to run an A/B test any time soon.

Interestingly, my refund rate is 10 times lower amongst customers who have purchased a CD. This could be because these customers are less price sensitive and so don’t see the refund as worth their precious time. Or it could be because of the extra hassle of having to send the CD back (I know a wily B2B vendor who includes a CD with every purchase for exactly this reason). Probably it is a combination of both.

Some vendors think that they don’t need a refund policy if they have a free trial. I don’t agree. When I buy software I want a free trial AND a money back guarantee in case I only discover a problem after purchasing. Also I know (from a survey) that some 25% of my customers don’t even try the free trial of my software before they buy. I expect I would lose a lot of these sales without a money back guarantee.

I think the case for a money back guarantee is even stronger for B2B software. Customers buying B2B software typically aren’t spending their own money, so they are probably less likely to ask for a refund. Especially as this would mean admitting to their boss and peers that they made a mistake buying your software in the first place. Certainly I have a lower refund rate to businesses than to consumers.

From a business point of view, I think the only case where you can justify a no refund policy is when you have a high cost of sale, e.g. enterprise software that requires a lot of configuration. In that case you could include a non-refundable set-up fee that covers your costs, but still have a money back guarantee on the remainder of the purchase.

No doubt refund rates vary according to product type, price range, customer demographics, geographic market and a range of other factors. But , reading forums and talking to other vendors, the typical refund rate seems to be in the range 0.1% to 1%. If your rate is much above 1%, perhaps there is a problem with your product you need to address? If your rate is much less than 0.1%, perhaps you aren’t marketing your product aggressively enough?

In the early days I found it hard not to see refund requests as an insult to my product. But now it really doesn’t bother me and I cheerfully make the refund. I just add the key to a ‘blacklist’ in the software so it won’t work in any future releases.  I don’t attempt to disable it in the current release. I don’t see implementing a ‘phone home’ strategy to make this work as being a profitable use of my time.

In summary, by not giving a money back guarantee you might avoid a small number of customers cheating you. But I think you are very likely to be losing a lot more in chargebacks, missed sales, ill will and missed feedback than you save in fraudulent refunds. Try it. You can always revert back in the unlikely event that your refunds go up significantly more than your sales. And if you have a money back guarantee you should shout about it on your website. Having a money back guarantee and not advertising it prominently seems like the worst of all worlds to me.

New links page

I have put together a page of categorised links to blog posts and articles that I think might be useful to developers and marketers of commercial software in general, and microISVs/indie developers in particular. I intend to add more links from time-to-time. My rules for inclusion are secret, arbitrary and capricious, so please don’t ask to have your link added.

Outsourcing software testing

Every time I write a post for this blog I carefully check it for typos. I then get my wife to proof-read it. She always finds at least one typo. Often there will be whole words missing that my brain must have interpolated when I checked it. I read what I thought I had written. She is unencumbered by such preconceptions.

Similarly, it isn’t sufficient to do all your own testing on software you wrote, no matter how hard you try. You will tend to see what you intended to program, not what you actually programmed. Furthermore your users have different experiences, assumptions, and patterns of usage to you. Even in the unlikely event that you manage 100% code coverage in your testing, those pesky users won’t execute those lines of code in the same order you did. I have spent hours testing a program without finding a bug, only to see someone else break it within minutes or even seconds.

So it is essential to involve people other than the original programmer in testing, in addition to (but not instead of) the testing programmers do on their own code. This poses something of a challenge to one-man-bands such as my own. I don’t have other programmers, let alone QA staff, to call on. I can, and do, use volunteer customers for beta testing. But, in my experience, beta testing is not an effective substitute for professional testing:

  • It is haphazard. I never hear from ~90% of my beta testers.
  • You can’t control beta testers sufficiently, for example you can’t set them tight deadlines, make them concentrate on a particular feature or do their testing on a particular operating system
  • The quality of bug reports from customers is often poor. Customers often don’t understand (or don’t have the patience) to describe a bug in enough detail for you to reproduce it.
  • Professional testers know how to break software.
  • The new release should be as polished as possible before any customers see it. Your beta testers will be some of your most enthusiastic customers. You don’t want to use up that goodwill by sending them buggy software.

Consequently I like to pay third party testers to test my own PerfectTablePlan product after I have finished my own testing and before I do any beta testing. Previously I have used softwareexaminer.com, but they are no longer in business. So I decided to try a couple of other offshore testing companies I had heard about:

testlab2.com
qsgsoft.com

The problem with paying a testing company is that it is hard to assess the quality of their work until it is too late. If they report few bugs it could because there are few bugs or because they didn’t do a very good job of testing. By using 2 companies to test the same software release I was also testing the testers (I didn’t tell them this).

I paid each company to do approximately 3 days testing on the Windows and Mac versions of PerfectTablePlan. I was very pleased with the results. Both companies found a useful number of bugs in the software. They were also able to test on platforms that I didn’t have access to at the time (64 bit Windows 7 and Mac OS X 10.6). I didn’t keep an exact score, but I would say that QSG found more bugs, while TestLab2 was more responsive.

QSG found some quite obscure bugs. They were even able to tell me how to reproduce a very rare and obscure bug that I had been trying to track down for months without success. Communications were sometimes a little slow (at least partly due to us being in different time zones) but it wasn’t a huge issue. My only real grumble is their billing. Despite several reminder emails from me I am still waiting to be invoiced for the work several months later. I like to pay my bills promptly and then forget about them.

TestLab2 didn’t find quite as many bugs, but I was impressed with their responsiveness. They installed Mac OS X 10.6 within a few days of it being released, so they could test PerfectTablePlan on it. When I emailed them on  a Saturday about a last minute bug fix for Mac OS X 10.6 they tested the fix the same day. That is great service.

TestLab2 and QSG are based in Ukraine and India, respectively. At around $15/hour they are about a third the price of equivalent US/European companies I contacted (who might also outsource the work to Eastern Europe and India, for all I know). Some people believe outsourcing work to countries with lower costs of living is evil. I’m not one of them. I sell my software worldwide and I am also happy to buy my services worldwide, especially if I can get significantly better value for money by doing so. While there are rational arguments to be made about problems caused by differences in culture, language and time zone caused by outsourcing to other countries, I didn’t find any of these to be a major issue in this case. Most of the other arguments I have heard boil down to the simple ugly fact that some westerners feel they are entitled to a disproportionate share of the global pie. But I don’t see any reason why someone in Europe or North America is any more deserving of a job than someone in Ukraine or India.

With the help of these two companies I was able to put out a really solid PerfectTablePlan v4.1.0 release, despite the large number of new features. In fact, I am only just putting out a v4.1.1 with some bugs fixes several months later. I plan to use both companies again. I hope readers of this blog will give them some additional work to ensure they stay in business. But not so much that they don’t have time to do my next round of testing!

Presents for programmers

It is coming up to that time of year again. You had better start dropping some hints on what you want for Christmas if you don’t want socks again. How about a software themed T-shirt? You can never have too many T-shirts and it means you can go an extra day before you have to do the laundry.

It just so happens that www.programmer-tshirts.com (set up by myself and Patrick McKenzie last year) carries a range of wittily(?) captioned T-shirts for software types of all stripes including: microISVS, C++ programmers, LISP programmers, Mac developers, software engineers, managers and bloggers. Following on from a conversation at ESWC 2009 (with someone who might prefer to remain anonymous) I have just added another design for server programmers:

I know the T-shirts aren’t cheap (print-on-demand is expensive), but I have ordered a couple myself from the European shop and the quality is very good. Also you can customise the t-shirts (e.g. choose a different colour). Best of all the commission on each T-shirt (12.5% for the US shop and £1.50 for the European shop) goes to two very worthy charities:

  • Sightsavers International works to alleviate sight problems around the world. Every year Sightsavers and their partners treat millions of people for potentially blinding conditions. It costs as little as $0.10 to protect someone from river blindness for a year.
  • Jaipur Foot have developed an effective and easy-to-fit prosthetic lower limb that can be produced for a little as $30. The charity has distributed over 300,000 limbs free of charge in 22 countries.

It won’t be a surprise to regular readers that I am going to finish this post with a less than subtle call-to-action.

(STOP PRESS: 15% off everything in the European shop until 29-Nov-2009, use voucher code: NOVEMBERSALE)

microISV reading list

I have added a microISV reading list page to this blog. Please feel free to add your own comments to the page on the books listed or any other books you feel are relevant.

Off to ESWC 2009

marketing for microisvsI will be off to ESWC 2009 in Berlin in a few days. I am doing a talk “Marketing for microISVs – embracing the dark side?” on the Saturday morning. It is going to be tough to tackle as huge a subject as marketing in 45 minutes including questions, but I like a challenge!

I am also looking forwarding to touching base with old acquaintances and meeting some new people. If you are going to there, do come and say hello.

How good is your Ecommerce provider?

ecommerce surveyIt is important to choose the right Ecommerce provider for your business. A bad choice can have a significant impact on your sales and switching provider can be a major headache. But which one is the right one? It is easy enough to find out about prices and features, but what about the all-important intangibles such as support, ease of set-up and reliability? I hear a lot of good and bad reports about various vendors. I thought it was time for something a bit more comprehensive and systematic – a survey. That’s where you come in.

I hope this survey will provide a useful resource to software vendors looking for an Ecommerce provider and also force the under-performers to raise their game. But I need your help. So please click the link below and tell me what you think about your Ecommerce provider. Please note:

  • You must be a software vendor (web or desktop) and I need your email address and product website to prove this. You will have to reply to an automatic email after the survey to verify your identity. Without this it would be easy to rig the results. Your address and domain will remain confidential and won’t be used for any other purposes.
  • If you have used more than one Ecommerce provider in the last 2 years you can fill out a separate survey response for each one.
  • As there are quite a lot of Ecommerce providers I think I will need at least 100 responses to get a good data set. 200 would be better. So tell a friend.

** the survey is now closed **

results here

A new front-end for e-junkie

e-junkieI am been very happy using e-junkie as my payment processor for the last 4 years. I pay them a few dollars per month as a flat-fee and they provide an interface to PayPal, GoogleCheckout and 2Checkout (and others) plus additional features such as sending licence keys and handling coupon codes. It isn’t a fully fledged a registration service like Avangate, FastSpring or Plimus, but it has been adequate for my needs, has responsive customer support and is very cheap. In theory I could have written a load of scripts to do what e-junkie does, but re-inventing that wheel would be a lousy use of my valuable time.

I had been using e-junkie ‘Buy now’ buttons, but things were starting to get complicated with the branching of my single PerfectTablePlan product into three products: PerfectTablePlan Home Edition, PerfectTablePlan Advanced Edition and PerfectTablePlan Professional Edition.  3 products, each with and without a CD and available in 3 currencies is 18 purchase options, not including the choice of PayPal, GoogleCheckout and 2Checkout as processor. I also had additional options for upgrading version (e.g. v3->v4) and upgrading edition (e.g. Home->Professional). Doing all this through ‘buy now’ buttons was clearly going to be a mess.

I looked at the e-junkie shopping cart, but it had a number of shortcomings I couldn’t live with, most notably:

  • It always shows a coupon field. I don’t use coupons very often. A coupon field says to a customer without a coupon “Someone else getting this cheaper than you – sucker!”. There is a good chance that they will hit the back button and start searching for a coupon (I have done it myself). Maybe they will never come back. I only want the coupon field to appear if I give the user a particular URL, and I will only give that URL to customers who have coupon codes.
  • It always shows the ‘Buy with GoogleCheckout’ button – even if GoogleCheckout don’t do transactions in that currency. So a customer buying in US Dollars can click the ‘Buy with GoogleCheckout’ button, only to be told they can’t buy in dollars through GoogleCheckout. That is a very poor customer experience.

I investigated e-junkie ‘variants’, but these weren’t an adequate solution either. I was loathe to pay more for my payment processing. So I asked my good friend Paul Kossowski, an experienced Javascript programmer, to write me a payment form front-end to e-junkie. My basic requirements were:

  1. Handle multiple products, options and currencies.
  2. Show a running total depending on the product, number and options selected.
  3. Default to a sensible currency, based on the customer’s location from the free maxmind.com geolocation service.
  4. Mustn’t hang if the geolocation service is down.
  5. Make it easy to change prices and product descriptions.
  6. Make it easy to configure options, currencies etc (e.g. GoogleCheckout only allows me to charge in pounds sterling).
  7. Make it easy to change the ‘look and feel’ of the form.
  8. Only show a coupon field if passed an appropriate argument in the URL.
  9. Allow me access to the Javascript source so I can make it call the appropriate e-junkie URL, pass cookies and make other tweaks.

I am very pleased with the results. Here is a screenshot (click to enlarge):

payment form

click to enlarge

You can play with test versions that link through to PayPal, GoogleCheckout and 2Checkout via e-junkie by clicking on the links below (I prefer you didn’t play with my live payment pages, thanks):

Note that some links are broken on these test pages, but the link to the ecommerce providers are live. So don’t type in your credit card number, unless you are feeling generous.

The HTML on these pages includes some simple Javascript that sets up some arrays with the various products, prices, currencies etc. This then calls a separate (obfuscated) .js file which does the real work. An example of the set-up code is shown below:

form_javascript_example

click to enlarge

The look and feel of the form is controlled by a .css file. The resulting form looks fairly trivial on the page, but the .js file actually runs to several hundred lines of Javascript and took a few days for Paul to write and test, partly because of all the configuration options.

I think Paul’s form + e-junkie makes for a very professional looking and flexible payment solution at a very low cost. If you are interested in having Paul customize the Javascript for use on your site you can email him at: paul (at) dolphinfutures (dot) com . Expect to pay for a day or more of his time at UK rates, depending on your requirements.