Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Programming algorithms vs. Buying

  1. Oct 28, 2012 #1
    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!
  2. jcsd
  3. Oct 28, 2012 #2
    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.
  4. Oct 28, 2012 #3


    User Avatar
    Homework Helper

    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?
  5. Oct 28, 2012 #4

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    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.
  6. Oct 28, 2012 #5


    User Avatar
    Science Advisor

    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.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook