Most software engineers think about problems in bureaucratic (object-oriented) ways and not in formal ways, because they have been ruined by their "training".
Once they have a job, they discover that convoluted OO code bases offer great job security, so nothing will ever change.