Feb 24 2009

What An Expert Is Not

Category: AlexRobson @ 14:35

Jeff Atwood recently regurgitated something from Joel Spolsky that struck me as being fantastically ignorant in regards to what constitutes an expert programmer:

Level 5: Expert

  • No longer relies on rules, guidelines, or maxims
  • Works primarily from intuition
  • Analytic approaches only used in novel situations or when problems occur
  • When forced to follow set rules, performance is degraded

Take a moment. Let it sink in. That's not an expert folks; that's an arrogant hacker. Good code doesn't happen because you're so awesome that the first thing that pops into your head happens to be the best solution; it's an iterative and thoughtful process. Sure, it draws upon previous experience formed by successes and failures. Yes, it's rarely the product of blindly working through a flow-chart of steps. But the mental picture I'm getting from this description is that of a very undisciplined, intelligent hobbyist who likes to tinker with code rather than build professional applications.

Rules, guidelines, maxims, methodologies, best practices: these are all conceptual tools which can and should be used soberly to help you discipline and organize your thought processes. I've never, ever worked with anyone who was so brilliant that they produced anything worth-while or meaningful without employing these tools to some degree. To insist that one can do so is the pinnacle of ignorance and arrogance.

If I give Jeff and Joel the benefit of the doubt; I think they're probably exaggerating to fight the misconception that all one needs to be a good developer is the right methodology just add caffeine and design patterns. In my opinion, being a good developer is all about practice and commitment to continuous improvement. The best code I've seen is generally the result of several iterations of refactoring (often to patterns) and redesign. I'm pretty sure that if they were being totally real they'd admit to using tools which lately they seem to be criticizing. My sincere hope is that they're targeting the blind application of "the next best thing" and n00bish confidence that decision makers often place on tools to be the panacea for IT woes.

In closing; beware the developer who is constantly asserting how awesome they are. The best developers I've ever worked with are constantly teaching everyone around them how to improve and never assert themselves (because they don't need to). Use the tools that make sense for your situation and help you achieve the right result.

Tags:

blog comments powered by Disqus