Sunday, November 25, 2007

Deciding When a New API or Standard is Needed

This was an interesting quote I ran across on James Snell's blog.  Not sure if it is his or someone elses:

If someone tells you that a new API or new standard is needed, they typically fall into one of two categories:

  • They either know pretty much everything about a problem and the existing solutions that they can say with authority that a change is needed, or…
  • They have very little real understanding of the problem and know next to nothing about any existing solutions.

There really is no middle ground. Sure, there are lots of people (myself included) who will write up specifications for stuff primarily for the purpose of exploring various alternative solutions and seeking public input… that however, is fundamentally different than asserting that a new standard or protocol or extension or whatever is absolutely necessary to solve a problem.

I think this rings pretty true.  I'm pretty guilty of it myself.  There's a couple of APIs that I've (re)written where I didn't do due diligence on the problem before diving in.

The engineers and architects that I have respected and admired most throughout my career always fell into James' first bullet above (obviously), and they always challenged me when deciding when something new was needed, or whether I needed to be more familiar with the existing.