Programming algorithms vs. Buying

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
4 replies · 2K views
Schastain1
Messages
2
Reaction score
0
I'm an IT consultant and would like to ask for opinions. Do you think it is smarter to program algorithms or buy them from a library? Especially for complicated algorithms involving higher math functions. Some libraries charge a flat rate with unlimited downloads, they check their algorithms for accuracy, and help the programmer add the code. I would especially like to hear from anyone with actual experience making this choice. Thanks!
 
Physics news on Phys.org
For example of a library service, the Numerical Algorithm group charges $3000 for unlimited downloads per year, but any opinions of libraries will be welcome.
 
At your company, who's doing the actual programming? You might want to consider asking the programming team if the libraries offered by the library service include the functionality that the programming team is looking for. Once a library has been downloaded, do you "own" it, or is there a licensing fee if a particular library is to be used in a commerical product? Do the libraries have "expiration dates" and if so, what happens if the library service goes away?
 
This is the canonical build/buy decision. Usually it's better to buy rather than build. That $3000 per year: That's just a week or so of one programmer's time. You need to count all of the costs when looking at the build cost, not just the programmer's salary. In addition to the programmer's salary, you have to pay the employer's share of Social Security, health care and retirement, ... There are lots of costs beyond salary that need to be taken into account when weighing build versus buy.

It's not always better to buy. There are times when it is better to build in-house. You've done your due diligence, and found that there just isn't anything else out there that does what you want. Suppose you have found something, but you have to look at that something cross-eyed to make it look like a fit. It isn't really what you want, and cannot be easily adapted. Or perhaps there are problems with the quality of that external product. Or the product cost is so ridiculously high that reverse engineering is cheaper. Or integration costs outweigh the cost of just building in-house.
 
How complex is the functionality and more importantly, how badly do you need that functionality?

This is just adding to what D H said above, but ultimately it's going to depend on how bad you want something and how that something is useful for what you do.

If something is critical to what someone needs to do then they will probably want to buy it unless they have some sort of specific advantage of developing that and maintaining it in-house.

Everyone has some sort of advantage in some way and to a large extent it dictates (or should anyway) their focus for what they do and their strength, but you have to at som point make a trade-off and decide that it's either important to what you do or it isn't and at that point the decision becomes a lot easier to make.