Category Archives: business-of-software

Not even worth one star: Reacting constructively to App Store reviews

Instant rage

I’ve done it, you’ve done it, we’ve all done it. We’ve reacted with rage to some frustrating failure in an app, and left a negative, one star review. It’s a different experience though, when you are on the receiving end of these kinds of reviews. Trying to not immediately respond to the review with that same flash of anger takes experience, detachment, and maturity.

The user doesn’t understand the intricacies of your app. They don’t know of the hours you spent, not even sure if what you were trying to do was possible. Hundreds of evenings and weekends locked in a battle between what you imagined should be possible to program, and reality. All they know is that the app would not work properly, and guess what? It’s your fault.

I’m sure that some people get a feeling of release, letting go of the anger by leaving a one star review… it will hurt the developer, and makes the person leaving the review feel a little less upset. And you know what? They are right, as an app developer, when you receive a one-star review it does hurt, it does make you feel bad, and if you’re not careful, you’ll respond to the review in kind.

It’s not about the money

It is tempting to think that people that reacting with vitriol to a $1.99 app, are kind of getting things out of perspective. It’s only two bucks after all: the price of a cup of coffee. If you are on the US minimum wage, US$7.25/hour, two dollars is a lot of money.

But no matter what the app costs, it is not about the money. Nobody likes to feel like they have been cheated, and that is how people feel, rightly or wrongly, when they have an issue with an app, and it doesn’t behave as they expect. Cost is irrelevant. Nobody likes to feel like they have been taken for a fool.

You know what? They might be right

I try to keep an open mind to the possibility that sometimes they are reporting genuine issues. I cringe when I remember that time I unwittingly targeted people with small hands and bad eyesight: A code displayed to login to Amazon wasn’t visible if you had a small watch with the font size set to large. D’oh.

Then there are the people that genuinely need my app. The visually impaired or people with mobility issues. I did appallingly bad job in the first version of the app in supporting people who are visually impaired. It is kind of obvious with hindsight that I should have realised that an Alexa implementation for Watches, phones, tablets and computers might be useful for the visually impaired.


No matter whether the person has found a bug in the app, or if they simply don’t understand how software works, my approach to app store reviews is to try to be polite, kind, and empathise with the person, especially if it is clear that they are clueless and blaming you unfairly.

I’ve found that the passionately negative person, if reacted to with sympathy and genuine willingness to help can become your most passionate advocate and you can flip a person from hating to really supporting your app if you show them that you are listening, and that you are willing to work with them to try and address their issues.

Don’t respond immediately if you “know” how stupid, and idiotic, and clueless the person leaving the review is. Take a step back, move away from they keyboard, try and understand from the other person’s perspective. Try and understand where they are coming from, and leave a helpful response, assuming they best possible interpretation of their review.

Remember the many positive reviews you’ve received … try to not just focus on the negative. Don’t forget that you are doing this for the fun of it, don’t let them bring you down. Don’t spread the hate … try and understand.

Searching for senior .NET developer to join us at Cargill Geneva

We are searching for a senior .NET developer with strong business skills to join our team at Cargill Geneva.

We are a small team of experienced developers, working closely with Traders and Analysts to understand their requirements and implement solutions from A-Z.  We need people with very good interpersonal skills, that are comfortable dealing directly with demanding business users, and with solid development skills.

We use VS2008, .NET 3.5, linq, etc.  No new technology for the sake of it, but if it makes sense then we use it.

If you are looking for a position that makes use of both your development skills and your business/domain knowledge then please apply.  We are primarily looking for people from the Geneva area, but if you are elsewhere in Switzerland or in the EU then please apply.

Enter job GEN00575 at

Got a product idea? Don’t register the domain.

Since I started programming in the early eighties I’ve dreamed of ideas for software tools, utilities and products.  I’ve followed through and created some of them, but for many I’ve not, and I think I’ve finally figured out why:  it can only be because I registered the domain name before I created the product.  Let me explain …

Having an idea for a product or web site can be enormously seductive.  We can dream away, and if we never follow through, we can never fail.  Even better we can tell others about our fantastic idea, and almost know what it would feel like if it was a success.  Almost.

But the killer is that we can research domain names.  We can spend hours trying to find exactly the right domain for our product-to-be.  The one we haven’t even started creating yet.  And finally, when we’ve got that perfect domain, we can pull out our credit card, and register it.  Then, we are done.  That’s it.  No need to do anything else.  Dreamed about the success, got the domain name, and then … well, there isn’t really any need to take it any further, is there?

This post isn’t just about the dangers of premature registration, it is also to allow me to put some of my own overly-enthusiastic registrations to rest.  So here they are.  None of them are real, except in my imagination (and of course in the domain name registration) …

  • : Transient, anonymous conversations.  A GPS-enabled mobile-phone location-based service that is an anti-social networking site, where you could anonymously ask questions to anyone who happens to be close to you geographically: where are the closest toilets?  Has anyone found a green hat? 
  • : do you know everyone on your street?  Anyone?  This site was to let you get in touch with people living near you, to help build physical communities out of virtual ones.
  •,,, : this product idea used the JavaScript debugger API on windows to continuously break into JavaScript code running in Internet Explorer, and let you see what JavaScript code was executed, and how much time each function took.   I got close on this one.

For balance, I have got it right a few times:

  • – listen to in Windows Media Center.  I’ve stopped developing it since cracked down on the use of their APIs in some countries.
  • – listen to BBC Radio within Windows Media Center.  Still exists, and still quite popular.
  • (not mine any more) – Java-COM interoperability, initially through my Java implementation of the DCOM wire protocol.
  • (not mine any more) – SQL Intellisense within Query Analyzer and SQL Server Management Studio

This post is a little tongue in cheek, although there is a kernel of truth.  It is important to follow through on our ideas, and not just live on the dream.  Don’t deflate the excitement by working on the incidental.  Tackle the core first.

Stop that dreaming, and get coding.

My entry for Business Of Software 2007 speaker slot

Neil Davidson of Red-Gate Software is running what looks to be an excellent conference on the Business Of Software in San Jose on 29th-30th October.

They have a competition for three speaking slots, and I’ve submitted a 3 minute video entry — take a look and vote for the ones you like by clicking on the stars under the videos.  Pay close attention to the one set in the garden 🙂

The pain of software product pricing

I used to think that I was pretty good at pricing software products I created.  I was forced to revise my high opinion of myself when a company bought the IP to a product I’d been selling and increased the price.  By a factor of eight.

My first (good) experience in pricing software products came in the late nineties when I released a Java-COM bridging product called J-Integra.  I figured I could sell it at US$75 a license, so I initially priced it at US$375 for a five client license pack.

Not long after first releasing it I went to visit Lehman Brothers in Manhattan, at the very bottom of the island.  When they found out that the entire deployment, world-wide, of a solution based on J-Integra was going to cost them less than US$1K, they laughed.  I cringed.

Instead of taking a taxi back to the mid-town area where I was staying, I walked.  And I thought.  By the time I got back I’d decided to change the licensing model.   I kept the existing US$375 for 5 client licenses, but I added a server license at US$3000.  I’d “segmented” my market — depending on how J-Integra was being used, the client or the server license would apply.

No one complained about the price increase, although plenty of people complained about the price in general over the years.  I came to realize that this was good.  I realized that you want to have enough people complaining about the price so that you know it is not too low, and enough sales so that you know it is not too high.

So how did I end up charging eight times less than the market would bear, when I sold my next product, an SQL Intellisense tool called PromptSQL, for US$25 a copy?

I have plenty of excuses:  PromptSQL was a “hobby” product that I created it on the train going to and from my day job as a consultant.  One of my friends thought that US$25 a copy was ridiculously high.

The reality is that the US$25 price was OK as an initial “best guess” as to what was appropriate.  The mistake I made was in not changing the pricing once it was clear that it was too low.  The signs were there — indeed one of the reviews said At just $25 for a single copy, this utility provides value which far exceeds its rather modest cost.  That is a pretty clear hint!

Of course it isn’t as clear cut as that.  Red-Gate (the company that acquired PromptSQL from me) actually released the version that I’d been selling, for free, while they wrote a new version from scratch.  I tell myself that Red-Gate has serious credibility in the market, and they invested a lot in creating a slick new version, and that is why they can charge so much more that I did.  And its partly true.  But I am sure I could at least have charged US$75 a copy.  Ouch.