This is something I've wanted to write about for a while. I hear too many horror stories from great programmers around getting screwed by office politics: a project getting pulled; being strong-armed into bad technology decisions; forced to stay late-nights while the boss take 100% of the credit. So, this post is the first in a series about simple things programmers can do to deal with office politics.
Get it in writing. If you are promised by your manager (or anyone) something - anything - get it in writing before you commit. Especially important things: a better job title, the choice of the next project's technology, more money, or deciding on the new coffee flavor in the break room. Email is a natural choice for most developers, but if your boss will only scrawl something on paper, tuck it away - hopefully you'll never have to use it. It should go without saying that you should keep all of your emails - back them up or print them.
Sidebar: Anyone who knows me understands that I'm kind of a poker freak (president and founder of the Purdue Poker Club, 1999-2002!), so I tend to think of the world in poker terms, such as bluffing and odds. It's a useful metric to measure the world, especially when dealing with people in office situations, since their body-language will tell you a lot about whether they are on the up-and-up or full of shit. I do not tend to - as a rule - trust managers who refuse to commit to anything in writing.
If you ask repeatedly and managers find ways out of writing their promises down, there are good odds that they have no intention of keeping any promises. So I devised this trick to get around those shady bastards that only make verbal commitments: keep meeting minutes (on paper if need be), and email it back to them. Something like this:
Dear Big Boss Man:
I took the liberty of keeping track of our meeting's minutes:
12:01 - begin meeting
12:05 - J.P. asked about job title
12:06 - B.B.M. mentioned giving J.P. Senior Architect role at next review
12:10 - B.B.M. asked about project status
12:15 - J.P explained status
12:16 - B.B.M. talks about football
12:28 - end meeting
Now in three months when you are passed over for that promotion, shoot this puppy back - and to his boss, if need be. Managers tend to be fairly sensitive about 1) being sued, or 2) their image. Keeping meticulous notes lets them know you know how to play the game, sometimes that's enough. Otherwise, its still good fodder for your lawyer.
The converse of the previous suggestion is to avoid agreeing to anything in writing that you are not comfortable honoring - even if you are, at least avoid being bitten by some unforeseen future circumstances. This is a harder habit to break for many geeks, since we so often converse via email without a second thought. Get used to it. If your manager sends you an email like this:
Just wanted to get an estimate on that new project to write a new operating system from scratch. What do you think... two weeks?
Big Boss Man
Do not reply via email! Call him/her on the phone, go chat in the boss's office. It's a pretty simple thing, and it may save you loads of heartache in the future, as the boss waves the email over your head as though it were a binding contract (it does not matter that it's not... there is no doubt that you agreed to it).
As a final note, don't take these suggestions to be of malicious intent. I think that group environments work best when everyone is trustworthy and apolitical. However, there is nothing wrong with being organized... at the very least it keeps your thoughts and history precise. It only takes one political wonk to ruin it for everyone - so it never hurts to protect yourself.