Two loaves of bread off the same line are perfect substitutes for each other, and compete to be sold.
Lines of code within the same code base aren't competing to be sold. They either complement each other by adding new features, making the actual product sold more valuable, or one replaces another to make a feature more desirable- look better, work faster, etc.
The market grows if you add new features- your bread now doubles as a floatation device- or you introduce a new line of bread with nuts and berries.
So, the business has to decide- does it fire some workers and pocket the difference until someone else undercuts them, or does it keep the workers and grow the market it can sell to faster?
Two loaves of bread off the same line are perfect substitutes for each other, and compete to be sold.
Lines of code within the same code base aren't competing to be sold. They either complement each other by adding new features, making the actual product sold more valuable, or one replaces another to make a feature more desirable- look better, work faster, etc.
The market grows if you add new features- your bread now doubles as a floatation device- or you introduce a new line of bread with nuts and berries.
So, the business has to decide- does it fire some workers and pocket the difference until someone else undercuts them, or does it keep the workers and grow the market it can sell to faster?