Category Archives: miscellaneous

It’s great to be in the software products business

hard at work on my software businessThose of us who own software product businesses sometimes grumble about what a difficult business it is. Although its indoor work with no heavy lifting, it has it’s frustrations: software piracy, customers who moan about paying a whole $0.99 for thousands of hours of work, buggy third party software, RSI, chargebacks and the catastrophic consequence of accidentally offending the great god Google, to name but a few.

But reading Kitchen Confidential brought home to me just what a hard business it is to run a restaurant. You have to make a major financial outlay to fit out the restaurant and kitchen. You have rent and staff salaries to pay every month, regardless of whether customers come or not. Staff turnover is generally very high in the catering business, so you are continually having to hire new staff. You have to deal with drunken, unreasonable and dishonest customers. Possibly also drunken, unreasonable and dishonest staff, who have ready access to sharp knives and boiling liquids. Theft by staff can be a real problem. You have highly perishable stock. If you don’t order enough, you have to turn people away. If you order too much, you have to throw away the excess or risk poisoning your customers. You have endless deliveries from suppliers, which you have to check to ensure they are the correct amount and quality. You have to keep the restaurant clean. Extremely long hours are standard. Even if you are doing well, you can’t seat more people than the restaurant can physically hold. A restaurant that has to turn people away Fridays and Saturdays might be empty on Monday. And success brings its own problems as you can only increase the scale of the operation by expensive and disruptive  measures such as opening a new restaurant or moving venue. The relentless overheads of staff, rent and stock mean that cash flow is a huge issue. It’s no wonder that restaurants fail so frequently.

Running a software product business is pretty cushy by comparison. You can start your own software product business with just a PC and a generous dollop of time. Nearly all the issues related to manufacturing, suppliers, stock and shipping go away when you are dealing with electrons rather than atoms. If you do make a mistake, you can usually put it right just by making another release. The worst a disgruntled customer is likely to do is post a snarky comment on a forum or send you a nasty email. High margins and low overheads means that cash flow is much less of an issue than for most other businesses. Software businesses also scale much more easily than other businesses. You aren’t tied to a particular location and don’t even need to rent an office building (billion dollar company Automattic has a fully distributed workforce and no company office).

The software business is a great business to be in!

 

The mystery of the Chinese downloads

A spider (probably not Chinese)It’s a good to idea to regularly look through the logs of your website. You’ll often find something interesting. In March 2013 I was looking through the web logs for my seating planner software and I noticed the number of downloads of the Windows version of my software had gone up by a factor of 5, compared to the previous month. Everything else stayed pretty much the same:

  • The number of visits to the download page hardly changed.
  • The number of completed Windows installs hardly changed.
  • The number of downloads of my Mac installer hardly changed.

Odd. On further investigation it turned out that a number of Chinese IP addresses were downloading my Windows installer again and again. My software is not localised into Chinese and I get very few sales from China. Also there were no installs from these IP addresses (my software puts up a ‘thank you for trying’ page when it is first run). It was a substantial increase in bandwidth, but not enough to be a serious denial of service attack. Very odd.

I am on an unlimited bandwidth hosting contract so I wasn’t paying for the extra bandwidth. But I was worried that the volume of requests would slow down my web site. So I put a .htaccess file in the downloads directory to block the worst offenders.

After a few months I got the bandwidth from China down from ~30GB per day to ~100MB per day. I have been playing this game of ‘whack a mole’ every since. Currently I have some 1700 Chinese IP addresses blocked.

downloads per month

PerfectTablePlan for Windows downloads per month 2013/2014

As an example I recently blocked IP 211.136.10.56, which was downloading PerfectTablePlan around 20 times per day, but never visiting a page on my website.

Here are the logs from one day (via Web Log Storming), picked at random before I blocked their IP:

logsAnd here is one of those records in more detail:

logWeb Log Storming classifies it as a ‘spider’.  whois.domaintools.com says the IP belongs to ‘China Mobile Communications Corporation’. The IP is not listed on projecthoneypot.org and I wasn’t able to find out any more from casual Googling.

To block the this IP I just added this line to my .htaccess file:

Deny from 211.136.10.56

But it is a bit of a nuisance to keep having to do this.

Other software companies are having similar issues. But I haven’t come across any compelling answers about why this is happening. Perhaps it is a way of masking some other nefarious activity? Does anyone have any idea what is going on?

10 years a microISV

I have been running my own one-man software company for 10 years today. Coincidentally it is also my 49th birthday, so it is perhaps a good time for a bit of reflection.

I did a physics degree and then worked full-time as an employee for nearly 20 years. I developed systems in FORTRAN, C and then C++ for operational research, satellite image processing, printed circuit board design, environmental modelling and distributed systems. I learnt a lot and met some great people, but I yearned to strike out on my own.

I set up my own company in January 2005. I was a techie and had very little experience on the business, sales and marketing side of things. It was quite scary.

I released v1 of my table planner software PerfectTablePlan at the end of February 2005. It was very rough and ready, but I sold my first licence in less than 24 hours. PerfectTablePlan has exceeded all my expectations and is still selling well. I have sold over 40,000 licences with revenue well into 7 figures (£) to date.

I started this blog in April 2007. It has had over 2 million hits to date and has been helpful for promoting my consulting. But mostly I do it because I like writing, when I can find the time.

I started offering a consulting service in January 2008. I have provided consulting to lots of other software businesses, mostly 1 day engagements concentrating on marketing. That has been very interesting and has added some variety to my work. It has also been helpful to find out what works and doesn’t in other businesses.

I ran a weekend face-to-face training course for people wanting to start their own software business in November 2013 and March 2014 in the UK. The course is 460 slides + various exercises. I enjoyed doing it and the feedback was very positive. But it was hard work to get enough people in one place at one time to make it viable. I could do it online, but I think it would lose a lot of the interactivity that made it work so well. I would like to run it again in 2015. Email me if you’re interested.

I released v1 of my AdWords keyword tool Keyword Funnel in March 2014. This was a commercial quality re-implementation of various tools I had written to help myself run my long tail AdWords campaign for PerfectTablePlan. The plan was to produce v1 within a couple of months, part-time. But it ended up taking nearer to 6 months. Feedback became more patchy and ambivalent as I got closer to v1. But, having got that far, I decided to push it out anyway. It didn’t sell well, for various reasons which I might go into in a future post. I also decided I didn’t want to spend all day thinking about AdWords. So I stopped selling it and took the site down. But it seems a shame to have wasted that work, so I may resurrect it later this year as a free product.

I am just about to release v1 of my visual planning software Hyper Plan. I have worked on this part time since September 2014. I am very pleased with how it has turned out. But I have no idea how successful it will be (as was the case with PerfectTablePlan and Keyword Funnel). I think a lot of people could benefit from it, but it is in a crowded market. Watch this space.

I have attended various conferences for small software businesses and spoken at MicroConf (Europe), ESWC and SIC. It is always great to meet other people in the business.

I am a moderator and regular contributor on the Business of Software and bootstrapped.fm forums.

All sorts of strange and wonderful things have happened, including:

  • PerfectTablePlan has been used for some very famous organizations for some very famous events (which I sadly don’t have permission to mention). It has seated royalty, celebrities and heads of state.
  • PerfectTablePlan was used as part of a demonstration of the (controversial) first commercial quantum computer by D-Wave.
  • A mock-up of PerfectTablePlan, including icons I did myself, was used without my permission by Sony in their ‘Big day’ TV comedy series.
  • I got to grapple with some interesting problems, including the mathematics of large combinatorial problems and elliptical tables. Some of my customers are now seating 4,000 guests and 4000! (4000x3999x3998 .. x 1) is a mind-bogglingly huge number.
  • A well known wedding magazine ran a promotion with a valid licence key clearly visible in a photograph of a PerfectTablePlan CD. I worked through the night to release a new version of PerfectTablePlan that didn’t work with this key.
  • I found out that CDs are edible.
  • An early article I wrote for the blog generated 56k hits in a day and got me a mention in the Guardian newspaper.

I employed my wife as bookkeeper a few years back. But decided I didn’t want to take on any other employees. I outsource a few things that I can’t do, but I still do most things myself.

It has been hard work and a bit of a roller coaster ride. But overall, it has been great! I wonder what the next 10 years will bring?

See also:

Lifestyle programming

A Business Idea : Individualized Mandelbrot Shirts

Mandelbrot

I have more ideas for business and products than I have the time, energy or skills to pursue. I am throwing this one out there in the hope that someone else might run with it. You’re welcome.

Idea

1. You zoom into a region of the Mandelbrot set you like the look of. You have an the option to customize the colours.

2. You are shown a visualization of what this would look like on a shirt (front and rear).

3. If you like what you see, you click a button to order the shirt, choose your size and pay. It is then shipped to you.

Pricing

The fact you can design your own shirt and there is a vanishly small probability that anyone else will have the same design, means you can charge a big premium. Perhaps £50/$80 for a long sleeve shirt?

Feasibility

The software side of this business is fairly straightforward. After all the Madelbrot set is based on just z=z^2+c and you wouldn’t have to generate a high resolution image for the preview. But I know nothing about the clothing industry. I have no idea what it would cost to individually print a shirt or what printing technology you would use. Perhaps there are good economic reasons why no-one is already doing this (if they are, they aren’t very good at SEO).

I will be your first customer!

Image from Wikipedia by Wolfgang Beyer

“Wrong Way” Corrigan

While on holiday in Ireland I came across the wonderful story of “Wrong Way” Corrigan. Here is a summary from history.com :

Eleven years earlier, American Charles A. Lindbergh had become an international celebrity with his solo nonstop flight across the Atlantic. Corrigan was among the mechanics who had worked on Lindbergh’s Spirit of St. Louis aircraft, but that mere footnote in the history of flight was not enough for the Texas-born aviator. In 1938, he bought a 1929 Curtiss Robin aircraft off a trash heap, rebuilt it, and modified it for long-distance flight. In July 1938, Corrigan piloted the single-engine plane nonstop from California to New York. Although the transcontinental flight was far from unprecedented, Corrigan received national attention simply because the press was amazed that his rattletrap aircraft had survived the journey.

Almost immediately after arriving in New York, he filed plans for a transatlantic flight, but aviation authorities deemed it a suicide flight, and he was promptly denied. Instead, they would allow Corrigan to fly back to the West Coast, and on July 17 he took off from Floyd Bennett field, ostentatiously pointed west. However, a few minutes later, he made a 180-degree turn and vanished into a cloud bank to the puzzlement of a few onlookers.

Twenty-eight hours later, Corrigan landed his plane in Dublin, Ireland, stepped out of his plane, and exclaimed, “Just got in from New York. Where am I?” He claimed that he lost his direction in the clouds and that his compass had malfunctioned. The authorities didn’t buy the story and suspended his license, but Corrigan stuck to it to the amusement of the public on both sides of the Atlantic. By the time “Wrong Way” Corrigan and his crated plane returned to New York by ship, his license suspension had been lifted, he was a national celebrity, and a mob of autograph seekers met him on the gangway.

Sometimes it is better to hope for forgiveness than to ask for permission.

The psychology of successful bootstrappers

the psychology of successful bootstrappersI am curious about how the people who bootstrap software businesses are different to the general population, and to each other. I investigated this using a standard (‘big 5′) personality test. I think the results make for interesting reading.

I asked a number of software company founders to complete an online personality test and send me their results. 18 of them did (19 including me). You have probably heard of some of them, however I promised anonymity. We are all founders of bootstrapped (i.e. not VC funded) software product companies and have been involved in programming a significant portion of our products. Most of us are solo founders. Some of us (including myself) are lifestyle programmers, others have employees. We are all successful to the extent that we make a living from our software product sales. None of us are billionaires (Bill Gates probably wouldn’t return my email).

The test measures personality across 5 major axes of personality identified by psychologists:

  • Extraversion (outgoing/energetic vs. solitary/reserved) – how much you derive satisfaction from interacting with other people.
  • Conscientiousness (efficient/organized vs. easy-going/careless) – how careful and orderly you are.
  • Neuroticism (sensitive/nervous vs. secure/confident) – how much you tend to experience negative emotions.
  • Agreeableness (friendly/compassionate vs. analytical/detached) – how much you like and try to please others.
  • Openness (inventive/curious vs. consistent/cautious) – how much you seek out new experiences.

See Wikipedia for more details.

For each personality axis I have created a histogram of the results, showing how many founders fit in each 10% ‘bin’ compared to the general population. For example, for extraversion: 0 bootstrappers were in the 1-10 percentile (i.e. least extrovert 10%) of the general population, 1 founder was in the 11-20 percentile, 2 were in the 21-30 percentile etc.

extraversionconscientiousnessneuroticsmagreeablenessopenness

Extraversion Conscientiousness Neuroticism Agreeableness Openness
average (mean) 59.9 61.7 37.6 48.3 50.3
standard deviation 23.0 21.9 23.1 21.1 23.2

If bootstrappers were like the general population we would expect each bar to be the same height, with a bit of random variation, and the average score to be 50. Clearly this is not the case.

We are more extrovert on average than the general population. Although programming is stereotypically a profession for introverts and quite a few of us work alone, you need to get yourself noticed and interact with customers and partners to be a successful bootstrapper.

We are more conscientious on average than the general population. Shipping a software product requires a lot of attention to detail.

We are less neurotic on average than the general population. You need a some self belief and a thick skin to weather the ups and downs of being a bootstrapper.

We are about average for agreeableness. However the scores are not evenly distributed. Only 1 scored above the 70 percentile. Perhaps being too ready to please, rather than following your own vision, is a handicap for bootstrappers.

We are about average for openness. But the scores are clumped around the centre. Initially I was a bit surprised by this result. I expected bootstrappers to be inventive/ideas people and to score well above average. But perhaps the people who score very highly on openness are easily distracted (squirrel!), and never get anything finished.

The 5 personality traits are supposed to be orthogonal (not correlated). Picking some random pairs of traits and drawing scatter plots, that does indeed appear to be the case. For example extraversion doesn’t appear to be correlated with conscientiousness:

extroversions vs conscientiousnessI am aware that this survey suffers from some shortcomings:

  • The test is fairly simplistic. It doesn’t begin to capture what unique and precious little snowflakes we all are. However I don’t think I would have any results at all if I asked people to complete a massive survey. We are busy people.
  • Any survey suffers from selection bias. I am more likely to know other founders who are extroverts (the introverts probably go to less conferences). It is also likely that the people who responded were more conscientious and agreeable than those that didn’t!
  • 19 is a small sample size.

Correlation doesn’t imply causation. So these results don’t prove that high levels of conscientiousness and extraversion and low levels of neuroticism make you proportionally more likely to succeed at bootstrapping a software company. But, given that personality is considered fairly stable over time, it seems unlikely that the success caused the personality traits. However both could be correlated to some underlying factor, e.g. these traits could conceivably make you more likely to try starting a software business, but no more likely to succeed. Or the correlations could conceivably be a statistical fluke. I leave it as an exercise for an interested reader to work out the exact level of statistical significance of these results. It would be interesting to compare these results with those who tried to bootstrap business, but failed. However such data might not be easy to come by.

Given what I know about the trials of starting your own software business I think an above average level of conscientiousness and extraversion and a low level of neuroticism are a real asset. However it is also clear that the personalities of individual founders vary a lot. So don’t be disheartened if you don’t fit this profile. There are successful bootstrappers who don’t fit the profile. Personality is not destiny. And you can always partner with or employ someone who has complementary personality traits. But if you are a slap-dash, neurotic, who doesn’t like talking to other people, perhaps bootstrapping a software company isn’t for you. A career in government funded IT projects might be more suitable.

I sent a draft of this post to Dr Sherry Walling for feedback. Sherry is particularly well qualified to comment as she is both an adjunct Professor of Psychology and married to well know bootstrapper/micropreneur Rob Walling. Her response (paraphrased a bit) was:

“Your standard deviations are quite large which indicates that there is quite a lot of variability in your data. You would much rather have standard deviations between 0-10 when working with this kind of scale.

From my perspective, the only domain where I would expect significant difference is Conscientiousness. Conscientiousness is an essential bootstrapper trait. I am not sure how a solo founder could be successful if he/she is not naturally conscientious.

There are so many ways to be a successful bootstrapper. A neurotic person can fuel his sensitivity to negative emotions into hard work. A less neurotic person may not have enough anxiety to get up early and get to work. On the other hand too much neuroticism can be very debilitating. I don’t think there is a formula. The combination of factors could vary tremendously with each person, but conscientiousness is the one that seems essential.”

If you want to do your own analysis, the anonymised results are available to download as a CSV file here.

Many thanks to everyone who took part in the test.

You can do the test yourself. You don’t have to give your email address or answer the additional questions at the end. How do you compare?

Coding my way around 100 countries

Running a software company from a laptop while travelling the world sounds like a dream lifestyle. But what is it really like? Steve McLeod was kind enough to share his experiences as a nomadic software entrepreneur.

Running a one-person software company while travelling doesn’t work. And yet I’ve been doing it for years. I’m writing this in Patagonia, in a hotel lobby. There’s pop music playing too loud to fully concentrate. The Internet connection is sketchy; in fact I’m writing this now because the Internet is unavailable again. The chair is not good for my posture. The table is too high for comfortable typing. My productivity is abysmal.

I’m partway through adding a new feature to my software, and doing it in this environment is unproductive. There is a big glacier an hour’s drive from here that I’d rather be viewing. I know that tomorrow or the next day, when I see the glacier, I’ll come back to the hotel too exhausted to code or to deal with customer support.

What does this mean for my business? Low productivity and poorer-than-intended customer support response times, which lead to lower sales. My alternative to spending a decent part of each year travelling would be to stay in my home city, working better, selling more software and earning more money.

Here are some real problems I’ve faced working on the road:

  • In Ukraine my MacBook Pro’s screen stopped working. I didn’t intend to return home for another week. I had to choose between returning home earlier; trying to get the computer serviced promptly in a foreign country; supporting customers for my Mac software for the next week on Windows computer in Internet cafes; or buying a new computer and trying to get all my development tools on it.
  • In Turkey, YouTube was blocked. Which was mostly a good thing for productivity, but as my video demo was hosted on YouTube at the time, I couldn’t monitor it.
  • In Syria, Facebook was blocked. Okay, that was incontrovertibly good.
  • In Turkmenistan there was no Internet in my hotel. Or any hotel, just about, except on age-old computers in one hotel’s inaccurately-named “business centre”. No WiFi in cafes. For a few days my company was getting no attention.
  • Travelling in a shared taxi for hour after hour between obscure locations in Iraq (true story!) left me utterly spent. All I wanted to do after getting into a hotel is to relax. But that customer support backlog is nagging, nagging, nagging at me.
  • Skype is blocked in Qatar and in some other countries. This really ruins the conference call you had planned.
  • In Lebanon I needed to update my product with a critical fix. The Internet at the time in Beirut was so bad, it would take an hour to upload my 20 MB software. An hour! During which time I’m hoping not to get a network disruption, from one of Beirut’s daily 3-hour power outages. My 2-minute scripted solution for building and uploading updates, followed by a 5-minute smoke test turned into a 2-hour task, during which time I need to keep ordering coffees so as to keep the staff happy in the cafe supplying me with WiFi.
  • Coding while sipping a cocktail in a beach-side bar in the Caribbean is difficult. The brilliant midday sun makes the laptop screen hard to read. Actually that doesn’t sound too bad at all.

A very real risk includes getting my computer stolen, which, by some miracle, has not happened yet.

How do I make this running-a-one-person-company-while-travelling thing work? Here’s some things I do:

  • I keep everything in multiple online places. I use DropBox for documents and code. I use GitHub too. Without excuse, everything needs to be recoverable without drama if the computer breaks or gets stolen.
  • I set aside frequent rest periods where I can get through a backlog of harder customer support issues and work on new features or bug-fixes. It is actually nice sometimes to not climb Andean glaciers nor to see orang-utans in Borneo, and instead to do something prosaic like working for a day or two.
  • I try to be disciplined in keeping my customer support inbox empty. When I arrive at a new hotel after a long, dusty trip, before rewarding myself with an ice-cold beer, I’ll force myself to tackle the inbox.
  • In recent months I’ve been outsourcing customer support. I pay my support representative a monthly fee in return for which she deals with what she can handle herself each day. This helps so much.
  • I aim to spend my months in my home city in high-intensity bouts of feature-adding, taking advantage of having a good work environment.
  • I produce desktop software. Not SaaS, which would be terrible to support and monitor in these environments.
  • Moving source control from Subversion (which needs an Internet connection to be usable) to Git has helped a lot.
  • I concentrate on keeping my software as solid as I can, and the user experience as smooth as possible. These two things help reduce the customer support load.
  • I try to keep things in perspective. Yes, getting my computer stolen would be a minor catastrophe. Yes, a sketchy Internet connection is annoying. Yes, some customers might get irritated at the occasionally slow support. But here’s the other side: Three years ago the city I grew up in was destroyed by two earthquakes, killing hundreds and destroying a significant amount of the city. A year before that I suffered a terrible personal tragedy. Do other things matter so much that I should sit at home to keep customers as satisfied as possible?

Although my lifestyle might seem enviable, it can be lonely at times. You don’t realise how nice it is to be able to regularly catch up with the same friends for dinner or a drink until you can’t do this for long periods. Luckily, I often manage to find someone I know well to join me for part of each trip. Here in Patagonia and beyond, my girlfriend is travelling with me for two months or so. I’d not be travelling for so long anymore without companionship.

On the other hand, my one-person software company has enabled me to reach a goal I’ve long had: to travel to more than 100 different countries. I earn a decent income from my work and thousands of customers love my software. And that is enough for me.

Photos copyright Steve McLeod.

Steve McLeod runs Barbary Software, a one-person software company. Barbary Software’s main product is Poker Copilot, hand history analysis software for online poker players on Mac OS X.

Further reading: