*/ -->

February 16, 2006

Raj

An application programming interface (API) is not a magic bullet. And it shouldn’t be used to create a black box that you can think about later.

Creating big black boxes surrounded by cute little interfaces symbols can be a troubling sign. I see it all the time. People are quick to say “have them use the API.” As if using the API will mysteriously circumvent the shortcomings of product functionality or process.

Think about the controls inside of your car that allow you to “interface” with the engine and the other services. Would you be able to apply the brake pedal if brakes did not exist. Of course not. Same thing with an API. A function won’t exist in the API to execute some command if the server itself doesn’t do the intended task. An API is only as good as the server itself. If the server can’t do it, the API can’t either.

So why do people use the term? It is usually to overcome shortcomings of a given product, but what they’re really saying is “Write a ton of your own code and use our API to provide a little value-add.”

Another related cliche is: “We can do that through a professional services engagement.” Right. Anything is possible with enough time and money, so what they’re giving you is a vague answer that smells of positivity.

When they start saying stuff like “That’s programmatically possible,” it’s time to head for the door.