Monday, January 21, 2013

The Incident of the Fumbled Phone Screen

It was a technical screen led by an architect at a company that billed itself as Agile.  We started out with a general conversation about good OO practice and Agile development.

Then he asked me about HttpRequest.  I described its general behavior, but I had the feeling I wasn't satisfying him.  It had been close to two years since I worked with a Java app that used HttpRequest.

Later the recruiter who had set up the screen called to say the interviewer loved what I had to say about OO and Agile and admired my passion, but felt I didn't give enough detail on HttpRequest, so they were taking a pass.

What I Thought it Meant

I realized that the downside of being a consultant (i.e., contractor) and moving from one technology to another having to rapidly pick up new frameworks, libraries, languages and syntaxes was that I unconsciously learned to forget the idiosyncrasies of those technologies, while retaining only a sense of their general capabilities, strengths and weaknesses.  (If you watched the late lamented Alphas, you may recall this as Kat's problem.)  So I'm up against this in technical interviews.

When Micah Martin and Naim Ru  advertised for developers for a project at the Baha'i National Center, they didn't mention a language - they just asked for "OO developers".  When I came in, they gave me a small Java app to refactor.  It was only afterward that they explained the project was using C#.  That project was my first experience in that language after years of C, C++ and Java.  I don't believe I would ever have been hired onto a C# project if  a more traditional interviewing approach were in force.

Other XP teams I've worked with would bring candidates in to pair with them on real production code to see how they would approach a problem.

Before there was a Web it might have made sense to quiz a candidate on details of APIs, languages, etc. Now, not so much.

Second Thoughts

Later I realized several other things:

I actually did remember a lot about HttpRequest: that it provided the URL, the query string (parsed into a Map), the body (if present),  the HTTP method (GET, POST, PUT, DELETE and some rarer ones), the headers (including cookies)....

Okay, that's not all of it, but I did remember a good deal more than occurred to me in that conversation. So why didn't it come to me during the phone screen?

Possibly because I was annoyed by several things:
  • An organization claiming to be Agile but having an Architect role
  • Being quizzed about details that anybody can google up in a matter of seconds (I love lowercasing "google": commoditization is the price of fame! - will I get sued?)
  • The state of web development in general (Uncle Bob's Ruby Midwest 2011 keynote Architecture the Lost Years captures it brilliantly)
I tell people I'm glad to do web development, but as I realized during another phone screen today, it's a minefield. It's certainly a challenge to work in an area with so many competing semi-adequate technologies and languages, and I'd be glad to do it with a team that really understood the issues and approached them in a truly Agile way - including TDD -, but ....

Even though the guy who interviewed me today seemed sincere in saying he was glad to be on an Agile team and would never go back to Waterfall, actually applying XP processes - including TDD, but more importantly, just thinking rationally about the issues rather than getting excited about each new framework or tool - sounded like a distant goal of the team, rather than something that could be started immediately.  (Much as I need to find something fast, I almost hope this company takes a pass too).

Another thing about that first phone screen. The job is in an industry that I can't get excited about, both because of ethical issues (oh yeah, I forgot - I'm a professional so I'm not supposed to think about that!) and because ultimately the domain is just plain boring. (I should never admit that, but because almost nobody reads this blog, I don't think it will hurt my search.)

No comments:

Post a Comment