Jared L. was feeling good. After a nightmarish stint at Initrode Global (That's One Way to Secure It), he joined the staff at CollaboSmart. His days of waking up to an ever-present sense of dread were over. And he could hardly believe that it had ended a mere two months ago.
After he left, Jared kept in touch with his friend Stephen, who still worked at Initrode. Eager to catch up on how each other were doing, they met for lunch.
Jared saw his friend enter the restaurant and waved him over. "Stephen, how've you been?"
"This new guy... he's terrible." Stephen decided to forego a greeting, instead launching right into his complaints.
"Good to see you too," Jared replied sarcastically. "I assume you're talking about my replacement."
"Yeah, his name's Ken."
"So what's he like?"
"Mid thirties, self-taught 'Java/Oracle expert.' No previous work experience."
"How was he hired with no previous work experience?" Right after Jared asked the question, he remembered his own interview. When asked if he had any Java experience, he replied honestly — that he hadn't ever written any Java, professionally or otherwise. And they still hired him as a Java developer.
"Beats me, you'd have to ask management. Anyway, he goes on and on about everything we do being 'horrible and stupid.' He says the same thing about the code, too. 'Horrible and stupid.' He specifically mentioned the code from you, Chris, and Eva."
The Whole Codebase
Calling a codebase "horrible and stupid" tends to indicate one of two things:
- The codebase is horrible and stupid
- The codebase is horrible and stupid and the person making the claim is the best developer the world has ever known
Jared felt a little guilty and ashamed about Ken's comment. Particularly, because in a sense Ken was right — at least about Jared's code. Jared's a PHP guy and had to learn Java by doing, and in this case that meant building some WTFs of his own.
Still, the comment didn't totally sit well. The majority of the code was written by Chris and Eva; Jared had only maintained a few modules. Plus, while his own code wasn't anything he was proud of, Chris and Eva's code was near-perfect. It was what Jared had used as an example to learn from. Chris was one of those amazing academic types — as brilliant with math as he was with programming — who'd would spend weekends writing Java compilers. For fun. And Eva had been a lifelong programmer who loved Java more than anything. Theirs was the code equivalent of Romeo and Juliet to Jared's emo MySpace blog poetry. It was as far from "horrible and stupid" as code could be.
"And we've got four big projects going on, yet he still decided it was necessary to put all that on hold."
"What is it that he wants to do?"
"He said he wants to switch everything to Linux. Because Microsoft is-"
"Horrible and stupid?" Jared interrupted.
Failing to RTFM
Jared wasn't given much direction when he worked at Initrode, and out of a combination of not wanting his successor to have the same problems and boredom, he kept notes on his daily tasks. Though his time at Initrode was short, he assembled an impressive binder of notes, email printouts, and guides.
"Did he at least find the documentation helpful?"
"You mean that binder you set up? No. He refuses to read documentation for something so 'horrible and stupid.'" Everything Stephen said made Jared's heart sink a little more.
One task that Jared remembered taking particularly detailed notes on was uploading the client data feeds. Clients would submit Excel files to Jared, which he'd then import into the database. The process was inefficient, but complex enough that everyone was afraid to change it. It used a few internally developed tools to prepare the data for import that Ken couldn't possibly know about without adequate training or reading documentation. "So," Jared asked, "how's he doing with the data feeds?"
"He isn't. One day I walked past his desk and heard him muttering about Excel being horrible and stupid. He tried and tried to figure it out on his local database, but couldn't get it running. And get this; since he couldn't figure it out on his computer, he asked to try directly in production."
"Anyway," Stephen continued, "I tried to help him, but he complained about every step, so I told him to look in the documentation. As far as I know, nothing has happened since then."
Jared and Stephen both sighed and looked down at their food, which was untouched and getting unpalatably cold. They both ate in silence for a few minutes until Stephen spoke up again.
"Anyway, Jared, remember that script that you were working on right before you left?"
"Yeah, that synch script? Has Ken done anything with that?"
"Well, remember how it never made it into source control..."
Crap, Jared thought, don't tell me Ken deleted it.
"Ken decided that he didn't need it and deleted it. You didn't happen to hang on to a backup copy, did you?"
And with that, Jared saw nearly a month's worth of work disappear. He hadn't put it into source control yet because it wasn't quite ready, and he didn't want someone to confuse it with a working version and run it. He flushed red out of embarrassment for not checking the file in and anger at Ken's bullheadedness. Jared apologized and told Stephen that he hadn't saved any backups.
Jared couldn't help but panic. He's switching to Linux when he's behind on other projects? This is going to require major changes! I can't even begin to... and we haven't run the client uploads in weeks? And how am I going to rewrite the synch script? "Hey," said Stephen, "you OK?"
Jared snapped out of his panic with the wonderful realization that these weren't his problems as a CollaboSmart employee.