What I've Learned From Failure
Bob filled the espresso group with ground coffee and carefully tamped it before clamping it into the machine. Ted handed him two warm espresso cups, and moments later the rich coffee was streaming into the cups. Bob shut the machine off, handed a cup to Ted, and banged the expired grounds into the waste bucket. He cleaned the group and replaced it with a practiced flick of the wrist.
“Nice” said Ted, “Twenty-four seconds on the nose.” Bob considered for a moment. “Really? I just go by the look of the crema. When it looks delicious, I shut it off.” Ted was too busy nosing his cup to hear what Bob was saying. After a sip, Ted spoke again.
“I see you interviewed someone today. I’ve got one this afternoon. How’d it go?”
Bob smiled. “The turning point in the interview came when I asked Carol one of the standard coding questions. She knows her C++ all right. When building the container class, she used the ‘explicit’ keyword with a one-argument constructor. I asked her to explain why she wrote the word ‘explicit,’ and she immediately explained that she didn’t want the compiler invoking it as a constructor should she carelessly mis-apply a value as a parameter. If she makes that mistake in the future, the compiler will complain. This led to an interesting talk about constraints and contracts, regression-tests, and other stuff that is indicative of someone who approaches programming as a craft wrapped around problem-solving with code.”
Ted was buzzed on the espresso. “Great question, I thought I knew all the good technical questions, we were huge on them when I worked for Galtrucco. But that’s a new one: I’ll use it!” Before Bob could respond, Ted had rushed off. Bob shrugged and finished his drink.
Later that day, Ted was having another coffee and greeted Bob warmly as he passed by. “Hey Bob, I used your interview question!” Bob was perplexed. What interview question?
Ted frowned, then answered: “The one about the explicit keyword. I was interviewing Alice, your referral. She seemed like a great candidate, good experience, active in open source, has written some cool utilities. I had a look at her open source on the web. Looked great. And of course, you vouched for her. But you know, you can’t judge a book by its cover. When I asked her what the ‘explicit’ keyword did, she said she vaguely knew about it but never used it and would have to look it up…
“How, I asked her, does she handle unintended implicit conversions? She gave me some platitudes about code coverage and unit tests, but I immediately suspected she was one of those ‘All hat, no cattle’ developers, the kind that can talk a good line and put together small, good-looking things for showing off but can’t do any serious work. Sure enough, when I asked her some more specific questions, like whether she could write out the signature for certain Boost library functions from memory, she drew a blank and explained that her tools provide that sort of detail via auto-complete.”
Ted set his jaw. “It wasn’t long before it was obvious that she wouldn’t be a good fit. I sent the NO HIRE email before she had even left the room. I wanted to tell you about it, I know you’d be astounded to discover she pulled the wool over your eyes. She couldn’t even pass your pet interview question!”
“Hey!” Ted continued, “Where are you going?” Bob stopped and decided that some situations were so serious, only humour would do.
“I’m a programming superhero, and I must root out all wrongdoings. There has been an injustice; I am needed elsewhere.” He hurried away, there might still be time to save the interview process with Alice.