[I originally wrote this some years ago, and it got some twitter traffic recently, so decided to publish it, part of a small collection of DevelopmentAnalogies]
I find myself frequently searching for a good analogy to convey to non-programmers to enormity of dealing with even a small to medium-sized application. The following is the one I keep working on:
My main app on the job these days comes in around maybe 75k lines of code I've written (it's hard to get a good count cuz there's a bunch of 3rd party code lines included in the count Delphi's compiler comes up with).
Of those 75k lines, I can only look at maybe 30 at one time. Of those 30 visible on the screen, I can only focus my mind on maybe to 5-15 of them. 15 lines out of 75k is only 0.0002% of the codebase.
Now say I've built a 2,000 sq. ft. house, but can only look at 0.0002% at a time -- that's about a 5 in. square. I have no ability to size up a room, no ability to see an entire window, an entire door, a cabinet, much less a blueprint of the entire floorplan. The only things I can see in one shot are items like a door hinge, a window lock, a stove top knob.
These measurements are very crude, of course ... but it seems to me, so far, to get the gist across.