This seems like the correct way round to me for the majority of cases where subcomponents of your product could be externalised - a 3rd party should be the primary go-to choice unless a company cannot be found that fits the requirements. The issue I see in development (and have been guilty of in the past) is simply building everything when libraries could easily cover the use case - "not invented here" syndrome. That's the real problem.
[edit] Also I think it's clear that there'll always be cases where the default doesn't apply, for example when working with a new field/concept or where the 3rd party options are too far from the mark, but for the majority of development (especially web development) there's likely a library/service to match many of your requirements.