For too long, and from too many vendors, partial software solutions have been delivered to market leaving customers perplexed. This began with all-things-cloud but really hit its stride with Internet of Things (IoT) platforms. Given the large number of market participants and the gold rush mentality characterizing the IoT space, many vendors pushed products into the market before they were truly complete. As a way of mitigating the problems they were foisting on unsuspecting customers, they pointed to the availability of application program interfaces (APIs) included with their products. It’s almost like they were saying “sure, we didn’t have time to finish off the product but, hey!, we’re giving you APIs so you can finish it yourself!”

Don’t get me wrong, APIs are great. Almost all well-structured software platforms employ them. And as markets mature they can promote the development of capabilities unforeseen by the initial product designers. But in new markets, like IoT, they’ve been used as a crutch by vendors without the time, money, of foresight to hand their customers a complete product. And claiming that they’re open APIs or that you’ve provided a software development kit (SDK) doesn’t make it any better.

A better approach can be seen in the history of Salesforce came to market in the late 90s with a SaaS-based CRM solution that customers could, you know, just use. It was only much later, after they’d developed a meaningful customer footprint, that they made APIs in their underlying platform accessible to third parties. Now they have thousands of third-party apps that can operate on top of Salesforce. Just think how things would have played out if Salesforce had started out with a platform (and open APIs!) that was unusable by end customers.

The lesson: develop solutions to customer problems first; open up the solution and allow others to extend it second.