Nov. 25th, 2009

Naivete

Nov. 25th, 2009 08:10 pm
rbandrews: (simcity)
I want to talk about naivete, because I've been thinking about that a lot.

Imagine you have two guys, Alan and Brad. Both are digging ditches for some reason.

Alan looks at the place the ditch should be, seeing only problems: how it has to be deeper than he can reach, all the rocks in the way, and thinks "man, this is going to take forever". He then goes off and designs, and builds, a tool that can handle any ditch-related problem ever thrown at it. It is "production-ready". It is: a nuclear-powered tunnel-boring machine!

Brad does the same thing, but Brad is naive. Brad thinks "meh, this looks easy, I'll be done by lunch". He designs a much simpler tool: a shovel. Which is completely not good enough, so back to the drawing board, for: a miniature backhoe.

Sure, both of them end up with a tool that does the job, but Brad, by simply being naive about how hard it would be, got the right tool for the job. The truly painful thing is that Alan will never realize that he didn't. He'll assume that all the complexity he ended up with was actually necessary for his problem, and he'll maintain it, forever. And probably chide Brad, if they ever meet, for stupidly thinking a shovel would ever be enough.

Now, probably, if you're digging a ditch, Alan's way is better, because more work will be involved in digging the ditch than driving a tunnel-boring machine. But, if you're a programmer, Brad's naivete is what you should be thinking of. You're never going to actually drive the backhoe, the computer does that. All you have to do is fix it when it breaks down, so it's in your best interest that it be as simple as possible, because it'll break down less and in more obvious ways.

Profile

rbandrews: (Default)
rbandrews

July 2024

S M T W T F S
 123456
78910111213
14151617181920
212223242526 27
28293031   

Style Credit

Page generated Jun. 15th, 2025 06:31 pm
Powered by Dreamwidth Studios

Expand Cut Tags

No cut tags

Page Summary