I was born a psychiatrist's daughter. It might not have quite the ring of Loretta Lynn's country classic, but the reality of it prepared me for my chosen profession. After all, computer programmers / developers / analysts / project leaders / DBAs (or whatever you want to call us) are a neurotic lot. It comes with the territory. We're taught to have a healthy degree of paranoia, anticipating every conceivable risk and obstacle. We're conditioned to cover our hind parts, in writing, no less. After a while we naturally develop a sort of software schizophrenia as we try to split our psyche into the highly-technical-analytic professional and the warm-and-fuzzy, client-friendly liaison.
If we manage to avoid these challenges to mental health, the conflicting advice we're fed from every direction is bound to take its toll. We're expected to "look out for big rocks," "eat the elephant one bite at a time," and "be grateful we're not dung beetles." (Where do they get these sayings?) Torn between providing the best possible product and preventing scope creep, we wrestle with constant internal conflict. Can we possibly keep a project on schedule and under budget while simultaneously pleasing both clients and management? It's like being expected to be rich, beautiful, and smart!
Then consider the methodology roulette and what might as well be called the Baskin Robbins Guide to Programming Languages. 144 flavors. Choose one. It doesn't matter which because there will scarcely be time to get through one of those self-deprecating instructional books before it's re-engineered, upgraded, and released with an unrecognizable IDE. I just wish I could run a defrag utility on my brain and reclaim all the disparate sectors still clinging to useless fragments of every language I've ever touched. Will there reach a point when my brain will refuse to boot up, merely responding with the Blue Screen of Death?
Don't even get me started about project management. Most of the time we're George Jetson on the technology treadmill screaming, "Jane, Jane! Stop this crazy thing!"
What is the programmer's Prozac©? Since I'm a psycho systems analyst, I'm qualified to develop my own behavioral modification plan. Unfortunately, it's commonly done. I've witnessed two self-prescribed treatments that are competitively priced in the United States as well as Canada: (1) Leave the profession, or (2) Morph into a bitter skeptic who no longer gives a @$#% and tries to coast until retirement. Both have a high incidence of side effects, including, but not limited to, nausea and vomiting, with a 50% chance of prolonged and painful unemployment.
I personally prefer shock treatment. As I child I used to get a kick out of cranking my father's antique wooden box once used for administering invigorating doses of electricity to patients. The faster you cranked, the more powerful the kick. You wouldn't think it would be a pleasant thing, but apparently it delivered the sort of spine-tingle needed to get the train back on the tracks, so to speak. Now that's a Jolt Award.
Developers, if we're lucky, receive just enough of a shocking reality check for effective treatment without causing permanent systemic damage. Lately many of us have been experiencing an uncomfortable prickle when the terms "global outsourcing" would be mentioned, like a hypnotic trigger. The words "cutbacks" and "attrition" can cause similar familiar burn.
When I start feeling mentally needy, I choose a focal point and concentrate on it very deliberately until I sense resentment and confusion melting away like so much unattractive cellulite. It's the dung beetle lesson all over. You simply enumerate all the jobs that will make yours suddenly look very appealing in contrast. Slinging swine entrails in a pork processing plant with red, wrinkled hands...priming tobacco in the blazing North Carolina sun with an aching back while pesticide seeps through your pores until nausea sets in. Now that's psychology.
For that matter, developers often don't have far to look for a healthy dose of reality. When I really stop to consider what it would be like to wear some of my clients' shoes, I start to regain healthy perspective.
True, we are expected to moonwalk across the vast waters dividing technology from the masses and tiptoe back on egocentric eggshells, circumventing treacherous misunderstandings and political back-stabbing. Yet, all jobs have their share of baggage, psychologically damaging or otherwise. At least software development offers moments of brilliant clarity, when our logic is good, our programs do what they are supposed to do, and our clients are grateful. That's when we leave the strait jacket behind in the padded cubicle, waving the flag of programming patriotism high.