November 05, 2011

Corner cases

It’s 2am and I hear fire alarm in a nearby building.  Soon followed by the sirens of fire squad.

Whenever fire alarm goes off, people’s reaction is not “oh my god, fire!”... it’s “oh dear not again”.  What’s intended as a life-saver lives on as a nuisance.  I lived vast majority of my life in a developing nation where finding buildings with proper fire protection is hard.  Not because we cannot afford to install fire detectors everywhere, but because we don’t feel the need for it.

Heard of corner cases?  In the software world a corner case is when a user uses a software in a way not many people would normally use.  Using Excel to create UI mocks for a new product is an extreme example.  (No, I am not making this up; a PM I worked with really did this, and we were all like this.)  Fire protection seems like a corner case in physical world.

I mean, how often something burns at home?  Not very often, but once in a while a fire strong enough to trigger the alarm.  Okay, how often are these fire incidents really serious?  Occasionally.  Most of the time you can just put off the fire by yourself before it can cause any trouble.  Yet, first world countries all have this annoying awesome fire protection system installed in every building.

Number of corner cases covered by a software is a metric of how complete (or complex) the software is.  Maybe the number of physical corner cases a country has covered is a measurement of how developed/rich the country is.  (It’s like they are so rich they can afford to spend resources on something that gives very little in return.)

No comments:

Post a Comment