When I read "Outsource undifferentiated heavy lifting", I was skeptical, but outsourcing infrastructure and components to established companies makes sense (especially the list mentioned). Startups should not outsource to random body shops unless they either have experience doing such or have specific targeted/quantifiable/definable needs that a specialist can help with. Outsourcing, in general, sucks more time and money than the benefit it brings - specifically speaking to job/body shops.
Yes, agreed. For startups, writing software should rarely fall in to the "undifferentiated heavy lifting" category; it should mostly be in "enduring competitive advantage", either seeking it or creating it.
For very early stage startups, I think outsourcing software development can sometimes have merit. If the main point of the software is answering the question, "Do we have a real business here?" then if there isn't a technical cofounder I think outsourcing can be worthwhile as long as you assume that all the outsourced code will be thrown away.
But as soon as the founders are sure it's a real business, I think at that point you have to toss out the oursourced stuff and start building the real code base. Then you're reasonably sure that some of the code you're writing is going to be delivering customer value over the long haul, so it's worth investing in sustainability.
Not every company is like Intercom where they have enough funding to spend on 'outsourcing undifferentiated heavy lifting'. The only competitive advantage they have is that they are well funded and they have budget for marketing.
There are other software companies out there, smaller and leaner than Intercom that are eating their lunch by offering similar or a better product at a lower cost. Those companies aren't 'outsourcing undifferentiated heavy lifting' but rather have a lean and talented team that's able to do the heavy lifting themselves without sacrificing on product development.
I've seen management push for outsourcing simply on the basis of having worked with a particular company/group before when there was no need/sense. It's about knowing the trade offs and making the right decision for the company as a whole not due to personal preference.
And many companies used to make outsourcing decisions based off of simple head count cost and didn't factor in the extra time/hours/delays due to integration/poor work/other factors.