Ford’s Laws

Wed 25 April 2012

My good friend Ken McGlothlen recently posted his “Ford’s Laws”, which had me in tears, so I had to repost them here.

I’ll let Ken explain the origins:

“For a while, I’ve been referring to Ford’s First Law, which you delivered to me the time you were kind enough to come out here and help set up some stuff. In short, “Don’t bugger with it any more than you absolutely have to” (this when referring to a custom kernel I’d created for a FreeBSD box). I’ve really tried to take this law to heart, only failing once in a while and for plausible reason.” “Since then, however, I’ve been creating a list of laws which I’ve attributed to you only because I laugh when I think of hearing them in your voice, and I feel kind of odd about that. Like I should feel bad, but I’m still snickering madly to myself too much to feel bad yet. They’re all quite rational laws, just … not especially polite.”

So for your amusement, here are Ken’s “Ford’s Laws“:

Ford’s First Law: Don’t bugger with it anymore than you absolutely have to! Corollary to Ford’s First Law: *&@#, if you insist on buggering with that thing, at least do it in a way that makes sense to someone else! Second Corollary to Ford’s First Law: And don’t bugger with anything else if you don’t have to! Gah!

Ford’s Second Law: Quit touching that! It works already. Corollary to Ford’s Second Law: Quit touching that, too! I didn’t mean THAT. That. That thing there. YES, THAT. QUIT TOUCHING THAT. AND the other thing. Look, DON’T TOUCH ANYTHING. It’s working already, so quit touching it! Second Corollary to Ford’s Second Law: For *&@#’s sakes, if it works, quit touching it! In fact, go stand over there.

Ford’s Third Law: How the @&# can you possibly need that feature? Corollary to Ford’s Third Law: Every feature you don’t need is a bloody bug waiting to happen. Second Corollary to Ford’s Third Law: Are you out of your @&#ing mind? Just use something that’s simple and that gets the job done, but still leaves you with enough flexibility that you aren’t trapped.

Ford’s Fourth Law: It was obsolete when you bought it.

Ford’s Fifth Law: Sometimes it’s just broken to begin with.

Ford’s First Law of Databases: You’re using a SQL database for WHAT? Are you MAD? Corollary to Ford’s First Law of Databases: If you have one bloody table, you don’t need bloody SQL. Second Corollary to Ford’s First Law of Databases: If you have less than 1000 records in three tables, why the bloody hell aren’t you using a text file? Third Corollary to Ford’s First Law of Databases: If you really need fast key lookups and don’t need referential integrity between tables, why aren’t you using a key-value store? Fourth Corollary to Ford’s First Law of Databases: Nobody serious about data thinks of MySQL as any of “My,” “SQL” or “a database.”

Ford’s Second Law of Databases: Why the hell are you importing this crap? Corollary to Ford’s Second Law of Databases: If you don’t need it, then you don’t have to parse it or keep it, so stop importing that crap. Second Corollary to Ford’s Second Law of Databases: For Chrissakes, stop already—I don’t care how anal-retentive you are, you don’t need that crap. Third Corollary to Ford’s Second Law of Databases: Well, if you must import this crap, sequester it in quickly as possible into its own table, so you can drop all the crap at once when you come to your bloody senses.

Ford’s Third Law of Coding: What the &@# is this @#&? Corollary to Ford’s Third Law of Coding: If it doesn’t make sense, burn it with fire. Second Corollary to Ford’s Third Law of Coding: Then rewrite it. Third Corollary to Ford’s Third Law of Coding: As soon as it makes sense and works, stop.

I’m sure more will follow in due course…