I've just had one of my best guys working on performance for a month. He's working on a very simple application. Well, alright, it contains millions of lines of code and has taken 10s of man years to develop, but that's not the point. It *is* conceptually simple. It contains data, some in memory, some on disk. It receives requests over a network. It processes these requests, using the data it holds. Sometimes it updates this data. It sends reponses. See, told you it was simple.
So, how much faster has he made it? Oh, just about 10 times. Yup, an order of magnitude. That's a potentially business changing contribution. In a month. To a project that has been running for many years. I'll have some of that!
How? Well, he's very smart and he knows a lot. But they're ultimately not the point I'm trying to make, and alone do not guarantee success. It's the approach and the attitude that matters. He's a bloody minded so and so, who's not happy if products aren't as good as they could be. There's three important bits there. The "bloody minded" bit is one - and that helps. And the "aren't as good as they could be" bit. There's two more in there. Can you see them both? They're just as important, and provided the approach to this problem.
Sure, he could have just set up to 'make performance better'. But who knows where you'll end up, and when you should stop? "Aren't as good as they could be". The two important bits in here are how good can it be, and how good is it now (maybe it already is as good as it could be). If you want to get the best possible performance, the obvious (when you know it) way to start is to have some idea what that optimum performance is, and to know what the current performance is.
The same applies to any problem. If you don't know where you are now and where you're trying to get to, you're liable to set off in the wrong direction, and you'll never know when you've reached your destination.
OK, so that was the starting point. Tune in next time to find out what next...
Wednesday, 25 June 2008
I feel the need...
It's one o'clock in the morning and I can't sleep. I'm normally good at switching off from work, but tonight, running around my head is the repeated thought "Programming isn't an art or a science, it's a craft - and I wish more programmers understood that." The only way I'm going to get any rest is to write some of this stuff down.
Subscribe to:
Comments (Atom)