APIs – useful tool or business asset?

I’ve recently been working on maintaining an interface between two companies. As part of the maintenance involves tracking down issues to help the developer and hopefully find fixes for them. The API isn’t public and this post is about why I think that the accountancy package should at least document their API publicly.
First, a bit of history of the package’s business model. The company which own the accountancy package sells partnerships to 3rd party suppliers. These 3rd party suppliers then sell the software licences and support to end users (small and medium sized businesses).

The business I work with outsources it’s development. They outsource their development to one of these 3rd party suppliers. It makes a lot of sense for them, they get quality developers who understand their system. The developers who work on similar systems on a day to day basis.

The source code the developers provide is closed source – we just get the binaries. As a Linux user I don’t find this ideal but I understand why they do it from a business point of view. A lot of the package uses JavaScript for limited scripting usage.

When we have issues with one of these pieces of JavaScript we can look though it and find the issue without having to wait for the developer to find, research and look at the issue.

However, the JavaScript which is used also uses libraries provided by the software package. The documentation for these libraries are not publicly available. In fact, no information about them is publicly available.

The API which the package uses is NOT public. Even though we can see some of the scripts which have been written (JavaScript + API) we can’t always accurately make guesses about what is going on within the code. When we encounter (sometimes very serious) errors we can’t always track down these errors because we have to guess what the function actually does.

To me, having a public API makes sense, It means we can more accurately track down issues without having to bother the developer for simple fixes (even though we still check that our change makes sense with them).

The main reason that the API is not available is because the original software developers sell access to it with their developer training. A full developer training course is simply over the top for such a requirement!

Leave a Reply