Programming algorithms vs. Buying

Click For Summary

Discussion Overview

The discussion revolves around the decision-making process of whether to program algorithms in-house or purchase them from a library, particularly in the context of complicated algorithms that involve higher mathematical functions. Participants share their experiences and considerations regarding costs, functionality, and the implications of each choice.

Discussion Character

  • Debate/contested
  • Technical explanation
  • Exploratory

Main Points Raised

  • One participant inquires about the advantages of programming algorithms versus buying them, seeking opinions from those with experience in this decision.
  • Another participant provides an example of a library service that charges $3000 for unlimited downloads, inviting further opinions on library options.
  • A participant raises questions about the programming team's needs, ownership of downloaded libraries, licensing fees for commercial use, and potential expiration dates of libraries.
  • It is suggested that the build/buy decision typically favors purchasing, as the cost of buying may be less than the total cost of building, which includes various overheads beyond salary.
  • However, it is also noted that there are scenarios where building in-house may be preferable, such as when existing solutions do not meet specific needs or when integration costs are prohibitive.
  • Another participant emphasizes the importance of the complexity of functionality and the urgency of need, suggesting that critical requirements may lead to a preference for purchasing over building.
  • The notion of trade-offs is introduced, indicating that the decision may depend on the specific advantages and focus of the organization involved.

Areas of Agreement / Disagreement

Participants express differing views on the merits of building versus buying algorithms, with no consensus reached on which approach is universally better. The discussion remains unresolved regarding the best course of action in various contexts.

Contextual Notes

Considerations include the complexity of the algorithms, the specific needs of the programming team, and the potential costs associated with both options. There are also unresolved questions about licensing and ownership of purchased libraries.

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!
 
Technology 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.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
Replies
29
Views
6K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 15 ·
Replies
15
Views
3K
Replies
3
Views
4K
  • · Replies 122 ·
5
Replies
122
Views
18K
  • Sticky
  • · Replies 13 ·
Replies
13
Views
8K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 21 ·
Replies
21
Views
3K