fungible (adj.) : being of such a nature that one part or quantity may be replaced by another equal part or quantity in the satisfaction of an obligation (oil, wheat, and lumber are fungible commodities)
The common wisdom on this is that programmers are not fungible. You can’t replace someone with 5 years of experience with two who have 5 years of combined experience and expect the same results. This is true but there is another kind of fungibility that can be put to good use. Overlooking this other kind of fungibility is why most startups are complaining about not being able to find good programmers.
Let’s say I give you two programmers. One has spent 5 years working with C# and .NET and designed and implemented some complicated pieces of software. The other has done the same things except with Java. The question is are these two programmers fungible? The right answer is that they are fungible.
The reason is simple. Java and C# are basically interchangeable as far as language semantics are concerned. Java is more verbose than C# but the languages themselves as far as class based, object oriented languages are concerned are pretty much indistinguishable. Frameworks and enterprise architectures are copied back and forth between both ecosystems so whatever bloated piece of enterprise software exists on one side can be easily replicated on the other side. So the question should not be whether one programmer or the other has X years of experience in technology Y but what is the level of complexity each one can deal with.
We don’t have to stop at Java and C#. Do you want to hire someone experienced in Django but can only get your hands on people experienced with RoR? Then you should just go ahead and hire the RoR person and give them a month or so to figure out the Django conventions and vice versa. Ember.js, React.js, or Angular.js? Same, doesn’t matter. Hire someone smart and give them time to learn. Android or iOS? Same thing again. Principles underlying good mobile software architecture design are the same everywhere regardless of the underlying language used.
Really the point I’m trying to get across is that specific types of programmers are not fungible but good problem solvers are and if you’ve set things up right then there is no shortage of good problem solvers that can express solutions to problems using your technology stack of choice. So then the real question becomes whether the thing your company is working on is compelling enough to attract good problem solvers and whether you are good enough of a problem solver to recognize the same in others. Those are much tougher questions to answer and your ego might not be able to deal with the answers.