There's always a risk in hiring employees straight out of college. It can be pretty rough adjusting to a normal adult lifestyle (shaving, bathing, not beginning and ending every sentence with the word "dude"), let alone taking in all the wondrous monotony of the 9-to-5 office job. Many large companies will bring in graduates with the goal of attrition: they'll instill such hopelessness in their impressionable minds that they'll never have the desire or motivation to leave. Other companies, such as Federico's, hire recent grads as a "community service", giving them the skills and experience they need to excel in their career. Well, that, and those with no work experience tend to work for next-to nothing.

In Federico's experience, recent graduates are hit-and-miss. Usually miss; the company just doesn't the resources to adequately coach and mentor new blood. But one particular new hire ("Steve") showed a lot of potential: he graduated magna cum laude, completed two internships, and was very well spoken. I believe there were only four instances of the word "dude" throughout the entire interview process.

Steve was put on the Expense Report System: a one-person, low-priority, internal web-application. No one really had the time to look over him, so his manager simply gave him the specs, a very loose deadline, and asked for weekly demonstrations of his progress. The first two weeks were a bit slow -- as expected -- but after that, Steve really starting going. Week after week, he nailed deadlines for individual modules. Heck, he even came ahead of schedule for a few. Everyone was happy.

With two weeks left before implementation, Steve's manager asked Federico to look over the code and make sure everything would be okay for deployment. Federico reported back that there'd be a few problems. Primarily, there was no server-side code on any of the pages: for the past few months, Steve had only been creating elaborate, faked-out demonstrations using HTML and JavaScript. The reason his progress was improving so much was just getting better at making demos. When they asked Steve about this, he simply replied, "but I thought you wanted demonstrations?"

Obviously, Steve needed a bit of coaching (to say the least), so Federico was assigned to work closely with him. Of course, Federico wasn't allotted any additional hours to do this, but he did the best he could by providing examples of database access and internationalization (as the application needed to be in both English and Spanish), and periodically reviewing the code. After a few months, everything looked pretty good and the application was deployed. A week later, Steve put in his two-days notice and, armed with nearly half a year of real-world experience, he headed towards greener pastures.

A new graduate was eventually brought in to maintain the Expense Report System. "Dude," he said to Federico on his first day, "this is some really messed-up way to do internationalization, dude!"

Federico was a bit surprised to hear this, as the examples he provided Steve were a very standard way of supporting two languages. He asked the new guy what exactly was wrong with the way it was done. "Dude," he replied, "he just copied every single page in the application, changed the file names to a "2" (like, createInvoice2.asp), and translated the text -- and heck, even the function and variable names -- on the pages to Spanish. Duuuuude."

Duuuuude, indeed.