Some companies try to avoid developing software that doesn’t directly contribute to making money. Other companies do the opposite and try to only use internal software. Falling into the “not invented here” trap.
Large software companies fall into a different failure case where they build large massively integrated internal development platforms.
At the beginning these companies were solving a problem that had no existing solution and they correctly chose to create internal solutions.
But it has been a long time. You should not be maintaining your own containerization system anymore. Use Docker.
But for a big tech company moving to docker could be a five year effort costing millions. It is easier to keep the old system.
That large tech company gradually becomes trapped by internal software, that the rest of the industry has never heard of. As the company’s internal tech stack drifts away from the rest of the industry employees pay less attention to the mainstream.
Eventually the company loses perspective on what they are missing. The people who have worked there the longest who have the most power to improve things think the internal software is better.
These companies are big enough that they have internal developer conference where employees can learn about the latest in internal tooling.
Today most of the components of these stacks are worse than the industry mainstream alternative. But there is no upgrade path on the horizon.