You are currently browsing the Hamstaa! weblog archives for August, 2007.

Client Access Required

August 29th, 2007

I was reading an article by Jean Tabaka on the 11 Ways Agile Adoptions Fail and her number 5 reason "Product Owner is Consistently Unavailable" hit a cord. In it she states

An unavailable product owner perpetuates the wait time and creates waste

Having experienced this in the past, I can't agree more. 

At Ephox our Product Manager plays the role of client in our iterations. As part of his role he spends a certain amount of time travelling. In the past we tried to continue development while he was away. What we found was that, even though he was available via email and phone, his lack of availability within the office while a feature was development caused delays and in some cases wasted work.

The way we've dealt with this, especially with an increase in Product Managers recently, was to have agreement that, as the client, if you were not available your development release would stop at the end of the iteration. The team would then work on stories in the next iteration for the other product manager or spend time on process improvements within the Engineering team.

Hiring Capable People

August 27th, 2007

A few posts ago I talked about competency versus capability and recently I've seen a few posts supporting my assertion that the "tick in the box" approach to hiring isn't going to guarantee you get capable people.

Dan Creswell posted a great article in response to the job ad for a Senior Research Engineer at Amazon. 

So often I see companies create job specs for engineers where the key requirement is to hire someone who can hit the deck coding like mad using whatever tools have been selected. To that end they load the specs up with endless tech hubris and at interview ask the details of this or that bit of syntax or API call.

Frank Wiles continued the theme in his post on "A Guide to Hiring Programmers" where he identified  

You don't need to hire an expert in language X, you can and should look for expert programmers that are willing to learn language X. An expert can easily cross over from being a novice in any language in a matter of a few weeks.

If you are hiring solely on technical skills then, as Dan Creswell asks, "what about the next project within the company where the tech is different?". This is where capability wins over competence for me.

Having ways to judge the capability of potential hires in the interview process is crucial to successfully hiring people who can grow and evolve with your business. Ideally you don't want to have to hire a complete set of new developers if you change technology. The current ones know your business and will appreciate the opportunity to develop new skills, thus adding to company loyalty and retention. 

At Ephox, as part of our recruitment process, we have people undertake a coding exercise. This is a very simple program that the candidate can do at their leisure to allow them to fit it into their current commitments. Most importantly we allow them to develop it in their preferred language and tools. Once it's submitted back to us and reviewed by senior engineers, we invited the candidate back for a frank discussion on their thinking during the development process.

What are we trying to achieve? We are looking for how they approach problems and how they interact in a technical discussion. Basically all the things that indicate their capability for the role versus their proficiency with a particular technology stack.

We've already seen this approach work with our last hire. Suneth had only basic Java skills prior to joining us but when we evaluated his ability we could see the potential and an eagerness to learn more. In the 12 months since Suneth joined us his skills in Java have increased immensely.

How do others evaluate the capabilities of their candidates during the interview process?