In my last appraisal at work I got asked what I thought makes a good developer. I didn’t give a very good answer, mumbling something about keeping up with current developments, reading around the subject, always trying to improve themselves, comparing yourself to other people and so on.
It turns out that in the last few weeks some people have attempted to answer this question for me.
To start with, Alistair posted Developer Essentials listing the set of skills every developer should have in order to carry out their job. That is to say, all developers. No exceptions and no excuses. I agree with the list, despite failing on a couple which are either on the list of “things I’ve forgotten” or “things I hate” (although this is no excuse, and is in fact, a reason to know them).
More recently, Jeff Atwood has highlighted The Ultimate Code Kata which highlights some of Steve Yegge’s old advice about Practicing Programming and pointing to the Code Kata (which at some point in recent history I began but never completed).
The soundbite summary of Steve’s articles comes early on:
Contrary to what you might believe, merely doing your job every day doesn’t qualify as real practice. Going to meetings isn’t practicing your people skills, and replying to mail isn’t practicing your typing. You have to set aside some time once in a while and do focused practice in order to get better at something.
This seems spot on to me. If you’re not growing as a developer, you’re not a good developer. If you’re continually content to let your skills languish until someone comes and shows you how to be better, you’re not a good developer.