"Oh, Bitter Programmer, this will be a great experience!"
First rule of being a Bitter Programmer: Beware of assignments that have to be sold to you. If it was so awesome, they'd have to beat people off with a stick—which would be fun, but somewhat illegal I am told.
The Assignment: "Simply install the upgraded version of the old application they used, but add the pre-defined searches they liked and a really easy interface to our Global Enterprise Information Package. It was already done in the old package, and you can probably just recycle the code."
First week…
"Just fill out all these forms, sign here, here and here. And read the waiver that says your soul belongs to us," Says the project manager.
I sign a several page form saying I'm not even allowed to say I'm not allowed to say I am working on this assignment. It also contains things like "Don't steal our data", "Don't copy customer data to a fob drive and leave it on the bus with a Dynamo label saying: 'ATTN: SECRET CUSTOMER DATA!'", etc. I fax it in then hurry up and wait.
And wait.
Two weeks later, they send me the login token. I try to log in: rejected. Call up their help desk, also outsourced but to another country (think a place with sacred cows).
"Please be trying your pin number again."
"It still doesn't work…"
The next day, I call the client project manager.
"I'll see to it," he says.
I get a call from the help desk saying they will work with me to get it resolved.
Three weeks, and I am finally able to log into the servers.
Is There a CMM Below Zero?
The original specifications, if you can call them that, have one row in a table: "Upgrade App X from Version 2 to 5: 4 weeks".
"Where's the original source code?" I ask innocently.
"Oh, it's on the production server. We don't have a development or testing environment for it."
Wait for it.
"How about the source control?"
"What is 'source control'?" Head tilts to side.
"Can I log into production and look at the original application—"
"EEEEEEK!" I thought I had asked for all the CIA black ops teams home addresses. "I don't know if we can allow a contractor access… You have to have the project manager raise a special work request…" Etc., et f'ing cetra.
I call the client's project manager again.
The project manager logs in, gives me a demo via web conference, sends my screen shots and a copy of the files.
Time elapsed: 4 weeks. I haven't even really started yet.
To Be Continued…