Tuesday, October 02, 2007

Product Knowledge Vs Coding Ability

I stumbled across Greg Beech's blog a few days ago while browsing the MSDN Forums and my attention was drawn to this post: Is product knowledge more important than coding ability?

The post didn't turn out to be what I thought it was, but it was interesting reading none the less. I thought it would be a discussion about whether a developer's knowledge of their product was more important than their individual coding ability, but the "product knowledge" that the title refers to is knowledge of third party software your company uses.

Greg gives a good example where his team solves a difficult problem quickly through their knowledge of the products they are using, rather than with any dramatic improvement in coding skill.

But isn't knowledge of these products just one measure of your ability as a developer? Without knowing how to use a framework (and I mean "framework" in the broadest possible terms) a developer isn't going to be able to do much quickly.

For example, if I wish to send an email from a program I don't open a socket to a mail server and throw SMTP commands across the wire. I use something like the System.Net.Mail classes which contains everything I need.

I know I could implement my own SmtpClient. I have the coding ability to write the code that will do it, but it would be a waste of my time to do so.

Coding ability and product knowledge are just two of the many weapons in a developer's arsenal that need to be used at different times to solve different problems.

I'd say the ability to judge when to use each is the more important skill though.

No comments: