A month ago my clothes washer gave up the ghost. A sturdy machine, it had lasted almost 20 years to the day, so as they say, "it didn’t owe me any money." But that meant I had to buy another.
This new machine is amazing! It’s a front loader, meaning you open the door in the side (instead of the top) to move clothes in or out. It’s got about six different types of wash cycles, for things like jeans, whites, delicates, towels, etc. (The old machine had three cycles, which basically let you pick just how hard it beat your clothes; "gentle" meaning it took the longest to turn your garments into lint). It’s got a little draw on the top to hold detergent, softener, bleach, etc. And about 20 buttons and LEDs to let you know what it’s doing at any moment in the wash cycle, and change pretty much any part of the same.
Watching the cycles (which is possible because of the glass door), I’m facinated by how it operates. It uses just enough water to wash however many clothes you put in, and it tumbles them around, first clockwise, pause, counter-clockwise, pause, over and over again. The spin cycle starts slow, until the clothes balance themselves out, and then it really spins up to horrific speeds. Rinse, tumble, spin, softener, rinse, tumble spin, etc.
Now, someone out there’s wondering what this has to do with a blog on programming, so here’s the connection. The old machine used a mechanical clock switch to regulate when things happened. This new machine uses intelligent software. Someone had to write this stuff. Design, test, debug, etc.
Not all software jobs are glamorous. Not everyone will write Halo 3, or the Space Shuttle guidance system, or the CAT-scan controler. Some of you will only write washing machine code. But think of the thousands or tens of thousands of homeowners who will unknowingly love the stuff you did.