Although I've taken the rest of the year off, I wanted to share a few fun classics this week. The Abstract Candidate was originally published on 2006-08-24, and seems to fit so well with today's earlier article...

When I first shared the story of Paula and her Brillant Java Bean, there was a bit of a mixed reaction. Many readers simply couldn't believe it: there's no way that someone like that would ever get hired in the first place. Some of the female readers (3 out of the 7 total, I believe), felt it was a bit sexist: come on, one of the worst programmers ever, and she just happens to be a girl?

Well, let me assure you that, yes, people like that do get hired and, no, only a small percentage of them are women. In fact, not only do people like that get hired, but they're often hired by the best of us. Like Shawn Edwards, for example.

Early on, Shawn's company decided to use the Expresso web framework to develop applications. It seemed like a great idea at the time: the framework was solid and had a name that fit in really well with Java's whole coffee theme. The only problem was that, being one of the lesser-known frameworks, most developers had no experience with it. That meant that when they needed to expand their programming team, they would have to extrapolate a bit.

They figured that, if a candidate had experience using some of the 6,221 similar web frameworks, then he could learn the one that they used. Plus, they had a backlog of simple web applications that a new employee could do as on-the-job training.

After going through several candidates, they came across Mark, who seemed to be as perfect a fit as they could hope for. Not only was he familiar with several different frameworks, including (I believe) Barrista and CaMaLE (Cappa-Mocha-Latteccuino Enterprise), but with his fifteen years of programming experience, he whizzed right through their technical interviews. Mark was hired.

They gave him a one-page web form to implement and three weeks to do it. They figured that he could use the time to learn the environment, learn the framework, and to ask a lot of questions. And ask questions he did. All the time.

Now, asking a lot of questions isn’t so bad in and of itself, but Mark kept asking the same questions, over and over and over again. And they were fairly basic questions, too: How do I connect to source control? (5 times) How do I access email? (3 times) What does "abstract" mean in the Expresso framework? (4 times)

It was starting to seem that Mark wasn't making a whole lot of progress. Of course, this was apparent to Shawn after hour five or so, but their manager insisted that Shawn was jumping the gun and needed to give Mark a few weeks. And they did; at the end of those weeks, they asked him to commit to source control what he had.

Shawn took a look at the code and noticed that it was almost entirely stuff that he dictated to Mark or had typed as a demonstration of what he should be doing. He went right back to the manager. Concerned that he was being somewhat emotional about the situation, the manager suggested that they wait another week or so and revisit.

The following week, Mark came into Shawn's cubicle looking exasperated. He had been trying to compile some new code and just couldn't figure out why neither Eclipse nor the Java compiler liked it. Shawn followed him to his workstation and found the following.

public abstract class HomePage extends BasePage { try { public abstract Integer getCount(); public abstract void setCount(Integer int); } catch (Exception e) { // catch (Exception e) } }

Shawn immediately reported this to his manager and his manager finally agreed that this would be a problem. He vowed to take immediate action. And that he did: Mark was let go by the end of the following week.