I went back to my cube, eager to figure out what exactly Charlie had going on with the Online Inquiry App. I cracked open the project.

It was ugly. A big lab experiment. A sandbox. Textbook worst practices.

The first consultant had ignored any new .NET technologies like server controls. He literally streamed out HTML from endless lines of StringBuilder objects. On and on it went…no concept of postbacks, no clue about how .NET manages state, nothing.

That’s the problem with .NET. Anybody can hack out some web site with completely un-maintainable, unreadable, non-encapsulated code, and call himself an expert in an Object-Oriented language. And this consultant had gone to town at the company’s expense.

I examined more code. Charlie had proceeded to refactor, some (but not all), of the code. Refactor is a fancy term for “clean up all the garbage logic and eliminate redundant code.”

I use the term generously; because what Charlie was doing was crap. A stinking pile of spaghetti. He would do things like take an old method named FooBar, rename it to something FooBarOld, and write a new FooBar method. The new FooBar method was sometimes just like FooBarOld, sometimes it was entirely different. If you did a search for a variable name, you’d find two matches, one old and one new. But my biggest problem was the code would not run. I COULD NOT COMPILE IT.

Not at first. I had straighten out some references, clean up some function calls, and in general, take a proverbial plumbing snake to the mass of sewage that was the “Online Inquiry App.”

Two hours later, I had the app running on my system. Cool, I thought. Now I can run through it, figure what doesn’t work, fix it, and get the thing out the door.

Wooah, Nelly. Not so fast. Charlie had added new modules, except that they were written in VB.NET. And they were a totally different architecture than the old stuff. Worse, they didn’t talk to the old stuff very well. If you moved from a page written in the old C# code to one written in VB.NET, you lost your session and got kicked back to a login page. Nice.

I was getting pissed. I dialed Charlie’s extension.


“Charlie, you gotta second to go over this Online Inquiry App with me?” I asked softly.

He stepped into my cube hesitantly. I had pages of printed out code strewn all over my desk. I wanted to send him a message. I DID NOT LIKE THIS KIND OF CRAP.

This was not going to be a tender mentoring session. I wanted to vent. He stood in front of my desk wearing a dingy white button down and gray bell-bottom slacks. Ugly shoes. The black belt was wrapped almost around to his ass.

I pointed out all his bugs. I inquired about his flaky techniques. I wanted to know why a user has log to log in every time he goes more than two pages deep into the app. He got defensive quickly. It got ugly.

“I’m still working on that.”
“That’s not my code.”
“That’s not part of the requirements.”

We weren’t getting anywhere. He had an excuse for everything.

Some of his excuses were outright attempts at obfuscation. Technical mumbo-jumbo streamed at me in rapid fire.

“The viewstate is getting corrupted by session variables that get re-initialized in the post-back!” he said with authority. Bullshit, I thought.

Anything but a concession that there were any problems at all with his code. I pondered how he ever managed to fit his massive head into my cube. His ego was sucking up all the oxygen. And his breath stunk. Really bad.

I knew my face was getting redder. I was deep in the tunnel now.

“…A foot above Flower’s glistening and grimy face, the trapdoor was quietly turned round and slotted into its frame. Flowers froze; the gook was right there. Suddenly the door moved again. Something dropped into Flower’s lap in front of his eyes. He watched it fall, momentarily transfixed; then the danger to his life overwhelmed him as he screamed ‘Grenade!’”

- The Tunnels of Chu Chi

Charlie had dropped the grenade called the “Online Inquiry App” in my lap. It was now my mess to clean up, because there was no working with this bozo. I could work around him, or through him, but not with him. His whole soul, his entire being, was tied to the code he wrote, and he thought his code was great. There was no management technique, no leadership strategy, no computer based training from Human Resources that equipped one to deal with such a personality. His type was known as a “Prima donna” in the business.

Joel Spolsky recommended marginalizing this type of programmer by having him work on bug fixes:

“Even the best teams can have a bozo or two. The frustrating part about having bad programmers on your team is when their bad code breaks your good code, or good programmers have to spend time cleaning up after the bad programmers…

You've got a perfect opportunity to neutralize this moron for several months. Just keep reporting bugs against their code. They will have no choice but to keep slogging away at it for months until you can't find any more bugs. Those are months in which they can't do any damage anywhere else.”

- Joel On Software

But I didn’t have time to have him fix his bugs. First off, he didn’t think they were bugs. Secondly, Mr. Bill wanted the site out, now. And I couldn’t trust Charlie to help me reach that goal.

He would have to be eliminated.

Posted in:   Tags: ,
Comments are closed

- Vineet Nayar, CEO, HCL Technologies

Recent Posts

Slumdog Comment Generator

Not Sure How To Respond?
Use the Slumdog Comment Generator!


«  December 2019  »
View posts in large calendar

Month List

The thoughts expressed on this blog may or may not be the author's own and are protected by the 1st Amendment. Any attempt to reveal his identity by contacting a slumdog hack at Google, or a corrupt Desi sys-admin at his ISP will be dealt with promptly and severely. Civil and criminal penalties may apply if one is found to have used private information in an attempt to get the author fired at the Hindu-only I.T. ghetto he currently works at. In addition, any Desi who attempts to burn the author's house down because they are enraged over his writing will be prosecuted to the fullest extent of the law. This isn't India.

© Copyright 2019 Life of an I.T. Grunt

View My Stats