Wednesday, March 31, 2010

Bespoke

Over the past few years, I've learned a great set of new words from my UK counterparts. Many unfamiliar terms used in the UK have a great history, and sometimes they're just... so perfect.

Bespoke is such a term. It has many meanings, essentially being "fully custom" or "hand built". But is also has deeper meanings, alluding to "exactly fitting your personal needs", "crafted", or "personal touch". It comes of course, from the tailoring world, where it evokes a sense of old world craftsmanship, a very personal garment, hand measured and hand sewn, just for you.

Bespoke is at one end of the scalability spectrum. As you move to larger scale production you see much lower costs, but many fewer options and features.

Exactly like the IT world.

Bespoke is fully custom, exactly what you desire, no matter the cost. High scale, mass production is what you need, no more, no less. It is a compromise, but one you've decided to accept, usually for faster delivery or lower cost.

There is a time and place for bespoke, but increasingly we need to achieve high scalability, as we are increasingly pushed to do more with less. There are some problems that just can't be solved at the low end of the scale solution. For example, High Performance Computing (HPC) clusters of commodity computers are a high-scale alternative to the bespoke supercomputers of the past, such as the early Cray machines. Our need to solve larger and larger problems, such as the HPCC Grand Challenge problems, eventually required more horsepower than a single, hand-built, bespoke machine could deliver.

Thursday, March 25, 2010

Scale or Die!

Every day, I encounter a product, a system, or an idea that just doesn't "scale up".

I've seen this most often in the IT systems that I manage, or that I have to use as a customer. I've seen this in short-sighted "solutions" that only attempt to solve an immediate problem, or don't consider 2nd and 3rd order effects.

I've seen this in selfish and short-sighted people who only want to solve a problem for themselves, or their friends, without considering the problems this will cause for everyone else.

Anyone can change one lightbulb. What happens when you need to change one thousand?

(Almost) anyone can handle a single computer, but how do you manage thousands?

Anyone can provide good customer service, if you only have a few customers. How about when you have millions?

Anyone can help save a single person, but how do you save millions ?