Thursday, November 8, 2007

What makes an excellent developer excellent?

Is it his knowledge of C# or Java Syntax? Is it his knowledge of every corner of every obscure framework? I don't think so. It is important to know what is possible in a language or framework but you can always lookup the fine details when you need to.

This reminds me of a story of when one of Einstein's colleagues asked him for his telephone number one day. Einstein reached for a telephone directory and looked it up. "You don't remember your own number?" the man asked, startled. "No," Einstein answered. "Why should I memorize something I can so easily get from a book?"

It is the developer’s knowledge of good object oriented design principles and domain modeling that makes a great developer stand out. If you are not strong in these areas it will be very difficult for you to Google them as you go.

2 comments:

Chris Barrow said...

A very difficult question to answer indeed. One must also consider the productivity/velocity/output matrix that a given developer brings to given role.

One developer can have an extremely good understanding of SOA, OOP, and design patterns but not be considered as valuable if another developer within the same organization produces solutions at a faster rate.

While the overall beauty and design of this developer's code may be lacking compared to the design pattern guru, organizations still tend to fall into the trap of desiring speed (quantity) over long term good design (quality).

Nick Markovic said...

Martin Fowler just posted Prefer Design Skill on his blog that makes the same points that I was trying to make. When hiring developers it is usually a better bet to prefer design skills over framework knowledge