Saturday, January 31, 2009

Ship it now, test it later

There's a question on StackOverflow entitled "What real life bad habits has programming given you?", which is quite hilarious for programmers. Answers include things like thinking 256 is a nice round number, wanting to use Ctrl-F on an actual book, or starting to count items at 0 and ending up with one less than everyone else.

This may seem unrelated, but bear with me. Shortly after Ryan was first born, I decided that children, particularly babies, were badly designed:

  • babies need to eat, but don't know how right away, and frequently spit up what they've already eaten or refuse to eat. It takes years before a child can even make himself a bowl of cereal.
  • babies need to sleep, but getting them to go to sleep (or stay asleep) can be challenging. When Ryan was a baby, he wouldn't go to sleep by himself; we had to walk with him until he fell asleep in our arms and then gently put him in his crib. If he wasn't sufficiently asleep (read: unconscious), he'd wake up and you'd have to start all over. Sometimes we'd have to walk with him for 45 minutes before we could go back to sleep ourselves.
  • babies can't roll over for a few months after they're born, can't crawl until six months, and can't walk for the better part of a year. Baby deer are walking within minutes of birth.
  • children are self-centred. They have tantrums when things don't go the way they want, even if the circumstances are beyond anyone's control, or if getting their way would inconvenience or even hurt others. Older kids have been known to give their parents attitude (and I'm one of the lucky parents whose children have reached that stage), and teenagers sometimes take "attitude" to a whole new level.
  • some babies in the animal kingdom are on their own from the moment they are born. Others are under the care of their parents for a few years. Human children frequently live with their parents for twenty years (sometimes more), or about 25% of the average human lifespan.

Despite these challenges, parents continue to love and nurture their children, so obviously parents are generally better designed than children. However, children turn into parents without having been "re-designed", so it occurs to me that the real problem is not with design, which means it must be implementation. Obviously babies are born before they're really ready — before all the bugs have been worked out, before things have been streamlined and optimized.

The real problem is that babies are shipped while still in early beta.

1 comment:

Jason said...

Try telling your wife that when she is 9 months pregnant! I would not stand to close when you tell her 8-)