I managed somehow to survive 4 months with an enemy at the workplace. There are two more coming, so I need to stay alert.
When I started the new job, I thought that D. would become my best friend; that we’ll share interests and work closely together, designing and writing great software.
Unfortunately, D. has chosen to behave in a hostile way. At the beginning, I was looking for the cause within myself. Maybe I wasn’t nice enough to him? Or maybe I should admire him more? I worked harder and harder, doing my best to be nice and cooperative. Somehow, the harder I tried, the worse it had become. Everything I created or did, met one of the following responses from D.:
- “It’s unnecessary”
- “I hate it and I refuse to use it”
- Quickly writing the same thing, doubling my work
- The above, plus removing my code
You probably think that it’s impossible. What does the boss say?
The boss hears all sorts of stories from D., mostly about why “it was necessary” to do what he did. The reasons were mostly proofs by assertion, statements firmly voiced, but without support. Boss was just taking D. on trust.
Another, humorous event was adding me to a Sourceforge project with a “support technician” role. What I do for the project, is software development, not carrying cables around.
Friends advised me to ditch this job. I have good reasons not to do that:
- I’m a contractor, I can’t break the contract without serious financial consequences.
- The subject (genetic data analysis) is very appealing to me, this is exactly the kind of work and/or research I want to do, this is where I want to develop.
- I like the boss, I believe that I can do more interesting projects with him (if he wants to).
Without much choice, I have developed techniques to survive. D.’s behavior did not change, but life is easier for me.
During the infamous meeting about interfaces in C++, the boss has asked me:
“Can you hide from D. your changes to the code?”
That’s asking one developer to hide from the other one. Well, that’s easy, it’s enough to stop contributing anything to the project. I mean, how can you possibly hide the changes when you work on the same thing?
What I do, is:
- I don’t talk to D., I don’t visit him at his desk, I don’t write e-mails and I don’t send him any IM messages. I only answer questions. Ah, one more thing. I submit bug reports.
- Instead of Subversion, I started using Bazaar. It’s a distributed source control tool, allowing me to manage the source independently, out of D.’s sight.
- I have separated the parts of the project that I’m responsible for. I keep them in a separate place, where D. cannot reach them. Even more, he even doesn’t know they exist. I have set up a separate Sourceforge project for a tool I’m writing. It’s a completely separate project with its own name, code repository and history. Write permissions are held only be me.
- I make sure that all the tasks that are assigned to me, are recorded in project’s issue tracking system. It has to be absolutely clear, what is the task and when it was assigned to me.
Hiding my work (and existence, for that matter) from D., has a negative side effect: I’m also hiding my work from my boss. I solved this by visiting the boss every morning, reporting all the things I’m doing and handing him results.
I don’t know if the boss is aware how wasteful D.’s behavior is. I bet it can be even reconciled into jingling coins, considering how much time I lost because I didn’t have information and documentation I needed, and how much time D. has spent removing my code and rewriting it.
Last Friday, boss has given me a new assignment. I asked him to record this assignment in our system. First, he told me that he usually doesn’t do that, because it’s quicker to do it verbally. Then he looked at me and asked why exactly I want him to record that assignment. I started to open my mouth, when he suddenly got it.
“No no, D. has now other things to do… well, okay, I’ll do that.”
I thanked him and left. I also made sure D. was notified.