Thursday, April 28, 2011

The Circus

"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…

Tuesday, December 21, 2010

You're doing timesheets wrong...

When you have your coders fill out four different timesheets with similar information but with different reporting periods.  ARGH!!

Thursday, June 24, 2010

Sometimes it's not alll about SQL/NoSQL

Six Thoughts on the NoSQL Movement

I think the specialized database has gotten short-shrift.  Sometimes it is faster to have a database built around a certain domain than trying to do everything.

Database Normalization is a Communist Plot!

One fine day, upper management decided to re-organize us, the outsourcing team, to better align with our core client's organization.  We went from groups defined by specialities to groups defined by the department in the client company we "faced".  Thus we inherited a bunch of web applications under our care.

Monday, June 21, 2010

Business Processes 1NF — The Sacred & Holy Book of the Process


I
n a mythical business in a far away land, there was a holy book called The Business Process Manual. It was written by a very, very senior Scholar with years of deep training and experience across many businesses. The vassals and peasants all had to obey The Process, but to them, it was nothing but hardship and not meaningful to their daily lives. They begged the Scholar the change The Process: to allow them to plant earlier, or to use new crops like the potato, but the Scholar huffed and puffed and said, “No such thing has ever entered the business models I learned in school, so no such thing shall be allowed in my kingdom!” And even the King was cowed.

Sunday, June 13, 2010

Business Process 0NF - Process? We don't need no steeenking process!

People piss me the hell off. I go into the first meeting to discuss a new "feature" with the users, and it usually starts off like this: "I would like you to add two fields here, and change this form so when you click this button, it does that."

This pisses me off. Big time!

Why? Because I said this was the first meeting to discuss the "feature". I haven't even been told what the requirements were, and already, the users are presenting me with a design. They're just thinking in terms of hacking the existing application to do what they want; they don't think about if it makes sense in the application or if it will break other systems that depend on this one.

10 years later, we end up with a Frankenstein's Monster of an application that does a lot of one-off things that one user asked for 5 years ago, but left the department 2-years ago and no one has touched it since. Why does this happen?

It's because the users don't know how to manage their company's business processes, and in fact, they probably don't even really know what they are.