Monday 30 May 2011

Software Product Development

I've been giving some thought recently to the business of software development. That is, what are the factors to be considered when proposing to develop a software product.

Revenue
Lets take two examples: Microsoft and a company that sells high-end foreign currency trading systems. Both these companies sell software, but their markets are very different.
     Microsoft's customer base is enormous, potentially the total number of PC's in the world, approximately 2 billion by 2012, so even charging a fairly low price of, say, £50 and you only have 25% of that market (new PC's being only a fraction of the whole) you're looking at £25 billion. Actually, MS made $62 billion revenue last year, about £37 billion, but it's still more money than I made.
     For the trading system, the market is very small, about twenty customers at most so, in order to make money, you have to charge enough per unit to make it worthwhile, say, £250000. That gives you a total of about £5 million. If you also charge £100000 for an annual maintenance contract (included the price for the first year) and you get one customer per year, on average, you're looking at £350k the second year, £450k the third and so on. If you do get twenty, you make around £2 million a year. This sounds like a lot, but read on.
     Most companies have a model similar to the latter, but with a lot more customers, and a correspondingly lower price.

Costs
The flip side of revenue is costs. This can be separated into operating costs and overheads.
     Overheads are things like the rent of any accommodation, servicing bank loans, the costs of having an accountant or lawyer. Anything you have to pay regularly irrespective of how big you are.
     Operating costs are usually wages and the taxes that go along with them, plus capital gains and corporation tax. Say a software developer or analyst or tester costs £40k a year. A team of four developers plus an analyst and/or a tester and/or a support person will set you back £280k. A software developer can write about 10 - 20,000 lines of code a year, so it will take four developers upwards of two and a half years to write 200,000 lines, which is the initial size of a system with any degree of useful functionality. Remember that there's no revenue so far (you've no system to sell) so you'll be down £700k by the time it's built.
     There are things you can do to short-cut this:
  • Employing a framework of some kind will cut down the amount of code you have to write by anything up to 50%. If that is the case, you can reduce the number of programmers or reduce the time to market. It also increases the reliability, as the framework will have been used by others and a lot of the bugs will have been sorted out. Think Hibernate/NHibernate for Java and .Net. Spring for Java, etc.
  • You can use CASE tools which can generate code from models. They've always been of dubious value in a project, especially where reverse engineering is concerned, but if you're starting out, it might save time.
  • Open source will reduce the licensing fees, but it's worth taking into account that something which purports to be open source as a development license turns out not to be when you're rolling it out to a customer (see MySQL).
  • You can reduce the wage bill by only having minimum wage for the first couple of years and offering stock options: jam tomorrow, so to speak. Minimum wage in the UK is £6.08 an hour which works out at about £13k a year.
  • Working from home saves on overheads and is the basis of a lot of start-ups, plus you've always got tele-commuting.

Competitive Advantage
Obviously, you're not the only company selling software products, and you will be competing with other companies even before you start selling. To compete successfully, you have to have a competitive advantage. This is something that your company has that customers want that the others don't, or don't have a lot of. The classic example of this is Google, who have such a large advantage over their rivals that even the mighty Microsoft has problems competing. It's so large, in fact, that it's referred to as a "moat".
     There are many different advantages, but the main ones are price, quality (both of the product and the support) and functionality.
  • Price is a reflection of cost (see above). If you're cheaper than your competitors, your customers will come to you, not them, but you have to keep your costs down.
  • Quality is how good your software is at doing it's job. Bugs will also cost you money to fix as the customer is not going to pay for you to fix them (but that should be covered in the maintenance agreement). Also the amount of knowledge your support people have counts as quality.
  • Functionality is how much work your software does for your customer and how much money it saves him. If your software connects to an external system and, say, creates foreign exchange trades, it means that your customer doesn't have to spend time extracting information to a file from your system and uploading it into the other or, God forbid, creating the trades by hand.
There are, of course, other advantages including customer contact (can you play golf?), business knowledge, etc.

What if it all goes wrong?
You've set up a business and you're eighteen months in. There are no customers to be seen and what one's you have already have a system which is more functional than yours but not as pretty or reliable. Your competitors outclass you at everything apart from the software and are even cheaper than you because they are big enough to undercut you and make a loss just to put you out of business. What have you got to show for your efforts apart from the bills and a load of software nobody wants?

You.

You've been running a business for eighteen months and gained an insight into what it's like to do so. You may have gained desirable skills, such as .Net, Java, PHP or Ruby which you can sell to another company, whether permanently or on contract.
     This all sounds very positive, but commerce is littered with dead firms who tried and failed. If you're young, you still have a career ahead of you and the optimism of better times, but when you are middle aged, everything looks uncertain.

Sunday 29 May 2011

Calibre

I've been looking around for an ePub manager/reader and I think I've found a very good one. Check out Calibre. It's got lots of features and a half decent converter, so if you've got old PDFs lying around and want to read them on your ePub reader, you can convert them across. Nice.

Saturday 28 May 2011

Barca, Barca, Barcelona!

Y'know, I feel so sorry for the Stretford people. I really do. They deserved so much to win the Champions League and the FA Cup, only to be outclassed by much better teams. Sad. In a way. Probably. Not.

SQL Anti-patterns

Most people know of my love of SQL and dislike of anti-patterns (no, sorry, the other way around) so I've found a book which combines the two and it's rather good:


The Revolution Will Not Be Televised: RIP Gil Scott-Heron



but also unbelievably cool and funky:

Monday 23 May 2011

The No Asshole Rule

For the life of me I can't figure out how I found out about this book:


but it looks hilarious.

Sunday 22 May 2011

Foundry Miniatures

Normally a company like Foundry wouldn't raise much of a blip on the modelling radar. It is after all just a small company producing a range of historical metal soldiers. However, there are two things which make it unusual.
  1. They have an amazing paint range, hundreds of different shades and colours, all matched such that you have the base shade, the dark shade and the highlight shade.
  2. To go along with this is Kevin Dallimore's painting guides:

    KEVIN DALLIMORES PAINTING GUIDE

    one of the best in the market and very influential (have a look at how similar they are to GW's, which came along much later).
If you want the historical equivalent to GW, or you want materials which compliment or replace GW stuff, I can't recommend Foundry highly enough.

Friday 20 May 2011

Inception

There are some movies which just are not really worth the effort of watching. Inception is one of them.



By the end of the film, which couldn't come too soon, I honestly didn't care for any of the characters. Some of the special effects were rather good, especially the zero-g fight scene in the hotel, but the plot was way too convoluted.

M.O.T. Day

Today was M.O.T. day for the car, so I took it down to the garage in Benfleet. It had a few electrical faults, one being that the washer motor didn't work and that the dashboard lights had dissappeared when I switched on the headlights. The car is a Vauxhall Corsa and one of the problems with the make is the heavy wear on the front tyres, so I had them replaced the previous weekend (one was very worn on one side and the other was getting there).
The garage services the car, repaired the washer and did the M.O.T., which it passed. The dashboard light problem was because there is a dial to one side of the lights intended for just this thing. The idea is that you can adjust the brightness so that you don't dazzle yourself when switching on the lights. I must have knocked the dial when I was cleaning a few weeks ago.
The car has done over 111,000 miles in just over eight years, which is about 14,000 miles a year average, about 50% more than normal. This is mostly because for the first few years I had it I was travelling to Kent everyday, doing a 75 mile-a-day round trip (about 20,000 a year).
As a nice, cheap car, Corsa's are great. I've had very few problems and highly recommend them.

Saturday 14 May 2011

FA MCFC

So after 42 YEARS!!! City have won the FA Cup and it's returned to Manchester. I cannot say that the match was a classic and since there was only one goal in it, hardly a high scoring one, but the two teams were evenly matched, with only a slight lapse in concentration by Stoke resulting in an opportunity to score, which was not wasted by Toure.



As to the future, well, we could be looking at third spot next year and there is always Europe. Better days, I think.

As for Shrews, well they didn't get automatic promotion, thanks to Wycombe, so they had to play Torquay in the playoff's, which they lost 2-0 in the first leg, so off to a bad start there. They might get through, but I think with Turner in charge, next year definitely.

Sunday 1 May 2011

Tank Overhaul

There is a TV series from Canada. It's a bit like a cross between Time Team, Scrapheap Challenge and Top Gear where these guys overhaul a tank. Whoever came up with this idea must be a genius. It's the perfect Sunday afternoon TV for middle aged blokes.