While some of these leading-edge companies have indeed made good use of object orientation, the same cannot be said about the typical IT organization. In the typical IT organization the skills are simply not available to leverage this complex technology. The traditional method for writing objects requires detailed knowledge of language and sophisticated techniques such as inheritance and multi-inheritance. For example, inheritance requires that developers know exactly what they are inheriting. It is all too easy to make a mistake.
Objects are a collection of related methods and data.
In other words, the typical object would be a button or call to open a database. The developer is then expected to select from libraries of hundreds or thousands of existing objects to create complex applications. While this makes sense in theory, there are, in practice, problems. Some organizations have created techniques to overcome this problem. One organization I know has set up weekly meetings in which developers explain to each other how a particular object works and what it is best suited for.