The Client From Hell (A Contract Programmer's Lament) The story you are about to read may or may not be fictional. The names may or may not have been changed to protect the guilty parties. My story starts on a day that began relatively calmly. I awoke to the regular news and weather reports. "It's going to be a pleasant day", quipped the weatherman. Boy, was he on the wrong frequency! I rode in behind a state trooper that believed in doing 70mph, but not an inch more. I dared not pass him; he probably has a ticket book in hand, and quota in mind. So because of him, I got to work 15 minutes late. I walked in to my 8:00 meeting at 8:15, and apologized to the attendees for being late. I knew I didn't have to, but I was trying to spread a little courtesy around. There were a select few that I hoped could pick up a few pointers from a good example. One of the client's employees that usually doesn't show much courtesy, or much tact, for that matter, chimed in response, "You should have left a little earlier." "Well, thank you for being so astute as to recognize the obvious", I thought to myself. And it was only yesterday that I remembered walking in, saying good morning to ol' Betty Jane, and getting a burp and a little snort in reply. After the meeting was over, I fetched a hot cup of incentive, and sauntered over to my cubicle to begin my day. Five minutes into debugging a core dump from yesterday, I was abruptly greeted by the Project Leader, Red Dude. "Where we at?", Red Dude asked, looking for a status report. I looked up, cleared the hex digits from my mind, and quickly started to try to recollect all of the details that Red Dude is going to want to hear. My first idea is to tell him, "Geez, at least give a person a chance to get his thoughts together." But then I remembered who I was talking to... a real, true-to-life know-it-all, experienced-at-everything schmuck... Red Dude, the Al Bundy of Data Processing. Slowly, the last test's output was making its way back into my memory. I filled him in, and then, like a faulty transmission, he shifted gears, and began talking about the changes we were going to want to make to the programs, based on the users' review of the test results, blah blah blah.... And every once in awhile, just to make sure I understood his babbling, he would ask, "Do ya follow me? Are ya with me? Do you know what I mean?" Once, he was explaining something (very long-windedly, I might add). He asked, "Did you follow that?". I shook my head. Then he answered loudly, for all present company to notice, "I didn't think you would." o o o Lunch time. I don't want to give anybody the idea that EVERYONE at the Client from Hell is either a jerk or a snob. I lunch with some VERY nice and interesting individuals. Sometimes I hear how Red Dude is the butt of a lot of jokes on the floor. Teach (a nickname we gave to our buddy the mentor) told us about a meeting they had attended, where everyone was asked whether they should have the opportunity to give a review of the Project Leaders, as Project Leaders were allowed to give reviews of their subordinates. Everyone thought it was a good idea. Everyone, that is, except Red Dude. And we were told how when Red Dude had the floor, he just went on, and on, and on... Well, Red Dude, you're getting the reputation for being a real windbag, buddy. Later that afternoon, we had a meeting with the users to review the test output. I asked one of the accountants about a certain figure. Red Dude chimed in, condescendingly, "It's in the specs! When we get back, I'll read it to you!" Then and there, I wanted to reach out and choke someone. I should probably have retorted, but I let it go. "You are not cooperating, Mr. Project Leader, in case you didn't realize it. This doesn't help get it done, you jerk," is what I wanted to say, but instead I just swallowed. This is the same clown who INSISTS he is a team player. I had an idea on how to speed up the system a little. I mentioned it to the users, who seemed very receptive. After the meeting, Red Dude chastised me. "If you have any technical considerations, don't bother the users with them. Bring them up to me, and we'll talk about them." He evidently doesn't want the users to think that any good ideas are not his! Ah, yes, the specs... that thing that Red Dude spent four days on, trying to explain what was to be done. All he accomplished was to produce a document that would have been eligible for sale by Charmin. I had less trouble reading my 4-year-old's scrawling! An excerpt from these "specs": "Use the total Commissions from the input array by state for all ETS and subtracting that amount from the total, what should be left is the amount of total AMOW earnings for ETS=C for that state." Clear as mud, right? o o o It's later into the afternoon now, about 4:15pm. I have to leave by 4:45 the latest, to pick up the Greggers from the babysitter. So I'm feverishly plucking away at the keyboard, working on preparing the evening's job stream. I calculated that I could just get it all done in the next half hour. And wouldn't you know it, in walks Red Dude. "I just wanted to let you know that I'd really like to see a test get run tonight, and that the users are kinda anxious to see the file that they need out of this run, and blah blah blah... Oh, by the way, I don't care what the users say, I don't want to make any changes to this job stream until we at least get it to the point of blah blah blah... If we can get this much done by blah blah blah, then ..." I can't believe this guy! Sure enough, he used up just about all of the time I had left. I tried to tell him, but he would just say, "I know, but this is important." At 4:30 sharp, he's out of my office. Hmmm, I guess that's the magic number. Come to think of it, I NEVER see him here after hours. Well, here I am, with ten minutes left to finish about twenty more minutes of work. I stayed the extra few minutes, and finally got it done. I knew the babysitter was going to be a little unhappy; she had dinner plans tonight... anniversary, or something. I reflected on how lucky I was to have her for a sitter. With me making a one-hour commute each way, and putting in some OT every so often, I am easily using more of her time than any of the other mommies. o o o It's the next morning now (can't you tell?). I finished my trek up four flights of stairs, breathing just a little heavy by the time I got to the top. As I walked toward my desk, I saw Everlovin. I nodded and said, "Hello". She kinda looked away, muttered a gentle harumph, and continued on. "Did she even see me?" I wondered. I no sooner took off my coat, when in walked Red Dude, wanting a status. "It's done, but I haven't had time to check it out yet." Then, he sat down! "Okay, well, when you get a chance, check it out, and get the hardcopy printed, and take a look at the test results, and do all of the other things that I know you were going to do anyway, but I like to hear myself talk, blah blah blah. Do ya follow me? Are ya with me? Do you know what I mean?" A little later, I was in the middle of making some more minor program changes. Red Dude came barging in, and blurted out, "We need to rerun the job stream with a different support file..." So much for that program change. I totally dropped my thought. "Well, you've got my attention now, Red Dude", I thought to myself. He told me about what he wanted to do. I explained that we could do this particular thing a little more quickly and a little more efficiently if we... But I never got a chance to finish. "Let's do it less efficiently, and do it my way" Red Dude commanded. I wrinkled both of my eyebrows, and resigned myself to the task at hand. He left, and I started to plug away. Two minutes later, he returned with a fresh cup of coffee, pulled up a chair next to me, and gazed on. "He's going to sit here and watch me?" I though to myself. Every few keystrokes, he would ask, "What are you doing?" I would patiently answer, even though it seemed obvious. I'm changing the job control so we can do what you wanted. "Why are you doing it that way?" I would tell him, and he would reply, "Oh, I see." Then minutes later, another question. And another answer stating the obvious. Finally, he stopped asking questions, but continued to sit there. "You made a mistake!" Red Dude declared. Was he proud to have caught it? "I know, chump. It's called a typo!", I though to myself. "Will you please get the heck out of here, and let me do my work?" He didn't hear that thought, either. Maybe it's time he should. He got up and left, and then came back, with an armload of papers and a pencil on one side, and his ever-filled cup of coffee on the other. Then, he sat down behind me! You see, I'm in a 9' X 11-1/2' cubicle. It has a work table on each side. I was at one, and he helped himself to the other. "Is he going to sit here now?" I thought to myself. His breath was almost lethal from all that coffee, and I couldn't help but notice that he wasn't exactly fresh out of the shower, either. I prepared to be interrupted at any second. That I meant I could not allow myself to maintain any kind of a train of thought. I would write down everything, just in case. And I was right. "Oh, by the way, blah blah blah me blah blah blah myself, and I blah blah, blah..." He spent three hours sitting in the cube there with me, stinking the place up, coughing every now and then. Finally, my patience was beginning to wear a little thin. I eventually had some long overdue words with him. He ran crying into the boss's office, who staunchly defended him. Sometimes, being a consultant isn't a bed of roses. Sometimes you need the skin of a pachyderm, the ears of an octogenarian, and the nerve of a tightrope walker. But as they say, "A smooth sea never made a skillful sailor." I finished my day at 7:30pm, made the one-hour drive home, and got there just in time to wash clothes, eat dinner, tuck the Greggers in, get gas for the car, and go to bed myself... so I can do this all over again tomorrow! David Grund Sr.