APIphany, an API management platform, has a weekly twitter content. Last weeks was to complete the sentence “An API…”. I’m proud to say, I won last week with:
“An API helps organizations delegate complexity.”
Notice of winning was followed quickly by a question from Darrel Miller, who asked “I would expect an API to hide complexity?”
I agree, API’s (at least good ones) hide interface complexity.
They also allow organizations to delegate complexity.
It’s about perspective. Darrel was thinking about developer perspective. A good API simplifies the interface to a system so that it can be broadly used. In fact, it’s one of the challenges too. My favorite example of this was a discussion around iCloud that I read (apologies, I can’t find the link). There is a difference using the iCloud API’s for apps that save files vs games. Developers have to make assumptions about what’s allowed – for example, you may want to edit a document on two devices at once, but not allow a game player to reset the game from one device while playing on another. Same API, different best practices around how that API should be used.
As a total aside, I’ve found that Temboo is a great solution for instantiating best practices around open API’s (and for creating a scalable, pay-as-you-go execution platform). Just to be clear, I’d like Temboo even if they weren’t neighbors here in Tribeca, NY.
The phrase “delegating complexity” came from a conversation I had with Lisa Grimm, then brand manager for Mall of America. Mall of America had no mobile apps. There were too many things to do, all on a very limited budget. Which to do first? How to hit the “right market”? Which platforms to support? The problem, as any company faces is, as you try to optimize for effort you really dilute the experience. Just ask Facebook, who have (finally!) re-written their iOS app as a native app.
Let me put a little plug here for my company’s solution for mobile cross-compiling. A while ago we acquired Metismo and have fully integrated it into our webMethods development platform. webMethods Mobile Designer is a great solution for writing once, deploying everywhere natively. It works really well and I encourage you to check it out as a way to support a broad range of mobile devices without compromising your customers’ experience.
The alternative to doing it all yourself, is to do what Lisa was thinking, and what the MTA has done. Delegate.
I might even suggest they’ve become a convener, but that would be way off topic.