December 23, 2009 § Leave a comment
Alan Cooper hits the nail on the head when he compares programmers to “normal people” in “The Inmates Are Running the Asylum”. We trade simplicity for control (we’re by nature control freaks), we sacrifice success for understanding (isn’t understanding a major part of success?!?!), we often put so much time and effort into what is possible that we lose sight of what is probable (we’re card-carrying pessimists), and we act like jocks (if you can’t mentally keep up, get outta the way!).
These traits in moderation make us excellent programmers. In excess though, a pessimistic, control crazed, mental bullying, tunnel visioned code monkey creates an endless money pit with nothing usable to show for all her exhaustive efforts.
The trait of particular interest to me is the desire to understand at the expense of success. It’s more than a desire – it HAS to happen! If I don’t understand how something works, I am reluctant to trust it. When I build a complex system that works beautifully, I am always astounded by the fact that users don’t want or need to know exactly what is going on to produce the final result. It’s satisfying when they do – running through the data to find the end result is correct (pat on back).
Success may be traded for understanding especially when a good programmer embarks on using a new technology – especially those which encapsulate a lot of complex functionality. The failure comes in when too much time is spent at the wrong time trying to understand these inner workings before using them in a project. A better idea would be to gain a basic understanding during the technical design phase or earlier. If a doctor is considering using a new laser-guided instrument to repair an eyeball, she will attain training using that instrument prior to the first operation. However, if she spends too much time trying to understand how the instrument was built, what makes the laser red, etc. then her patients lose out on a proven treatment and there may be a new and better instrument by the time she comes around to fully understanding the old one.