Category Archives: software

32 fun and geeky things to do with kids

Not only do you have to feed, clothe and generally look after the physical welfare of children. You have to entertain them as well. Kids have low boredom thresholds and short attention spans, so this is no easy task. The good news is that there are lots of things you can do that are fun for the adults as well. Here are some of the things I have done with my son (now aged 7) over the last few years. I’m interested in science and computers, so some of them are unashamedly geeky. I hope that it gives you some ideas for things to do with your own kids. Or other people’s kids (other people’s kids are the best, you can give them back when you have had enough).

Note that some of the links below are Amazon affiliate links. If you buy something, I get commission to spend on more toys! Other vendors are available.

Make a potato cannon (spudzooka)

Potato cannons are great fun. Ram a spud down the barrel, spray some butane, hairspray or similar into the combustion chamber, create a spark and WHOOOOMP. Your spud can go over 100 metres. If that doesn’t put a big smile on your face, you must be clinically dead. You can see one in action here. They are relatively easy to make. Various plans and videos are readily available on the Internet. Mine was based on these plans and the parts were sourced from the UK supplier they recommend.

make a spud cannon

Disclaimer: A potato cannon is potentially very dangerous (the clue is in the word ‘cannon’) so exercise common sense.

  • The fumes from the glue during construction are potent. Do your construction in a well ventilated area and avoid sparks.
  • Use pressure rated materials and don’t use high power fuels such as acetylene. Your spud cannon could explode.
  • The spud comes out of the barrel at great speed. Never point it at a living thing.
  • Firing the gun is definitely a job for an adult.

Learn to program

The Scratch programming environment is ideally suited for creating simple games and is a fun and free way to learn to program. Programs are constructed by snapping together colour coded blocks – there is no syntax to learn and very little typing. Within an hour children can go from nothing to having created a simple example game with graphics and sound.

programming for children

Children too young for Scratch can still play simple programming games.

Make a house from cardboard boxes

Children have a habit of ignoring expensive presents in favour of the boxes they came in. We had a load of cardboard boxes and packing tape left over from moving house. We used them to make various constructions, including a train and a house.

cardboard box playMake mega bubbles

Blowing bubbles is fun. The bigger the bubble, the more fun! We purchased a mega bubble kit. It contains a bubble wand, some instructions and the secret ingredients list for making mega bubbles (hint: include some cornflower to make the bubbles more durable).

mega bubblesDo some star gazing

Every child and adult should have the chance to gaze in wonder at the stars from time to time. Ideally do your star gazing well away from city lights, on a cloudless day when there is no moon. The very impressive Star Walk astronomy app (for iOS and Android) will tell you where the satellites, planets and stars are. The best time to spot satellites is shortly after sunset. You can use ISSTracker.com to work out when the International Space Station is passing overhead.

ISSYou can sometimes see several of Jupiter’s moons just with binoculars. If there is a full moon, look at that instead.

Tip: If you have a trampoline in your garden, that can be a comfy place to lie back and look at the stars.

Make a water slide

Water slides can be great fun, especially if you have a slope in your garden. You just need a big sheet of thick plastic, a hose pipe and some washing up soap. The Slip N Slide slides aren’t particularly well designed or made, but the plastic sheet has lasted ok.

slip n slide water slideFor the more ambitious, there are some instructions on how to make your own monster slide here.

Watch Star Wars

Star Wars is an essential part of any budding geek’s education. But I think episode 3 is too dark for a 7 year old, so we have only watched episodes 4, 5 and 6 (the best ones!) so far. More on this topic over at Scott Hanselman’s blog.

Make an igloo

If you get a good amount of snow (rare in the UK) you can make your own igloo. After a couple of attempts at this, I believe the best approach is to make ‘bricks’ by packing loose snow into boxes. Each ring of bricks being of smaller diameter than the one below. Ideally use rectangular/square boxes of varying sizes, with the  biggest ‘bricks’ at the bottom. More details here.

iglooMake something from Lego

I love Lego and I think it is great for encouraging creativity in kids. But, in becoming the corporate titan it now is, Lego seems to have lost its way a bit (particularly in their pink and pony themed ‘friends’ range for girls, ugh).

When I was a child there were few kits or different types of pieces. Mostly I had red, white and blue 2×4 bricks and I used my imagination to come up with my own designs. (Interesting trivia, apparently the founder of Lego was a pacifist and he didn’t want little boys making tanks, so that is why there were originally no green or brown bricks.) But now Lego seems to be all about following instructions and finding the right piece. I bought loads of 2×4 bricks and other basic pieces from the bricklink.com website. The website UI is a bit confusing at first, but once you get used to it, it is a great resource for buying Lego relatively cheaply. You can also buy second-hand Lego from e-bay. I just kept bidding low on job-lots and picked up a few bargains (plus one rather disgusting consignment that got sent straight back for a refund). Here is something I made recently, mostly from 2×4 bricks (I got a bit carried away).

My Lego cruise linerTip: You can wash second-hand Lego by putting it in a string bag in the dishwasher. But don’t put it on maximum temperature, unless you want a Salvador Dali effect!

If you are going to buy new kits (hard to avoid) get the Lego Creator ones, as they generally allow you to create at least 3 different models from each kit. This means better value for money and it encourages kids to pull their creations apart and make new things from them. The Crazy Action Contraptions kit is also good fun.

Play computer games

My son loves playing computer games. There are a lot of great apps for kids. Here are some of the better ones.

Pre-school kids:

Older kids:

  • Bridge constructor (iPad)
  • Cut the rope (iPad)
  • Splitter Pal (iPad)
  • Incredible machine (iPad)
  • Maths vs zombies (iPad)
  • Wipeout wall (iPad)
  • Crane Lite (iPad)

I also think the open and constructive nature of Minecraft makes it a good game for children. But, be warned, it is very addictive.

There is also a good list of ‘analogue’ games at gameskidsplay.net.

Make a scale solar system

You can make a scale model of the solar system with household items to show just how vast the solar system is. This link allows you to work out the size and distance of each planet based on the size you choose for the sun. For example, setting the size of the sun to 300mm (about the size of a soccer ball) means an earth of about 3mm (about the size of a peppercorn) at 32m. Choose the size of your sun according the items or space you have available.

Tip: If you are doing it in your garden you need either a very small sun or a very large garden!

If that isn’t mind boggling enough, try this flash simulation which goes from subatomic particles to the whole universe (requires Flash).

Watch Mythbusters

My son and I both love the Discovery Channel TV series ‘Mythbusters’. In case you aren’t familiar with the premise: the hosts try to replicate various myths to see if they hold any truth (e.g. are you safe from bullets under water?, would a penny dropped from a skyscraper kill you?). It’s basically the scientific method disguised as an entertainment show. And very entertaining it is to. If you can’t get it on your TV, you can see lots of excerpts on Youtube.

MythBustersTip: Many of the episodes are not suitable for young children (e.g. is it possible to decapitate someone with a ceiling fan?). So check them out first.

Read Peter’s Railway

Peter’s Railway is a wonderful series of books about a boy and his grandfather building a miniature railway. They combine quite a lot of science and engineering with a great story and illustrations.

Peter's RailwayLaunch a bottle rocket

  • Take an empty plastic 2 litre drink bottle.
  • Fill it about a quarter full of water.
  • Find a cork that will fit tightly.
  • Get a foot pump with a needle valve and push it through the cork.
  • Push the cork into the bottle.
  • Point the bottle rocket in the air.
  • Keep pumping until it takes off.

It can go surprisingly high and fast in a gratifying demonstration of Newton’s third law. More information here.

Disclaimer: Half a kg of water travelling at 10+ metres per second could do some damage, so be careful and make sure it doesn’t fall over during pumping.

Play trump cards

I used to play trump cards when I was a kid. In case you aren’t familiar with the concept, you have a pack of cards on a certain theme (e.g. sports cars or jet fighters) each with certain attributes (e.g. top speed or horsepower). When It is your go, you call out what you think is the best attribute of your top card. If it is better than your opponent’s top card you take his card and go again. If not he takes your card and it is his turn to choose. The game continues until one player has all the cards. The best thing about trumps is that it is teaching kids to understand numbers on the sly. It certainly helped my son to learn his numbers.

Tip: Top Trumps used to be the best brand of trump cards in my youth. Now they have gone for all sort of lame merchandising tie-ins such as Harry Potter and Star Wars. Sigh. The Ace trumps brand is better (and cheaper). Or you can go for the fantastically geeky Dr Hal’s Physics trumps.

Dr Hal's physics trump cardsPlaying 21/Pontoon/Blackjack with your kids is also a good way to improve their addition.

Play double or quits

I heard that Warren Buffet put a fruit machine in his house to teach his children about the folly of gambling. So I sometimes offer my son to play double or quits with his some of his pocket money. If he accepts, we flick the coin. If he wins I double his money and he has the option to play again. If he loses I keep his money. The first few times we played, he kept playing until he lost his money. Now he has learnt a bit about probability (the hard way) and won’t play, or perhaps just 1 flick of the coin. Result!

Tip: If they lose, don’t give them their money back. No matter how much they plead. Otherwise they will learn entirely the wrong lesson. Tough love.

Do some experiments

There are plenty of books with experiments you can do with kids at home, e.g. Do try this at home by the Science Museum.

home experimentsDig a hole

We designated our son a corner of the garden as his. He has spent many a happy hour there digging holes and filling them in. Sometimes the simplest things in life are the best.

dig a holeMake a small explosion

Most things in fine powder form will combust very rapidly (big surface area). Kids love explosions. We poured some icing sugar down a long carboard cylinder onto a tee-light candle to make a satisfying ‘whoomp’.

Disclaimer: Try this outside and entirely at your own risk.

Make a stop motion animation

It is relatively easy to make a short stop motion animation using a digital camera (ideally on a tripod) plus some toys or Lego. You can use free software, such as Windows Movie Maker, to join the stills into a movie. There are lots of videos showing how to this on YouTube, for example.

Solve a 3D maze

3D mazes are fiendishly difficult and quite addictive.

perplexus 3d mazePlay chess

Chess is great for helping kids to concentrate. Keeping it interesting for the adult can be a challenge though. I’ve tried the following to handicap myself with various degrees of success:

  • Only allowing myself a few seconds per move.
  • Starting with less pieces (e.g. no queen or no castles).
  • Allowing them to change sides part way through.

Chess for childrenDo some electronics

We bought our son the Hot Wires electronics kit and he has played with it loads. The kits is surprisingly well made, but the instructions aren’t great. They clearly show how to make 100 different circuits, but they don’t really explain how any of the circuits or components work. However my son was quickly building his own simple circuits and learning by trial and error.

electronics for childrenGo to a hands-on museum

The best museums are ones where you play with the exhibits. Our favourites are:

Watch a Youtube video

Whatever geeky things you are into, there are almost certainly some videos about it on YouTube. I particular like the Open University 60-second adventures in Astronomy series.

Tip: I strongly recommend you turn ‘Safety’ on if you are browsing YouTube with kids (or your parents, come to think of it).

Grow something

I think it is important that kids know food doesn’t appear by magic in supermarkets. Potatoes are pretty easy to grow.

grow somethingPlay a board game

My son likes Monopoly (interestingly, a game originally invented by Quakers to teach people about the evils of property ownership). All the dice rolling and money changing hands is good for his numeracy. But it is a rather brutal game that can go on forever. I prefer Ticket to ride, which he is also very keen on. This is a German-style game of strategy that can be played in an hour and you have no idea who has won until the very end.

Ticket to ride gameWe have also had a lot of fun with Cube Quest, which is a good mix of dexterity and tactics.

Do some plumbing

We had some drain pipes and guttering left over from renovating our house. Rather than throw them out we let our son play with them. He has spent many happy hours connecting them up and putting toy cars, balls and water down them.

Fly an RC helicopter

The latest remote control helicopters are amazing. I have a little Syma indoor RC helicopter that I bought for about £15. It flies amazingly well and it is still going strong after countless crashes onto a tile floor. I find it hard to believe such an amazing piece of engineering is so cheap.

remote control helicopterI also have its big brother, but I find the indoor version much easier to fly (and less dangerous!).

Have a Scalextric party

For our son’s birthday we hired some guys to set up their Scalextric track in our house. The kids had so much fun. It was unanimously declared ‘best party ever’.

Scalextric partyTip: Book an extra 30 minutes for the adults at the end!

Play Mastermind/Brain Master

My son enjoys playing this classic logic game from my youth. It can be a bit trying when you are trying to guess the colour and they score you wrong, but you can award yourself bonus marks if you can spot that have scored you wrong without seeing the code!

mastermind logic gameBuild a go-kart/gravity racer

I’m not very good at making things, apart from software. But my father is. He made my son this rather splendid go-kart. I just wish it was big enough for me.make a go kartDisclaimer: It is possible to flip a go-kart. We proved it. So do wear some protective gear.

Bonus extra

Fly a model rocket.

Your turn

What fun and geeky things have you done with kids? Please add a comment below.

Adwords vs Twitter vs LinkedIn ads, a small experiment

I am running a course for people who want to create their own commercial software products. Promoting the course has been a challenge. How do you reach a programmer, sitting in his cubicle, dreaming about making a living from selling his own software? In particular, how do you reach ones who might pay to attend a weekend  course in the UK in March? Most of the attendees of the last course came via this blog. But I also want to try to reach people who have never heard of this blog. So I have been experimenting with paid ads via Twitter, LinkedIn and Adwords. Crucially, all 3 of them allow me to restrict my advertising to people in the UK. I thought the initial results were interesting, so I am sharing them here.

Adwords

Google Adwords allows you to show your ads alongside organic (non-paid) search results when people type relevant phrases. But it is hard to think of phrases my target audience (and only my target audience) might be searching on. Terms such as “software marketing” and “software sales” are too vague. In the end I came up with about 200 phrases, including  “sell my software”, “software startup”, “start a software company”, “name software product” and “sell software online”.

One of my Adwords ads (I tested several).

One of my Adwords ads.

But there just aren’t a lot of searches on these phrases. Bidding between £0.25 and £1 per click (depending on relevance) for UK searches over the last 47 days I have managed a meagre:

  • Impressions: 1.7k
  • Clicks: 20
  • CTR: 1.13%
  • CPC: £0.31

Looking at the Dimensions>Search terms report to see the phrases typed by the people who clicked, the clicks seem fairly well targeted. And my impression share is >25% for the majority of the adgroups, so I don’t think increasing my bids is going to make a big difference to the amount of traffic. Adwords just doesn’t work that well unless there are unambiguous phrases your potential customers are actively searching on. I haven’t tried display (content) ads, as these have never worked well for me in the past.

LinkedIn

I also tried running LinkedIn ads targeted at people who are based in the UK and list programming skills such as “Programming”, “SaaS”, “Subversion”, “Git”, and “C++”. The minimum bid per click is $2.00 (ouch), so I bid $2.05 per click.

linkedin-ad

One of my linkedIn ads.

The result over 12 days have been:

  • Impressions: 133k
  • Clicks: 54
  • CTR: 0.04%
  • CPC: $2.00
  • Leads: 2

That is a good number of impressions, but a horrible CTR. Looking at the breakdown of clicks by industry and job function in the reporting, the clicks seem fairly well targeted. A ‘lead’ is where someone expresses an interest and LinkedIn allows you to send them a message. But you don’t get their email address and it appears you can only message them through LinkedIn once.

Twitter

I paid to put a sponsored tweet in the timeline of Twitter users in the UK, based on who they follow. I picked the Twitter handles of 4 other people who blog about bootstrapping.  Note that Twitter claims they won’t show ads to all the followers of these Twitter handles, but to people who are interested in similar things to the people who follow those Twitter handles. That seems a rather hair-splitting distinction, but I guess it allows them to claim they aren’t exploiting the popularity of their customers directly. I bid a maximum of £0.75 per ‘engagement’ (click, retweet or follow). I didn’t include an image with the tweet as I couldn’t really think of anything relevant at the time (a classroom?). The text of the sponsored tweet was:

Sell your own software. Be your own boss! 2 day course, 22/23 March, Wiltshire, England. Full details at: https://successfulsoftware.net/software-business-training-course/

The result of this 1 sponsored tweet over 2 days has been:

  • Impressions: 5.8k
  • Clicks: 174
  • CTR: 3%
  • CPC: £0.29
  • Favorites: 7
  • Retweets: 2
  • Follows: 1

Given the small number of favorites, retweets and follows, it is hard to know how well targeted this was. I guess a 3% CTR implies it was fairly targeted. The fact that the CPC was a lot less than my maximum bid may be down to Twitter ads being a relatively new medium, without too much competition (yet).

The reports have left me confused. Twitter report 3,112 impressions and 106 clicks for followers of my own Twitter handle @successfulsw.

twitter-reportingBut:

  • I didn’t tick the Also target your followers check box, as it seems idiotic to be paying for tweeting to people that I can tweet to for free.
  • I don’t have 3k Twitter followers.
  • I direct messaged a few of my Twitter followers based in the UK and they said they hadn’t seen a sponsored tweet from me.

This was the response when I queried Twitter support:

Thanks for the information. We have investigated this issue and we can see that your handle is in your @handle section of your campaign, this is because implicit targeting was enabled (targeted followers with similar interest as your followers), that is why your handle is showing there. We have confirmed you have a nullcasted Tweet and this Tweet is not showing to your followers. We realize this may be confusing and we’ll work with our product team to improve how this looks on the user interface.

The reporting of the interests of the people that engaged doesn’t make sense either. It says that of the 5.8k impressions, 4.7k were to people interested in “Hip hop and rap” and 4.5k to people interested in “NFL football”. We don’t even play NFL football in the UK!

twitter reporting interestsThis was the response when I queried Twitter support:

I understand it’s confusing, and I’ll share this feedback with my team. What you’re seeing is a cumulative total of paid/earned/organic engagements. This total also considers secondary account signals eg a users prime interest is photography, and a secondary interest in baseball. I can assure you that you paid for primary interests only, and organic/earned and secondary engagements were not charged for.

I am still none the wiser about the “NFL football” result. It does make me wonder how accurate their ‘targeting by interest’ option is.

Conclusion

This is obviously only a very small experiment and it is hard to judge exactly what the quality of the traffic was like (I was sending traffic to a wordpress.com page and I am not able to measure detailed analytics, such as bounce rates or time on page). But I even these limited results are still illuminating.

I like Adwords, particularly the fact that it shows your ad to people at the point they are searching for a solution to their problem. It has worked pretty well for my table planner app over the last 9 years, despite bid price inflation. But Adwords is only effective when there are well defined phrases with reasonable search volumes you can target. That doesn’t seem to be the case for my course.

LinkedIn is a good way to target people according to their skills or job function. There are lots of different targeting options and the traffic volume was better than Adwords. But the clicks are very expensive. Given an industry standard 1% conversion rate I can afford to pay $2 per click to promote a £600 course. But forget it if you are selling less expensive products.

Twitter ads seem quite promising. There are lots of targeting options and you can get a lot of traffic quickly for a relatively low price per click [but see update, below]. I could have got a lot more clicks by targeting more Twitter handles and/or increasing my bid. But its not something you can leave running continuously like Adwords or LinkedIn. You have to keep sending new sponsored tweets. Also the reporting is confusing and of dubious veracity. Finally it feels slightly grubby to be targeting the followers of your peers and/or competitors so directly. But I think it shows promise. If you are going to try it, I recommend you do so soon. The law of shitty clickthroughs means that it is sure to be a lot less cost effective in a few years time.

**** Update ****

I noticed that the clickthroughs to the URL in my sponsored Twitter post was only about a third of the clicks reported by Twitter. When I asked Twitter about this they replied:

Twitter Ads measures engagements which we define as “clicks” within the Promoted Tweet Dashboard are defined as follows: clicks on the URL, hashtag, Tweet copy, avatar and username, or the expand button. It’s likely that the other analytics you are seeing are tracking link clicks.

So I am paying for someone to just click the Tweet copy (text)! The cost for a clickthough to my site is actually around 3 times the CPC reported by Twitter. That makes it around £1 per clickthrough, which is much less attractive.

Announcing a new date for my ‘Start your own software business’ course

AH111220CO-2000x1297I ran my first ‘Start your own software business’ course in November last year. It was a lot of work to write the course and organize the logistics. But I am very pleased with how it went. I have had a number of enquiries about the course since then, so I am announcing another date: 22/23 March 2014. As previously, the location will be Swindon, England. The course is limited to 10 people (first come, first served) and there is an ‘early bird’ discount if you book by  07-Feb-14. For more details (including comments by previous attendees) go to the training page.

How to build Qt 4.8.5 on Mac OS X 10.9

I prefer to build Qt from source. I have been trying to build Qt 4.8.5 on Mac OS X 10.9 (Mavericks). I managed in the end, but it took a few tweaks. Online information about how to do this was fragmentary, so I am documenting it here in case it is useful to someone else.

1. Webkit doesn’t build. I don’t need it so I disabled it using configure option:

-no-webkit

2. The corewlan plugin doesn’t build. I don’t need it (I think, I’ve never heard of it before) so I disabled it using this fix from stackoverflow.

3. The TIFF image format plugin doesn’t build. I don’t need it so I disabled it using configure option:

-no-libtiff

My final configure command was:

./configure -nomake demos -nomake examples -debug-and-release -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-gif -no-openssl -no-webkit -no-libtiff

There will be lots of warnings that Qt 4.8.5 isn’t compatible with Mac OS X 10.9. But you can ignore these (or comment out the warning in the appropriate Qt header file).

I have done some brief experiments and it seems to work ok. Hopefully there will be a Qt 4.8.6 that fixes these issues. Note that you also need to make some tweaks to your application code. See:

Fixing Qt 4 for Mac OS X 10.9

** UPDATE April-2014 **

Qt 4.8.6 has been released. This appears to build fine on Mac OS X 10.9.

New shiny thing

nz20131170I’m working on a new product. I’ve done all the interesting creative work, such as designing the user interface and implementing the difficult algorithmic parts. Now I’m left with the boring stuff, the installer, website, documentation, licensing etc. The things that make it a proper commercial product. They aren’t optional.

Suddenly I am thinking of all sorts of other interesting ideas for products I would rather be working on. The temptation is strong. The new ideas seem so much more exciting than what I am working on now. But it is a mirage. These shiny new ideas would also require their fair share of drudge work to ship.

Continually abandoning work in progress for a new idea is also a form of cowardice. If I never ship, then I can’t fail. But I can’t succeed either. And I won’t learn anything useful from a string of half-finished products that never shipped. So I just have to push on through the tedious bit, knowing that things will get more interesting again once I ship. In my weaker moments I sit down and sketch out ideas for new products on big sheets of paper. Then I file them away and get back to work.

It isn’t easy to stay focussed week after week and put in the hard work to create a new product for uncertain rewards. It’s what separates the professionals from the amateurs. Professionals ship. Now excuse me, I have a product to finish.

There is never a perfect time to start your new software business

So you’ve got an idea for a software product. You think it could be a winner and you don’t want to work for someone else for the rest of your life. When is a good time to start your new venture?

Today.

Yesterday would have been better, but today is the next best thing.

You can always find an excuse to put it off. If you’ve got a well paid job – you don’t want to lose that income. If you’ve got a poorly paid job – you probably don’t have much savings. If you are young you don’t have that much experience. If you are older you probably have a lot more financial commitments.

In truth, there is never a perfect time. If you are waiting for some sort of auspicious planetary alignment before you start your business, you’ll never start it. Life is untidy, unpredictable and complex. I started my company while recovering from emergency eye surgery for a detached retina. That certainly wasn’t how I planned it.

You don’t have to take any big financial risks. It only cost me a couple of thousand pounds (and a lot of hard work) to launch Perfect Table Plan. I plan on launching my new product, Keyword Funnel, early in 2014 for a similar amount of money. There is no need to max out the credit card or risk your house. You just need a computer, some skills, determination and time. If you aren’t prepared to sacrifice a few hours of spare time every week, then you probably haven’t got the drive to succeed at creating a business.

So what are you waiting for?

A code pretty printer product idea

I use QtCreator for my C++ development IDE. It is very good. But it doesn’t always lay out my C++ code the way I want it to. In particular the refactoring operations mess up my white space. I want my code to look like:

void foo( int* x, int& y )

But it keeps changing it to:

void foo(int *x, int &y)

Grrrrrr.

So I am constantly battling with QtCreator to layout my code how I like it. There are plenty of C++ pretty printers around. I played with some of the leading ones using UniversalIndentGUI, but I couldn’t get any of them to layout my code quite how I wanted. Maybe they could have done it, but I got fed up with fiddling with the settings.

What I need is a code pretty printer that I can configure to layout my code exactly how I want without me having to tweak 100 settings.

Ideally I want a code pretty printer that I can train. So I just point it at a few files of my code that are laid out how I want and it works out all my preferences (where to put braces, how to indent case statements, where to put the * for a pointer declaration etc) and can then apply them to any other code. It wouldn’t need a GUI. Or perhaps just enough to select the training files and then preview the results on other files.

I have no idea if this is a viable product idea. But I would pay $100 for it, if it worked well. Perhaps bigger software companies would pay a lot more? Or maybe something like this already exists and I just don’t know about it?

Training course update

I ran my first ‘Start your own software business’ course over the weekend of 23/24 November. It was tiring but enjoyable and, overall, I am very happy with how it went. I think the balance of presentation, questions, exercises and discussions was about right. Thankfully everything went smoothly with the logistics of room, meals, accommodation etc.

Here is what some of the attendees had to say:

Pavol Rovensky“To run your own software business is an aspiration of every programming enthusiast and many professional programmers. Most of them fail without knowing “WHY?”. I’ve known Andy Brice for many years and have met him at several conferences and heard  a lot about his product and working habits. When the information about this course appeared it was the easiest decision in my professional career to sign up. The course itself is delivered with passion and ease, yet the information content is incredibly rich.  The course covers all aspects of Starting a software business and Andy continuously amends the presentation with elements of his own experience and available data from other people. None of the aspects of starting a software business is left uncovered. He definitively gives an answer to aspiring programmers “HOW?” to start and avoid the failure; or fail fast and learn quickly.”
Pavol Rovensky, www.hexner.co.uk

Kevin Horgan“Andy’s ability to imprint the wisdom he has gained through successfully starting and running his own software business is amazing. The course covered a lot of material very quickly and effectively with plenty of time to ask concrete questions, all of which Andy comfortably answered from his experience in the field. I feel I have a much better focus now on where I need to put my time and energy to build a successful software company. The course venue, facilities and overall organisation were also excellent, from booking through to ensuring we finished on time so I could catch my plane. I highly recommend this course if you plan to start your own software company.”
Kevin Horgan, www.balancedcode.com

Anthony Hay“I’m a programmer and I’ve been an employee in other people’s software businesses all my working life. For some time I’ve wanted to create my own product to sell but I’ve found it difficult to evaluate the various ideas I’ve had and get started. Andy’s course is broad and covers all aspects of starting a software business, but the parts covering the early stages of product development were especially useful to me. Andy is a great communicator and I highly recommend this course.”
Anthony Hay, howtowriteaprogram.blogspot.com

“I was lucky enough to find out about Andy’s course in time, and wasn’t sure if it would help me figure out how to work for myself as an independent software vendor — I have the answer now — and it would be an understatement to say it pointed me in the right direction. I now see the possibilities, and the course has given me important insights into how I might go about the transition from ‘working for the man’ to starting my own micro ISV. If you get the chance, do go on the course. It’s well worth it.”
Jason Spashett, jason.spashett.com

“If you’re starting a software business, give yourself a big unfair advantage and sign up for Andy Brice’s course. Andy has spent eight years investigating numerous cul-de-sacs, all so that you don’t have to. Whether you’re working with desktop or web, selling to consumer, enterprise or developer markets, there are pearls of wisdom in there for everyone. Benefit from the advice of someone who’s been there in the trenches – it’s possibly the best investment in your fledging business you can make.”
Justin Worrall

I would like to say a big thank you to the attendees of v1.0 the course. I shall be following their progress with interest.

I hope to run the course again in 2014. If you are interested in attending, please fill in the form on the training page.

Lifestyle Programming

“A man is a success if he gets up in the morning and gets to bed at night, and in between he does what he wants to do.” ― Bob Dylan

I am a lifestyle programmer. I run a one-man software product business with the aim of providing myself with an interesting, rewarding, flexible and well paid job. I have no investors and no plans to take on employees, let alone become the next Google or Facebook. I don’t have my own jet and my face is unlikely to appear on the cover of Newsweek any time soon. I am ok with that.

“Lifestyle business” is often used as something of an insult by venture capitalists. They are looking for the “next big thing” that is going to return 10x or 100x their investment. They don’t care if the majority of their investments flame out spectacularly and messily, as long as a few make it really big. By investing in lots of high-risk start-ups they are able to reduce their overall risk to a comfortable level. The risk profile is completely different for the founders they invest in. As VC Paul Graham admits:

“There is probably at most one company in each [YCombinator] batch that will have a significant effect on our returns, and the rest are just a cost of doing business.”

Ouch. The odds of being the ‘next big thing’ are even slimmer (of the order of 0.07%). As a VC-backed start-up the chances are that you will work 80+ hours a week for peanuts for several years and end up with little more than experience at the end of it.

But high-risk, high-return ventures are sexy. They sell magazines and advertising space. Who can resist the heroic story of odd-couple Woz and Jobs creating the most valuable company in the world from their garage? So that is what the media gives us, and plenty of it. Quietly ignoring the thousands of other smart and driven people who swung for the fences and failed. Or perhaps succeeded, only to be pushed out by investors.

If you aren’t going to be satisfied with anything less than being a multi-millionaire living in a hollowed out volcano, then an all-or-nothing, VC-backed start-up crap shoot is probably your only option. And there are markets where you have very little chance of success without venture capital. But really, how much money do you need? Is money going to make you happy? How many meals can you eat in a day? How many cars can you drive? It doesn’t sound that great to me when you read accounts of what it is like to be rich. Plenty of studies have shown that happiness is only weakly correlated with wealth once you can afford the necessities of life (food, shelter, clothing). Hedonistic adaption ensures that no amount of luxury can keep us happy for long. Anyway, if you are reading this in English on a computer, you probably are already rich by global standards.

Creating a small software business that provides a good living for just yourself, or perhaps a few people, isn’t very newsworthy. But it is a lot more achievable. The barriers to entry have fallen. You no longer need thousands of dollars of hardware and software to start a software business. Just an idea, good development skills and plenty of time and willpower. Many lifestyle businesses start off with the founder creating the product over evenings and weekends, while doing a full-time job. I cut my expenses and lived off savings until my business started generating enough income for me to live on (about 6 months). I only spent a couple of thousand pounds of my own money before the business became profitable. There is really no need to max out your credit cards or take any big financial risks.

So how much money do lifestyle businesses make? Of course, it varies a lot. Many fail completely, often due to a lack of marketing. But I know quite a few other lifestyle programmers who have made it a successful full-time career. I believe many of them do very nicely financially. Personally, I have averaged a significantly higher income from selling my own software than I ever did from working for other people, and I made a good wage working as a senior software engineer. Here is a comparison of my income from my last full-time salaried employment vs what I have paid out in salary and dividends from my business over the last 7 years.

lifestyle business incomeBear in mind that the above would look even more favourable if it took into account business assets, the value of the business itself and the tax advantages of running a business vs earning a salary.

Sure, I could hire employees and leverage their efforts to potentially make more money. Creating jobs for other people is a worthy thing to do. Companies like FogCreek and 37Signals have been very successful without taking outside investment. But I value my lifestyle more than I value the benefits of having a bigger business and I struggle to think of what I would do with lots more money. I might end up having to talk to financial advisers (the horror). I would also end up managing other people, while they did all the stuff I like doing. I am much better at product development, marketing and support than I am being a manager.

If you can make enough money to pay the bills, being a lifestyle programmer is a great life. I can’t get fired. I make money while I sleep. I choose where to live. I don’t have to worry about making payroll for anyone other than myself. My commute is about 10 meters (to the end of the garden). I get to see my son every day before he goes to school and when he comes back home. I go to no meetings. I have no real deadlines. No-one can tell me where to put my curly braces or force me to push out crappy software just to meet some arbitrary ship date. When I’m not feeling very productive I go for a run or do some chores. I can’t remember the last time I set an alarm clock or wore a tie.

My little business isn’t going to fundamentally change the world in the way that a big company like Google or Facebook has. But it has bought me a lot of happiness and fulfilment and, judging by the emails I get, improved the life of a lot of my customers as well. And some of those really famous events you hear about in the news (which I don’t have permission to name-drop) plan their seating using PerfectTablePlan.

Of course, it isn’t all milk and money. The first year was very hard work for uncertain rewards. I recently happened across this post I made on a forum back in August 2005, a few months after I went full-time:

“I work a 60-70 hour week and pay myself £100 at the end of it (that’s less than $200). I could make 3x more working for minimum wage flipping burgers. But hopefully it won’t be like this forever…”

I still work hard. I’m not lying under a palm tree while someone else “offshore” does all the work. And I don’t get to spend all day programming. If you want to have any real chance of succeeding you need to spend plenty of time on marketing. Thankfully I have found I actually enjoy the challenge of marketing. But, because I don’t have employees, I have to do some of some of the crappy jobs that I wouldn’t choose to do otherwise, including: writing documentation, chasing invoices, tweaking the website and doing admin. And I answer customer support emails 364 days a year. I take my laptop on holiday, but it really isn’t that bad. Customer support is frustrating at times. But it is very rewarding to know that lots of people are using my software. Overall, it’s a great lifestyle. I don’t miss having a 9-5 job. I wouldn’t even swap my job for running a bigger, ‘more successful’ company.

3 practical tips for finding software product ideas

software product ideasToo many software products fail because no-one bothered to do basic market research. This is a guest post from Edmundo López B. with some useful advice on finding a viable market niche before you start creating your product.

The process of building software for a niche market is more or less well documented online. The basic workflow I found is (for example here or here):

  • choose some niche (with potential)
  • find out the problems that you can solve in that niche
  • create a product to solve the problem
  • sell it
  • enjoy life :-)

Here are three things you can look for when asking people about their problems.

Ask for the painful tasks that they do, not for the problem you can help with

The people I first talked to were persons that I already knew, so my pitch for them was: “Hello. As you know I’m a software engineer. I’m looking for problems to solve. I want to build software and sell it. And, if I solve a real problem, I’m sure people will pay for it. I was wondering if there is some problem in your business where you need some help. I could create some software, solve your problem and then sell it. I can help you with your problem and you will help me to find my problem.”

The first response was always positive however, everybody I talked to started to look at a problem they thought could be solved by a computer. The problem with that is that people’s vision of computers is very limited. First, some people limit the software I can build to desktop applications or some platform they know well. Second, they try to find problems to give you, and not the problems they really have. For example: one of my interviewees said to me that she needed some kind of tracking system for the expenses of her very small business (a small farm producing eggs). I told her: “Wow, that sounds like a problem I could solve, how are you solving that problem right now?.” She told me: “I’m not, I’m busy bootstrapping the whole business right now. But later I’d certainly like to have something for that.” Of course, if she is not solving that right now, then that is not a real problem. She sort of made that problem up to give an answer to my question.

People have real problems but sometimes they don’t even know they could tackle that problem with a computer. So, the lesson here is that you have to get them to tell you their real problems. Even the ones they don’t think that could be solved by a computer. You are the computer expert, not the people you interview, so you need to find out the real problem out there. Also it doesn’t have to be a problem from the future, it has to be an actual problem now. The question that I found works best is the following: Tell me about your day and what activities are the most tedious and boring to do, but do not add much value to your business. (I’m not the first to come up with this question, but I don’t remember the source, sorry.)

Look for their existing solution and ask what is wrong with it (the Excel spreadsheet)

From the people I interviewed, 2 of them had an Excel spreadsheet that solved their problem in a way that was not the best, but did the job. The third one had plans to solve her problem with an Excel spreadsheet in the future. Joel Spolsky talks about how Excel and other horizontal software are nothing more than glorified data structures. It is true, you can do almost anything involving simple mathematics and tables of data within Excel. Keeping track of costs, sales, etc. are a perfect match for it.

The common engineer will say: “If there is already a solution for that, why roll my own?” The entrepreneur will just ask what isn’t possible with the existing solution and think of ways of improving that. The existence of the Excel spreadsheet is a clear sign that there is a computing problem that can be solved in a better way. I can give you an example. Two of the persons I interviewed showed me their Excel spreadsheets (an architect and an event manager). A common problem was being able to slightly change some prices in a budget and immediately be able to show the old and the new price to the client.  This kind of information is gold to the person creating an application. This is something they use, and if you can save them time using it, you can add value to their businesses.

If there is no Excel spreadsheet, I just try to find software on the net that does what they need. If there is something really good on the market, I don’t want to compete with them. If you are wondering why didn’t I let them do the search, the answer is simple: they do the search using the traditional channels, colleagues and networks of peers; I focus on the Google search. I’m a developer, I can Google for software in a much better way than they do. It took me an hour to do a research on software for architects. Then you can explain to them the pros and cons of the solutions, help them to sign up for a free trial and tell them if their set-up is supported. The golden rule is to be really helpful. It is true that you might end up finding a customer for someone else. But if there is not a good solution, you are finding a niche for yourself.

Do some simple mathematics to see if the problem is worth solving

My last tip is about the financial aspect. Let us say that you finally found a problem that you can solve. It is painful and there is no solution in the market that can solve it in the way people in that niche want. The question to ask now is: “What are people willing to pay for something like this?” I cannot give you an exact answer but I can tell you that it depends on the value you add to your client’s business.

What you want to know is:

  • How much time does it take monthly to do the task you are solving?
  • How much money could be earned in the same amount of time?
  • How much faster would it be to do the same task with your solution?

The basic idea is to convert saved time to saved dollars. Of course, if your solution saves dollars monthly, it becomes an investment for the business. My limited experience showed me that saving people money and pain gets them really excited.

I can give you an example from my interview with the architect. Once again, the problem was something he was solving with an Excel spreadsheet. I asked him how much time did it take and he told me at least three days. Three days of architect’s time means a lot of money. So, if you can help him solve the problem in one day, you are not only saving his money but avoiding pain (because the problem was painful to solve, but  it needed to be done).

Conclusion

Now it’s up to you. Try to put these in practice, and find a niche to build your first product. Please share your thoughts and remarks in the comments.

Edmundo López B. is a PhD student in computer science at the University of Geneva and an entrepreneur in the making. He loves building things, learning new stuff, and  playing classical guitar. He decided to make the jump directly from school to entrepreneurship. He blogs at edmundo.lopezbobeda.net.