Perhaps typical of software vendors operating in niche solutions spaces, and especially when those vendors have enjoyed modest success on their initial applications architecture, but find the need to refactor entirely, Vendor X does not offer anything in their current format by way of an Applications Programming Interface. The only options for feeding data into and reading data out of their system is through a fleet of database staging tables, and all interactions with those database staging tables are entirely the responsibility and risk of the customer.
i’ve been working with Vendor X to try and understand what their API roadmap looks like, as they’re busy refactoring their application to bring it into something relatively modern and more sustainable than is their current offering. There was a flurry of excitement at their initial response, but that flurry of excitement turned in a mix of despair and amusement at the subsequent correction they’ve issued:
“In answer to the integration roadmap question it was noted that [our company’s new web-services API] is intended to be Open Source. This should read Open Architecture. Apologies for the incorrect information there – We realize this is an important difference and can discuss further should you have any further questions”
It’s an important difference, alright! With an open-source API we get:
- open standards
- access to the source code
- the option to buy consulting and support
- the ability to contribute as true partners
…but with the closed-source API we get:
- web services created by right-clicking controls in a proprietary IDE and pushing the “make this control into a web service” button
- web services that are diffcult to work with because they’re non-standards compliant
- no access to the source code
- separately-licensed commercial integration
- no ability to partner meaningfully
In this day and age, it is nothing short of galling and greedy and wrong to have software vendors like Vendor X establishing basic API connectivity capabilities with their offerings as separate commercially-licensed products (open-source or otherwise).