Greg bought the promises of the startup. They wanted him to step in and take a mentoring role on a cutting edge, object oriented, SaaS project that was promised to be "a game changer". There would be stock options, a friendly workplace, and a savvy CEO that was deeply involved in the design process. Despite the buzzword-bingo, it sounded promising, and the interviews went well.
The small office was laid out like a Starbucks, complete with eye-strain inducing dim lighting. The core developers sat around a long table, clacking away at their laptops and cracking in-jokes over coffee. It was very chummy, and Greg wasn't part of the crowd yet; they'd need to sniff each other's posteriors and decide who was the alpha in this pack.
That could come later; during his first week, Greg just wanted to get into the code and start learning the software. He pulled the latest build off the server and fired it up. And waited. And went for coffee. And waited. Finally, the splash page appeared, vanished, and he continued waiting for the next screen.
"Any reason why this is so slow?" Greg asked, wondering if he had missed a setup step or misconfigured something.
"It's the CEO's design," the other developers chorused.
Greg wasn't sure how to take that, so he started poking around in the code. It was a bad sign when he saw a variable named MyString1
, but even more ominous was the comment above it: //Refactored to comply with standards- JM/10-8-09
. His stomach hit an iceberg and started taking on water as he investigated further, seeing Public void MyProcess37
. The database wasn't any better: Database1 had Table1 which held Column1 through Column100. There were tens of databases and tens of tables in each.
A hand clamped down on his shoulder and gave a disturbing squeeze. "Settling in?" the CEO boomed. "Listen, let me take you out to lunch today so we can do some Q&A, and make sure we're all on the same page."
Greg definitely had questions. He started with the administrative: paychecks and stock options. He learned that the stock options wouldn't happen for another five years. Perhaps cranky due to that news, or over the chintzy buffet his CEO considered a good place for lunch, Greg pressed his boss on naming conventions.
"It's very important to me that we have a generic, object oriented approach," the CEO explained.
Greg countered that was exactly what they didn't have. He explained, in broad strokes, how C# did object oriented design, what "generic" meant to a developer, and the importance of good naming conventions that clearly described what the code and fields were actually for.
"Well, you need to understand," the CEO explained, his voice picking up a nearly religious tone of gravitas. "My system, the one I designed should be able to handle any mapping structure that I can imagine. If Company1 wants to store an amount of $3,000,000 on column12 of table54 in database3, that shouldn't stop Company2 from storing that employee75 has a gender of male in that same column. And all of that data can be searched by the XML engine that you will be building. Like I explained during the interview, I'm counting on you to head that up and make sure the team really understands our vision."
"And why would you say that you're leaving?" the company's sole HR person asked during Greg's exit interview.
"Let's just say I have a vision problem that keeps me from working here," Greg said.