People forget that most useful software comes from startups that either become big or get bought out. In these startups, spaghetti code is the norm. They don't have the people, time, or product knowledge to do it right the first time. It falls on the larger entity to eventually clean it up.