Wednesday, April 18, 2007

Linksplurge #1

Friday, April 13, 2007

How to save 33% on your coffee

Every morning, on the way to work, I buy a large coffee for $3. The coffee shop runs a loyalty card scheme to retain my custom in exchange for free drinks. It works like this:

1. Buy 9 coffees ($27) - get one free
2. Buy another 8 coffees $24) - get one free
3. Buy another 7 coffees ($21) - get one free
4. Buy another 6 coffees ($18) - get one free
5. Repeat again from step 1.

By spending $90 ($27 + $24 + $21 + $18) on coffee I get four drinks free, worth $12. Without the scheme, the total 34 drinks would cost me $102, so with my free coffees I make an overall saving of 12%. Pretty good, but still a lot to spend of coffee, especially when I can make a cup of tea at work for nothing.

How can I maximise my value for money?

Medium coffees are $2.40 and aren't much smaller, they contain the same amount of coffee but slightly less milk. What if I only buy medium coffees, but take a large one as my free drink? Then how much do I save?

Cost: 30 x $2.40 = $72
Free: 4 x $3 = $12
Total value: $84
Saving: 14%

Not bad, every little helps. The next step is coffee for friends. There are two other people in my office who need a morning caffeine hit, so I offer to pick up their drinks on my way in, but keep using my loyalty card. So now I get more free drinks without spending as much:

X = My coffee, 0 = Friends' coffee

XOOXOOXOO - 1 free
XOOXOOXO - 1 free
OXOOXOO - 1 free
XOOXOO - 1 free

Combining this with the previous strategy, for every ten medium coffees I buy, I now get four large for free.

Cost: 10 x $2.40 = $24
Free: 4 x $3 = $12
Total value = $36
Saving = 33%

I save a load of money on my coffee, the barista gets my regular trade, and my friends get their coffee delivered. Everyone's a winner. (But I still hope none of them finds out.)

Thursday, April 12, 2007

Economics of a Software Developer

This is all obvious stuff, but it's interesting to break it down into basic principles. As a software developer, I make money by supplying a product or service in exchange for cash. I build someone a website, they pay me money. I'm able to do this because there are plenty of companies who want websites, which creates demand for my skills. Demand increases when there are more companies and fewer developers, then I can become a scarce resource and charge proportionately more for my services.

It's a standard way to make money in a competitive free market. I studied software engineering partly because it was a growing industry with increasing demand for skills. So did lots of other people, for similar reasons, which increases supply to meet new demand. Now there are loads of companies wanting websites, and developers willing to build them, so lots get built, mostly at a fair market price. It's a mutually beneficial arrangement (note for middle managers: "win-win situation").

The market controls what developers can earn, and there's not too much we can do about it. That is, unless someone upsets the equilibrium by either creating more demand or reducing supply. Hmmm...

One option would be to artificially shift the web market into a new apparent niche. Someone could create an new generation of products and services that are available from only a few specialized providers. Business managers can read the press releases (carefully reworked as objective articles by trade magazine journalists) and the hype would be convincing. Customers don't need to completely understand the niche - SOA, Web 2.0, OOP, XML, WAP - but they're now too frightened their competitors will get in first. All you need is to repackage and rebrand existing trends and technologies, and present them as something new. The result is that some developers can now charge much more because everyone wants new generation products, and not many suppliers can yet provide them.

Looking at it from the other angle, another slightly sneaky option is to throttle supply. Maybe by persuading other developers in a particular market to specialise in other technology. If my competition is saturated by, say, .NET developers, then I could try convincing them that .NET is becoming obsolete and they should move into something else. If someone were particularly Machiavellian enterprising then they might post fictional competing job adverts with large salaries, alongside some comparable .NET jobs with stingy pay. Propaganda pushes competitors out of the market and demand goes up again.