Often, a programmer will wrestle with code stubbornly; expending herculean effort to conquer a problem of relatively minor significance. This is OK. Sometimes, developing an application is like training a wild animal, when it defies you and refuses to work, you can’t turn your back on it. You have to show who is boss.
A long time ago, my mother insisted on keeping a bull terrier. Though generally amiable, it would attack anyone, when in the mood. In the spirit of self-preservation, I took lessons in animal training. Never show the slightest fear, never turn your back on an assailant, and react swiftly and decisively to any attack. Soon after taking these lessons, the bull terrier attacked me for the last time. In a flash, I’d knocked it off its feet, rolled it over, grasped its bottom jaw firmly and opened its mouth wide. This sudden immobilization subtly altered our relationship. Whereas the rest of humanity remained fair game, young Phil was permanently off the menu.
What I learned has proved useful throughout my career in IT, not for dealing with management, although I’ve always wanted to try out the above maneuver on an over-excited CIO, but for tackling awkward development tasks.
Sometimes development tasks are so complex that they become, to superstitious humanity, rather like a wild beast that needs taming. A programmer cannot allow a problem to get the upper hand. It feels like defeat to knock off work with that irritating bug still in place. You have to order up the pizza, look the problem in the eye, betray not a flicker of apprehension, and sort it out. The alternative is a distracted evening followed by a night spent dreaming of the problem, and then another day wrestling with an emboldened application, eager to return to its natural wild state.
In an information age, we can forgive programmers for anthropomorphizing inanimate programs. It’s a way of buoying confidence, ensuring quality, and keeping one’s skills honed. Besides, once tamed, I grow quite affectionate towards some of my applications bless ’em. Perhaps I should start a new career as an Application-Whisperer.