Wednesday, September 9, 2009

Navel-Gazing: a Justification

I had an experience at work today which made a lot of my effort at self-improvement, at constructive thinking, worthwhile.

I have been working for months on a project with little leadership and less direction. It requires a huge amount of effort for a very small payback, and no one wants to touch it. I've been struggling for months to write a program that is central to the project, for which I had no specs -- I haven't even been able to verify the data coming in or the data that should go out.

This is my idea of employment hell. It saps the energy out of you; it reminds me of what Pirsig, in "Zen and the Art of Motorcycle Maintenance," called a gumption trap. Wiki (I'm not going to try to find the novel right now) describes it as "an event or mindset that can cause a person to lose enthusiasm and discourage them from starting or continuing a project."

This morning, after a few days off, I went back to the office, energized and ready to start again, only to find an email from my supervisor: "Julia, your program is getting too complicated. I rewrote all your code. Can we meet this afternoon to go over it?"

All kinds of things went through my mind:
- You've done this once before and never admitted to it.
- I've been asking for help for weeks; this is not help
- If you were going to write the goddamned program, why wait until I've beaten myself silly over it?

oh my God, what an insult, and

- he's rejecting all my work, and
- I'm a lousy programmer, and
- he's not going to fire me but I bet he wishes he could.

It felt like such a huge rejection, of my work and my effort and ... it was awful. A cross between anger and shame that hits me whenever I am publicly wrong.

All morning, whenever I thought about it, I had to fight tears of anger and frustration. But constructive living kicked in: feel what you feel, but act. So I turned my back on the program for awhile and did other, smaller jobs that had been pushed aside during testing.

Lunchtime came and I was still, well, gobsmacked by the whole thing. And I knew if I met with my supervisor in that state, I would either lose my temper, or cry (I have a tendency, much detested, to lose control and cry when I'm angry.) I had gain control before the meeting started. I began to think about cognitive errors.

- Does he wish he could fire me? Probably not. The guy I replaced couldn't get along with anyone, and I get along with just about everyone. That counts. And I have other duties in addition to writing this one program, and he would have to find someone else to do them. As an employee, I'm a net gain - although it probably doesn't feel like that every day!

- Am I a lousy programmer? Yes and no, and mostly no. I told him when I was hired that I was a good maintenance programmer, but that I hated writing my own code. In fact, every organization I've worked for avoids writing original code, because it's so expensive. But my boss loves to code. I don't. So, yes, I'm bad at a task we try to avoid; I'm good at the task for which I was hired.

- Why didn't he just rewrite it weeks ago and save me all the hassle? Because he hasn't had time to look at it earlier, and (truth be told) he wasn't sure what he wanted the program to do (see missing specs.) In the four rewrites of this program that I've done, I've hammered out most of the specs and the potential errors. That was a big advantage for him in the rewrite.

- You've done this once before and never admitted it. Yes, in fact, he has done this once before, and he didn't tell me - just quietly put the rewritten code into production. That was a shitty thing to do, and I think he felt badly about it, because the first thing he said in the meeting was "I feel like I'm treading on your toes here." No, really?

- Oh, my God, what an insult! Was it an insult? Hello to the Buddha, hello to Dr. Al: it is an insult if I perceive it as one; if I'm so attached to my reputation as a programmer that I can't take criticism. But - he's a much better programmer than I am. The new program is a great improvement. If he had re-written it and it was worse, then I might be upset. But it's better.

And he did acknowledge the groundwork I had done. (I think he also realizes that he's not being particularly helpful to my growth as an employee when he pulls this programmer-ex-machina stuff, and he prides himself on his managerial skills - with reason.)

As I sat there sifting through everything I've learned about emotion and control and what's really important, pulling out nuggets to help me get through each part of the meeting, I realized that pre-medication I would have burst into tears, quite possibly lost my temper and, if not my job, at least my boss's respect. Post-meds, with what I have learned from the Buddha's teachings, and constructive living, and Dr. Al, and cognitive therapy -- I can't say I sailed through the meeting, but I can say I handled it better than I ever thought possible. I think my supervisor was surprised - and I'm willing to bet that he was impressed - that I handled it as well, as gracefully, as I did.

Doesn't mean it was a good way to handle things, and there's no way I can claim a poker face - he knew that I was unhappy about the way it was handled. But it's done and I still have a job and the long nightmare of screwing with that program - having to face, daily, a task that requires my weakest skills - may be just about over.

It could have been much worse - especially if my actions had been negative. Just when I think I spend way too much time thinking about this stuff, I get a payback like I had today, and it makes me want to keep getting better.

No comments:

Post a Comment