Sunday, February 12, 2006

Software "Tunnel Vision"

I wrote a short blog piece that I'll probably post tomorrow, and in it I refer to "Tunnel Vision." I decided to link that expression to an explanation of it, but a quick web search found only references to: A Sarah Paretsky novel, a vision deficiency, and a kind of unfortunate narrow-mindedness. The term Tunnel Vision is used quite admiringly in the software industry, but having failed to find an easy reference to this, I'm going to try to define it here.

Tunnel Vision:
(1) The ability to focus intuitively only on what is crucial and relevant to solve a problem. Another way to put the same thing is:
(2) The ability to ignore a distracting lack of knowledge while learning just enough to solve a problem.

For example, someone hands me a program I've never seen before and says "it crashes if you save a file after selecting "Help." If I feel I have to really study the program, understand its full design, how it works and what it does, in order to fix this bug, I'm a lousy maintenance programmer. I need to do something much faster: study just the parts of the program involved in Save and Help to find where it crashes and why.

Or again, someone hands me a Ruby program and asks me to add a function to it. I'm going to have to learn some Ruby, learn a new language processor, learn a new debugger, AND part of this program to modify it. When I'm finished, I won't know much about any of them. My Tunnel Vision will have focused on just enough to make my changes. Desiring to learn too much about Ruby and this program, are the distractions my Tunnel Vision must enable me to ignore.

Good Tunnel Vision is partly intuitive, partly developed through experience. It's easy to feel blocked by the need to assimilate too much knowledge, and it's deadly (because you make unwitting mistakes) to focus too narrowly. I'm sure Tunnel Vision is a great skill in many fields besides software. (You may find a short reference to this meaning of "Tunnel Vision" at Wikipedia. It's my first emendation to Wikipedia, and I'm expecting to get heavily edited...)

Extra credit: I learned from John Dvorak's blog that in Aurora, Illinois, a 12 year old boy has been arrested and suspended for bringing sugar (a "drug look alike") to school. I believe this is a case of the "no child's left behind" policy in action.

No comments: