Archive for September, 2008

Nick’s Two Laws of Software Engineering

So I’ve been working in software for over 10 years, and so I figured its about time I came out with some highly scientific principles of software engineering. Follow these, and I personally guarantee success…

  1. Don’t try and do too much at once.
  2. Hire smart people.
It’s important that you do both of these - leave either out and you’ll probably fail. 

Firstly, software is too hard to try and get too much of it done at once. Don’t bother trying - no matter how smart your team is you’ll fail - or have to redefine success to something less than 100% satisfactory. If you’ve got a big project to do, then incrememental delivery is the only way forward.

Secondly, no matter how small the project is you need smart people. Software is too hard, and it has an amplifying effect on stupidity. Since the smallest bug can cause big problems, and the number of bugs decreases expoentially with smartness you just can’t afford to have less than the smartest people available (I’ve got no evidence this bug vs smartness relationship is true, but it sounds kinda scientific & shit, so I’ll leave it in). However, if you have smart people, you have to stop them trying to do too much at once. See rule one.

That’s it. I now declare software development to be a solved field.

Comments

Android

So Android is out (a couple of months after I got a Nokia E71 - which is great BTW). People seem to think it will succeed mearly on the basis of having an open platform. I’m sure that will help, but the real issue holding back mobile is the carriers, not the software platform. Getting a decent deal out of carriers was Apple’s biggest move with the iPhone, and Android phones will need to get similar deals. Ask a mobile developer about how to get “on deck” on most carriers, and how much money they get from that (usually around 20%!) and compare that to the AppStore deal.

Comments