The thing that computers are good at is brainless repetition. They are perfect when you’ve figured out a logical problem and need to exploit it over and over.

In programming, we achieve this with encapsulation and abstraction. If we have 100 gifts to wrap, we could write:

  • ChooseWrappingPaper()
  • Go to Walgreens
  • Make purchase
  • CutWrappingPaper()
  • Measure box
  • Take out scissors
  • Snip snip
  • FitToGift()
  • If fuzzy sweater, then…
  • If bottle of wine, then…
  • FastenWithTape()

If we write that code 100 times, it is time-consuming, error-prone and requires no use of our noggins. Or we could solve the problem once, and simply use:

  • WrapGifts(100)

So I want to upgrade my laptop to a solid state drive (SSD). And since Windows 7 is done, I’d like to get that too. What do I have to do?

  • Buy SSD
  • Flash the firmware to the latest version
  • Physically install into laptop
  • Get Windows 7
  • Download many gigabytes from MSDN
  • Burn same gigabytes to DVD
  • Install Windows 7
  • Copy same gigabytes from DVD to SSD
  • Determine hardware drivers

Now, this process is precisely the same for everyone that wants to install Windows 7 onto an SSD. It’s several hours of work. Each one of those people is expected to repeat these manual steps even though they the same for everyone.

Here’s what I would like to do:

  • Buy SSD with Windows 7 on it
  • Pop it into laptop
  • Wait 10 minutes while Windows does final installation steps (mainly drivers)

Who will sell this to me?

This seems like a natural opportunity for OEMs like Dell, HP or Lenovo. They are already in the business of automated OS builds and images. They could ensure that the SSD has all the drivers, do testing, and even include their proprietary bits that they insist on.

Heck, they could even offer build-to-order SSDs with Office or Photoshop or whatever. What an opportunity.