Software development is difficult in the best of conditions. You should always be failing some of the time, and learning from those failures in an honest way. Otherwise, you’re cheating yourself out of the best professional development opportunities.
I don’t want to hire people who don’t know how to learn from their mistakes — they’re doomed to repeat them. And if I’m willing to coach a potential hire, I don’t want to restrict my search to only people who already know how to learn. They probably don’t know all the ways they don’t learn
But I do want people who are willing to take feedback in a variety of forms. So, what mistakes have you made? What have you learned from them?
When I write columns for a site or magazine, I discuss the areas to write about with the editor. What the editors originally wanted was a here’s-how-to-use-your-intuition article about hiring. I explained that was a bad idea, and I would write a how-not-to-use-your-intuition article
Intuition is neither good nor bad when hiring — it just is. What’s critically important is to use your intuition to generate behavior-description questions and auditions. That way you gather data about the candidate and your intuition. Win-win all the way around.
State, Strategy, Bridge, and Adapter are all similar patterns. How are they similar, and how are they different?
But I suspect I was surprised because I’m no longer a developer and am not familiar with the patterns. I suspect I would keep a paper copy of the patterns and ask a candidate to read them first if the candidate was unfamiliar with the patterns. I don’t want to make a test out of attempting to remember the pattern; I want to hear the candidate’s perspective on the patterns.I loved the second question:
What makes good, maintainable code?
What an opportunity to ask followup questions such as “When have you not written maintainable code? Why?”I like meta questions, such as the third one:
What questions should we be asking you?
I’m not sure I would ask every candidate how to improve the interview, but meta questions are more illuminating (for me) than hypothetical questions if I want to understand how the candidate thinks.
I’ll be guest blogging on Recruiting.com. I don’t have the magic password yet, so you’ll have to wait until next week to see anything I write.
I had a great email and then phone conversation with Jason. I explained I wasn’t a recruiter, and only knew about recruiting from the client side. He said that was fine, that I have another take on the recruiting issues.
BTW, I’m hoping I still can convince Anthony to tell me what to wear. He did such a great job for men.
I’ve ranted about certifications before. But I recently encountered another job description with a certification that I just don’t understand. For a Quality Manager (not a Director or VP), the description asked for PMP. (The PMP is the PMI’s certification for project managers.)
Here’s why I think requiring any certification is nuts: all the certification exams are about the person’s ability to pay a pile of money, to show some “experience” in the field, and most importantly to spout back the certifying body’s nomenclature in an SAT-like exam. You don’t have to be good at what you do — you only have to know how to put the words and definitions together.So you’re probably thinking, “Hey, JR, being a project manager might be a good idea if you’re a quality manager and want to change the process.” Sure, it couldn’t hurt. But in order to succeed as a quality manager, you have to know how to gather qualitative and quantitative data (which the PMP doesn’t measure), and then influence the people in the system (which the PMP doesn’t measure). Since the quality manager is not going to drive (see below for exceptions) any projects, but instead influence other people to change what they do, project management skills are not particularly useful. All those interpersonal skills are. And, nowhere in the job description did it mention the necessary interpersonal skills.
I see job descriptions like this when people don’t take the time to analyze the job. If you’re a hiring manager, analyze the job. If you’re a candidate, ask a bunch of questions. And if you’re a recruiter, like the person I spoke with who was attempting to source the position, consider leading your client through the analysis process.
Ok, there might be exceptions. Agile project managers don’t drive projects in the same way that a traditional PM might. But this position was top-down quality, not bottom-up self-organizing teams who wanted to improve the process.
I’m having an email conversation with someone who’s trying to hire some developers. He said, “For some reason, I think that developer who is comfortable in Lisp can take on any project, because I do know Lisp, and I feel that I can take on any project :)”
Unfortunately, I don’t buy the transitive property when it comes to developers (or testers or managers or anyone). I may be prejudiced for people with certain backgrounds, as my colleague is for Lisp developers, but that doesn’t mean you can assume that the candidate will be successful in your environment. You still need to ask behavior-description questions and use auditions to see and hear if the candidate can be successful.It’s easy for us to allow our prejudices to get in the way of our interviewing. Examine your assumptions, and know whether you’re using shortcuts (”A Lisp developer is always good”) or shorthand (”A BS in Computer Science is always good”) to make your decisions.
Shortcuts without verifying how the person works, and shorthand –those assumptions about the requirements of the job — don’t provide you information about the candidate or the role. Make sure you know the role you need filled and whether or not this candidate can fulfill that role.
My colleague, Will, has been attempting to hire developers. He’s a bit frustrated. Take a look at Explaining the tech job market. Will is frustrated with the level of competence he’s seeing in candidates. That prompted him to discover Parnas’s Law of Hiring:
Parnas’s Law: The more incompetent developers you hire, the more you need.
There’s plenty of anecdotal evidence to back this up. In fact, one of the reasons agile projects succeed more often than traditionally planned projects is because there’s no place for incompetent developers to hide. Either your stuff works today and tomorrow and the next day or it doesn’t.
So how do you recognize competent developers? Well, the first thing, is analyze the job. Competent developers don’t care what language they use, although may well have a preference for some languages over others. If you write a laundry list job description, you won’t attract a competent developer. Think hard about the functional skills you need, as well as the domain expertise required, and how well a candidate has learned products in the past. Make sure you ask behavior-description questions in an interview to discover what released products the developers worked on, and how they worked. Develop an audition. Check references.
There’s a corollary to Parnas’s Law of Hiring: The more incompetent the hiring manager, the more incompetent developers you hire. Sad, but true.
For some unknown-to-me-reason, more and more hiring managers appear to be attempting to do their own recruiting. While I do encourage hiring managers to network and constantly be on the lookout for candidates, especially passive candidates, I can’t see how a hiring manager can effectively perform the management job and recruit for candidates.If you’re in the position of trying to find your own candidates, consider outsourcing the recruiting piece. You can hire a contract recruiter, someone who brings his or her contact list into your organization, works the phones and email, searches the web, and sources candidates for you. (You pay this person as a contractor, an hourly wage.) You can hire an external recruiter who will do the same and only cost you money if he or she finds a candidate. You can allow/encourage/train/hire an in-house recruiter (see Heather as an example of an in-house recruiter).
If you’re not sure where to look for recruiting help or other marketing help, take a look at HR Marketer. I discovered them via Recruiting.com. (In the interest of full disclosure, I’m in their HR experts directory.) And if you select an external recruiter, make sure you develop a great working relationship with that firm/person.
I’ll be the first to admit I am a neophyte when it comes to searching the web and marketing to source candidates. And if you’re a hiring manager, you should be too. That’s not the place you add value to the entire hiring process. You add value in job analysis, determining the interview team, who’ll ask which kinds of questions, how you’ll audition, how you’ll decide about candidates, what to make as an offer, checking references, and starting the person working in a way that makes sense. But not sourcing candidates. Leave that to the experts.