| « Slightly Outdated | Easy Authentication » |
In his college years, budding developer Troels L. wanted to get a leg up over his fellow students. He figured a job to supplement his studies would serve him well, so he looked for employment at IT firms, banks and insurance companies, but no one was hiring students. The companies only had positions available to candidates with degrees.
Finally, Troels found a large non-IT company in his area that was looking for college students for a planned project. He read and re-read the job post to assess whether he had the skills called for in the project -- specifically in the area of database integration using a trio of technologies: Access, VB and Encarta.
Having used Access, Troels was ready on that front. He hadn't worked with VB, but he figured, how hard could it be? He'd used Microsoft's Encarta encyclopedia software before, but never in any professional capacity. He couldn't even imagine what using Encarta professionally could possibly entail. The job didn't seem a perfect fit for his skills, but he sent the application in anyway.
You Want What?
Not long after, Troels landed an interview. After a brief conversation, the interviewer asked Troels if he had questions.
"Well, I do have one question," Troels began. "What exactly are you looking for by way of Encarta experience?"
The interviewer looked stunned. "Well, you've used it, right?"
"Yes, for college papers and that sort of thing. But I don't know that there's any API or anything like that. Let me rephrase my question: What exactly is it that you want me to work on?"
"Do you play World of Warcraft?"
Troels was surprised by the response. What could a massively multiplayer online role-playing game have to do with the software project he'd be working on?
"Uh, yeah, I played it for like a month ..."
"Great! That's exactly what we want!" the interviewer said. "Except with icons of our competitors' locations on a virtual globe, instead of monsters."
The company wanted decision-making software for company executives, and those executives liked the world map in Encarta. The firm had already collected the data needed for the Access database. It had decided it wanted to hire a developer that would "make Encarta 3-D with icons for competitors."
Never mind the fact that there was no obvious way to integrate Access and Encarta. The interviewer told Troels: "They're both Microsoft, right? So they can just snap together."
Yes, Troels thought, in the same way a Ford Aerostar's engine can be dropped into a Mustang.
Fight for What's Right
Troels reluctantly accepted the position. The experience was just too valuable. Besides, with the title of assistant programmer, he figured he'd be working with a capable senior developer, or at least a strong regular developer -- or at least a developer. As it turned out, Troels would be working alone.
Troels taught himself VB and spent a few weeks fixing up the Access database. Several times, Troels asked the company to upgrade to SQL Server. After all, this project was a multi-user application with sensitive data, and Access just wasn't the right tool for the job. SQL Server licenses were too expensive, he was told.
After a few late evenings of hacking, Troels produced a working version of the Access database, though it hadn't been designed for security. The plan was to get something up and running, then patch in security later (despite Troels' protests). Again, he suggested upgrading to SQL Server, and again he was turned down.
Once the database was complete, work on the front-end began. A 15-minute meeting was held with the IT staff that Troels hadn't even known existed. And, thankfully, they backed him up when he brought up the idea of upgrading to SQL Server. With their support, he finally won the battle -- and with that victory came the loss of practically all of the work he'd spent weeks on. The Access structures were used as the basis for the SQL Server data structures, but all of the methods, forms and procedures were thrown out.
Still, Troels was happy. He'd won a little battle with the business and overcome the first "business-versus-development" fight of his career.
Access Abomination was originally published in Alex's DevDisasters column in the October 15, 2007 issue of Redmond Developer News. RDN is a free magazine for influential readers that provides insight into Microsoft's plans, and news on the latest happenings and products in the Windows development marketplace.
I second this. I can almost understand working hard to straighten out the DB stuff but I would want to see a proof of concept of this 3D map thing first, even if all the data was hardcoded. Can't blame the student in this post, though. He was just in it for the experience and for something to put on his resume. If the company was actually stupid enough to think you could just snap Access and Encarta together then they deserve whatever fate they got. That said, does Encarta actually have an API that you can use? |
|
This is a job for cool-caming!
Finally after months of waiting, an appropriate WTF to use this line on. Now to see how many still remember the reference. |
|
"Yes, Troels thought, in the same way a Ford Aerostar's engine can be dropped into a Mustang."
Actually, the Cologne family of V6 engines were used in both the Aerostar and the Mustang. Try again. |
|
I have to say, after reading this, I felt like I did after watching "Pirates of The Caribbean: Dead Man's Chest". "What, that's the end? You're kidding right?" At least I didn't waste 2.5 hours on this article.
|
|
First of all, I'm surprised that this story made it. It's been quite a few months since I submitted it. Anyway, for those of you wondering about the last half of the project, let me explain. The original text submitted was long.. very long. Suffice to say that once I get started on this, I get rantish.
So let me just bust a few myths.. This is not BS, I still have the old Access database here to remind myself of never allowing myself to create such horrid workarounds again. (Interesting fact: the native string in Access VB has a max length of 512 characters.. One of the things I learned quickly) First of all, I didn't push MSSQL - I tried to push MySQL as I had worked with that a lot before. But that wasn't possible, I was told. Because everyone (in the strategic apex of the firm) knew Access, and no one knew MySQL, so they wouldn't know how to create reports in that. Being a rookie in a new job, I didn't want to push too hard, so I bowed to coporate pressure. The company's IT department was outsourced to a large, international TLA(Three letter acronym) company, and for reasons unknown insisted on using solely Microsoft software. Thus came the change to MSSQL, which the network admin agreed with me was a much better idea than Access - for a multiuser system with a above average requirement for security. I search near and far for a good map, after realising that Encarta didn't really have an API. My first thought was Google Maps, but the company didn't want to pay for it, so it was ruled out. We finally settled on (tada) Microsoft Live API, as a new head on the project found that the cost was negligible. I briefly considered having an Access front end, but at this point my initial humility was shrouded in annoyance, and I pushed for a change to PHP and Live Maps. The reports they needed were very limited, and it was a lot easier to just create all thinkable reports in PHP. They IT department eventually agreed on PHP after a series of questions in this line: "But doesn't PHP require Linux?" "Will PHP run on IIS?" "Are you sure IIS can run PHP scripts?" So everything seemed set: PHP + Live Maps + MSSQL. Simple as it should be. I had the first prototype of the front end up before long and was ready to deploy it to a server, having tested it locally on my laptop. So.. -- insert overwhelming amount of profanity here -- 9 months later, and the server *still* not being online, they had found a computer that could run the web server (MSSQL already running on another server). In the end, I sit in a room with a guy paid 100 times my salary, and install Apache+PHP for them on a Windows Server 2000 machine. It took me 15 minutes, including moving the data to the server. Now, naturally, as a mere mortal, I can not myself upload anything to the server, so I email any changes to the network admin, who then extracts a zip file on top of the other files. (This being the guy who thought PHP was "a linux program"). Many a time, I've considered simply putting a PHP upload script into that zip file, and be done with it. Anyway, the project is still not completed, as decision making in this company requires 5 top level executives to sacrifice a virgin goat during the second stage of the equinox. I'm still in college, 6 months away from getting my degree. I wouldn't say that I regret taking the job, as they have good food and nice Christmas gifts. Sure, the pay is less than that of a McDonalds employee, and I have learned almost nothing about the technical aspect of software development - but a LOT about bureaucracy and why you should never hire an expensive external DBA when a only slightly trained monkey could do the same job for bananas. Now, I'm not positioning myself as a super programmer here, but I'm just glad to see that once I get a "real" job, the competition isn't always that steep. Which is also the reason I keep reading The Daily WTF. I hope I fielded most of the questions, otherwise just submit them using my Access based support ticket system. But please! One at a time! Oh, and a funny side fact: According to Microsofts own knowledge base, the way to protect a form from unauthorized entry is the following: Drag a fullscreen text field across all elements of the form. Have another text field for password entry. If the password is correct, hide the first text field. Of course, the user can still just hold shift as Access starts and completely bypass all "security" measures. |
| « Slightly Outdated | Easy Authentication » |