"Years ago," Mark wrote, "and long before I had started working there, the lead developer at my company tendered his resignation and starting up a firm of his own. It was a one-man consultancy built to service a single client: his former employer. They had little choice in retaining his services as, prior to leaving, he intentionally obfuscated all of the code.

"As part of Operation Obfuscation, he removed all of the unnecessary white space and (apparently) converted the code to all caps. Problems were compounded by the platform (some off-brand BASIC interpreter), his original choice of variable names (X, Y, Z, etc.), and the lack of any structures like subroutines. Developers came and, after hearing about code, quickly left. For a reason that escapes me to this day, I actually chose to stay and help them with their mess. It sounded like it could be a fun challenge.

"To maintain the application, one would have to read through hundreds of lines of this obfuscated code (and I use that word literally) in order to determine the root cause of various support issues. That's exactly what they told me in the interview, and that's what I expected.

"But there was one thing they neglected to mention that I uncovered during my support issue. While trying to find a fix, I came across this line swimming in a sea of other capital letters with the occasional semi-colon thrown in:


"Now, if you've already been staring at poorly formed code for a while, you think you're ready for anything. But ANDY=NO? What in the hell could that possibly mean? My brain turned to mush right there in my cubicle and I instinctually said 'what the f*ck is ANDY?' very loudly."

"While that did get me a couple of stares, it didn't help me figure out the problem. I had to look at the code for another twenty minutes before I figured it out. As it turned out, the off-brand BASIC interpreter they were using was very generous when it came to whitespace... or the lack thereof. ANDY=NO was deciphered as "and (Y==NO)" and belonged to the previous IF statement's (which, by the way, made the THEN, or TH, clause optional) clause.

"That also explained other constructs like IFC=ZTH ("if (c==z) then"). As you might imagine, my tenure didn't last much longer than that first issue.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!