I have a few rules. Not many, but the ones I have don't get violated. The rules that pertain to making sure I don't quit on your sorry ass and go work somewhere else go something like this:
1) Don't fuck with my money. Let's be honest, I work there because I get paid. It has nothing to do with company loyalty (would your company be loyal to me if it wasn't in it's best interest? Neither would I). It has nothing to do with needing something to do. I have plenty of things I want to work on, going to work everyday gets in the way of that. I'm there because you pay me. When you stop paying me, I stop coming to work. Period.
2) Let me do my damn job. Even though I only come to work because you pay me, It doesn't mean I don't have a little pride. I do a good job, because It's important to me to do a good job. I'll bitch until you fix the processes that are killing the project, I'll take the extra time to fix the stupid ass code I just found, and I'll take the extra time to make sure my code isn't just as bad or worse than the stupid ass code I just found. When you get pissed off at me because I'm not being a good little code monkey and shutting up, letting all the bad crap happen, I no longer have any use for you. If you're not going to let me do a good job, why the hell would I stay? So you can blame me when it all goes to shit? No thanks.
3) If you've got a problem with me, tell me. Don't hold on to it and throw it out as ammo in a meeting in front of God's naked ass and the rest of the country.
I've worked for a lot of people since I started my professional career as a coder. Some of them were unethical. Well, one was anyway. And when he asked me to do things that were unethical, I asked him to kindly stuff it in his oversized, cancerous ass. Figuratively speaking, of course. He carefully considered what I had to say, then decided that maybe he should choose the ethical route. That was a good day.
Some were not very bright. Somehow I survived all that.
Most were pretty good. I enjoy working for somebody that wants to do things right, and is willing to listen to another's ideas about what that might be. So far I think my track record has been pretty good.
My previous job fucked with my money. Now I work at my current job.
My current job, despite all, has been pretty good so far. They did a lot of really stupid shit when I started, and now they do far less stupid shit. I'd like to think that's largely in part because of me, but I work with a lot of smart people. I'm pretty sure I contributed quite a bit though.
Since January, I've been on another team that's more or less doomed to failure. I took it on as my personal mission to save this project. I had a lot of work ahead of me. My team lead was based in New York, so there was the remote aspect of the team. That was difficult, but not insurmountable. In addition, he's Serbian, which makes for some cultural differences. Many of my jokes are lost on him, because English is a second language for him. That's not really a problem, just an observation. As the last couple of months passed, I realized that the business unit and the leads were getting pissed and annoyed with me because I wasn't just being a good little code monkey. I don't do the good little code monkey part very well. If they wanted somebody to shut the fuck up and just write the damn code, they should have hired a junior developer, not me. I'm too expensive for that shit.
Last Friday, something happened which I'm not sure I can get past. We had a sprint retrospective. It helps if you know a little about Agile methods and Scrum, even though we don't really do it right. A sprint is a chunk of time in a development project. A sprint retrospective is basically what everybody thought went well and not so well for that particular sprint. I made a nice long list of things I thought needed to change. I don't make this shit up, 90% came from things that worked well on other projects. I do my homework.
The danger of a sprint retrospective is people taking things personally. I've been though many, and I try to never take things personally, even if I think somebody might be referring to me. One of the biggest rules in agile is not to personally attack the other team members. You can attack an idea, but not the person presenting it. "Your idea won't work because blah blah blah" instead of "Your idea sucks because you're a flatulating butthead!" Common sense, one would think.
It's hard, though, to not take comments personally when they keep using your name. It's harder when that person is your team lead. It's even harder when the first indication you had that they might be not completely satisfied with the work you're doing is their list of grievances aired about you during the sprint retrospective. It's even harder when the response to the thoughtful, carefully considered suggestions you provided is "well, X didn't do this and X did that." Um, how about responding to what I just said instead of a personal attack there, home boy?
Perhaps the suggestions I listed were misconstrued as a personal attack on him. Perhaps it's another cultural difference clash. Perhaps my team lead hasn't read the Agile book yet.
Or maybe he's the kind of guy that will throw me under the bus when the project fails. That's pretty much what I think happened on Friday. That entire business unit is big on finger pointing. It's not important what's fucked up, only who fucked up.
I think my resume is good enough I can get another job without too much effort, so I'm not too worried about getting fired and/or quitting. I wish I could quit and just not work anywhere for a while like Rory, but I just ain't that cool.
I need to talk to my boss's boss about this, but I put it off today. Basically, when I dragged my sorry ass into the office this morning, I was still to pissed off about it to be rational about it, so I figured the meeting wouldn't go too well. The request will go something like "I need off of his team now. This can happen one of two ways, one of which includes my continuing to work here." I'm looking for a less ultimatumish way of saying this.
I don't know how many techie readers I have, but I would appreciate some comments here. Have you experienced something like this? How did you handle it? Am I just being pissy here, or is professional pride enough to merit an employment change?