“Remember: An API is a journey, not a destination”
John Musser in this slide-deck entitled “Ten Reasons Developers Hate Your API“.
API (Application Programming Interface) are the mechanisms for getting data into and out of your OSS. Since an OSS doesn’t do anything useful without data, APIs are effectively the life-blood of an OSS. Yet, APIs seem to almost be an afterthought for some OSS and or tools that feed OSS (eg EMS, NMS, BSS, etc).
If your making any one of these tools, the API is the window to your data, the doorway into your solution. If your API gets a reputation for being difficult to interface with, it’s just one more reason for the customer to knock on the door of another vendor / product. On the flip-side, word-of-mouth is strong in the OSS community and if your products have a reputation for ease of use and for being easy to interface with, it becomes so much easier for your sales team to bring in the customers. Creating mediation device drivers (MDD) between interfaces is afterall one of the most expensive and time consuming parts of building an OSS.
The link above gives some great pointers for APIs of all sorts, and to the OSS industry specifically, to enable vendors to make APIs (and supporting collateral) that are far easier to work with. How many of the tips and fixes are relevant to your organisation?
Which reminds me of a story. Many years ago, I was trying to build an interface specification for a particular device type and I just couldn’t get my head around why there were totally different interface protocols for different OSS domains. For example, it may’ve been CORBA for provisioning, SNMP for alarms, XML for inventory and CSV file parsing for performance (I don’t recall exactly which was which).
Not only that, each of the interfaces used different data conventions for common objects such as devices, cards, ports, etc. It was simply a dog’s breakfast! I couldn’t understand why there was no consistency, until I was told by the vendor (on the quiet) that they had forgotten about the APIs and had outsourced them as an afterthought, with each domain being handed out separately to different developers based on whoever had the cheapest rate.
Amazing!!