Frameworks and Frankenstein
thecodist.com
thecodist.com
As opposed to rolling your own everything, where you have to... maintain it yourself when OS versions change or other needs appear.
I'm not advocating doing everything from scratch (by that definition you would probably need to manufacture your own hardware...) but there's clearly a difference between depending on some libraries/frameworks that are stable and well-used (e.g. OS, libc, JVM) and pulling in every library you can find that offers a piece of the functionality you want.
And if it it is big enough, then everyone knows only small subset of it all, whether you pair program or not.
If we really took that it's logical conclusion, we'd realize that most software lives too long.
When you're stuck reading the code, if the code was written in a style assumed by your company and by people whose code you've read before, it will have the advantage of being written in a familiar style.
I will grant you, however, if it's a bit of code that nobody has touched for years, open source software will have an edge.
It is up to the architect of any system to choose these technologies wisely. I tend to favor extensibility and degree of coupling in my design decision which can lead to an over engineered complex solution. However, I rarely regret doing so. The time upfront pays off when changes are requested.