Click here to Skip to main content
15,887,746 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Do any of you guys have experience of building and maintaining a API to a product. Is it cheap or costly to maintain it? Does it restrict further development?

I would be happy to get your input on the topic.
Posted
Comments
bbirajdar 7-Feb-13 15:05pm    
Frankly speaking ..It is always the dream of a software guy to have his own software - an application or anything like API - that earns money for him... In fact I have an API for a service and have more than 500 customers and I earn more than a million dollars a year, single handed...
So depends on you..what you are selling and at what cost and what your customer base....

1 solution

It doesn't have to be costly, depending on how your architecture. The costs of maintaining an API are realized over a long time, as your products needs & design change to match your requirements. Then you potentially have to worry about maintaining backwards compatibility.

There's 2 main reasons to build an API, 1, allow 3rd party developers to use your product and features, to achieve their own result. Or 2 make lives easier on your in house developers. If you reasoning for the API is the former, then it can be significantly more expensive, as you need to ensure that new versions to your API don't break 3rd party developers, otherwise they get angry. If is the later then costs stay down. You have more control over what & how your in house developers do.

Building an API is always a good idea especially if it's to be of assistance to your developers. Common functionality should be rolled into an API. What you want to weigh is the cost of having your in house developers role their own features every time they need to read & write to a file,connect to a database and getting 10+ different implementations that all separately have to maintained, which costs money, or do you want that all wrapped up nice and compact and maintained in 1 place? Then figure out what's going to cost you more.

Designing and building a well throughout API may cost you more in the short term but you're going to realize the savings over the long term. As long as your product that the API is supporting doesn't change drastically then the costs of supporting the API can be well balanced out and kept low. That conversation goes something like this,

"Is this functionality all our developers are going to want to use?" - Yes, & "Will it be more cost effective to add to an API or maintain this artifact?"

If the answer to both is yes, then you're into a position of maintaining the API, doing a hack job at the initial design will cause you to have to constantly add little modifications, and maintenance, frequently! Doing a good job and having a well tested, though tout designed API by the time you release it to your dev team will help tremendously and keep your costs down. But this requires a strong investment up front.

So to answer your questions, YEs it advances development. It can be cheap to maintain if it's done right, but lots of software can be cheap to maintain if done right. The benefit that you have, is that your team can continue to get by without an API, because you don't have one yet. SO there isn't a huge rush to market as it's an internal product and you've got time to do an excellent job on it.
 
Share this answer
 
Comments
FantasticFiasco 8-Feb-13 4:12am    
Thanks for the input, I really value the time and effort you've put in your post.

The API would be designed for 3rd parties, but (in the beginning at least) we would be the only one using this API.

The idea is to extend the functionality of a product by releasing plugins instead of having to update the product itself. This means that backward compatibility would be a issue here. Older plugins is required to be compatible ever after a product update.
CdnSecurityEngineer 8-Feb-13 10:01am    
Its always good to Dog Food (Use your own) API that's the way it gets flushed out and improved upon.

Even with a well thoughtful API that's well designed you can control the cost of maintaining for 3rd parties.

The most obvious API method is to bundle up a bunch of dlls and distribute that accordingly. Other methods that can help control the cost of an actual API would be something like Web Services. But then you would have to host them some where. Even distributing a bunch of dll's to 3rd parties isn't a costly solution. You just need to be sure to design your interfaces well and version them when appropriate. Then as you start to End of Life some functionality be sure to update your 3rd parties by using compile time symbols, release notes etc.

If you like my answer please accept it!
Cheers,
CdnSecurityEngineer

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900