When should you run from scary code?

A top consulting company asked whether I would write some software that would intercept Web pages and replace certain words with other words. I said I could and went into some detail about how I would use a combination of regular expressions and built-in functions to get the job done. Negotiations ensued and shortly thereafter, I put in my two-weeks notice at my other job, fending off counter-offers and pleas to

A top consulting company asked whether I would write some software that would intercept Web pages and replace certain words with other words. I said I could and went into some detail about how I would use a combination of regular expressions and built-in functions to get the job done. Negotiations ensued and shortly thereafter, I put in my two-weeks notice at my other job, fending off counter-offers and pleas to stay. I told them I'd work my remaining two weeks.

During those two weeks, Bob (the program manager at my new job) called to inform me that the contract they had hired me for was no longer available. Would I be willing to help finish a project for an insurance company instead? The program was "90 percent done and a month under-schedule." I agreed but asked to see the project specifications. There were none to be found, but the code was well commented, they said. Even though they didn't have the code, they could get me the developer's machine to take home and review. Weird, but okay. I was still new to the programming game and thought everything would be fine.

I traveled to their shop, grabbed the PC, and took it home. I spent many hours a night for a week trying to follow this code. I was discouraged by the lack of comments and the spaghetti logic. By Friday night, though, I had most of it down. On the following Monday, there was no work at my old job, so I took a vacation day and went to my new job site, where I was thrown into a bare cubicle and told to work. I opened the code. To my horror, it did not even resemble the code I'd worked on for the past week.

After making some inquiries, I learned that the developer had abruptly left because his girlfriend had dumped him. The code was only 5 percent completed and the company was over budget by six figures and three months.

Nevertheless, I tried to reassure the client that I would do my best, and set to work. Bob finally showed up much later that day and started making phone calls to other clients. When I asked for help files or Internet access, I was told neither was company policy. So, after 10 hours, I went home with a nagging, unpleasant feeling in my gut.

I showed up again the next day and started to code. I wasn't given access to any users or any documentation. Each time I asked for assistance, I was rebuked and met with harsh stares. When Bob finally showed up, the owner of the company took him behind closed doors and started screaming at him. Although I couldn't hear his words, Bob's tone was unmistakable -- I was the scapegoat.

That's when I realized I had been hired to come in and take the blame for this failed project. After a few minutes, the owner opened the door and walked past me. I went into the project manager's office to ask a question but he was on the phone and I heard him say that the client was going to cancel the contract if there wasn't a final program in two weeks. He promised the owner the program would be done, which we all knew was impossible.

I quietly picked up my stuff, logged off my computer, and left the scene.

When I returned the PC they gave me, nobody would look at me. The program manager would not leave his office to talk to me. The HR rep tried to lecture me about how "unprofessional" I was for leaving the company high and dry. I said nothing, asked for two days' pay, and left. My old job took me back with open arms and I worked there until the company folded.

Lesson learned: If the documentation is not present and the code looks scary, run the other way.

From CIO: 8 Free Online Courses to Grow Your Tech Skills
Join the discussion
Be the first to comment on this article. Our Commenting Policies