Technical Skills matter

Suneth attended QCon last week and in his post "The Great Convergence" he summarises Kent Becks comments on "the great convergence of Business Trends and Developing Trends in the IT world".

I totally agree with the view that today's developers require far more social and people skills than evidenced in the traditional view people have of the developer. I also think that the Agile practices help focus a development team on the needs of the client and hence force engagement with the business users, resulting in the need for and development of these skills.

Where Suneth and I depart in our views however is in his assumption that technical skills don't matter for a developer. His assertion that

Anyone with a healthy brain can learn any programming language and write good code with some guidance and practice. But it is not easy to train someone to behave a certain way or teach some values like being positive or working as a team.

I think misses the fundamental training in Software design that engineers gain during their degree. There is a big difference between "Programming Skills" and "Language Knowledge". To borrow from Dylan's comment to Suneth's post

There is [the] art of developing quality software – a strong degree of craftsmanship involved, which separates code-monkeys from true engineers.

I also think that Suneth sells himself short in his comment that

… technical skills of a programmer should not be the main requirement while hiring. For example, prior joining Ephox, I was a .NET developer.

I'd disagree with Suneth suggesting he didn't have the technical skills of a programmer, we wouldn't have hired him if he didn't. What Suneth lacked was commercial experience in our language of choice, Java, but his technical skills in developing quality software were evident and why we hired him.

As a manager, when I'm looking for new recuits I'm evaluating the whole package, social and technical and weighting them equally. In the interview process, the face to face covers the social, and the programming exercise covers the technical. In one way we differ from the traditional though in that our programming exercise doesn't require the canidate to program in Java. It's their analysis, design and development skills and philosophies we are interested.

Leave a Reply

Your email address will not be published. Required fields are marked *