Result: Refactoring.
Further Information
This article reports that refactoring is one of Martin Fowler's pet subjects and the subject of one of his books titled "Refactoring: Improving the Design of Existing Code." It is opined that almost all programmers, and certainly all Java, C#, and Visual Basic .NET programmers, need to understand enough object-oriented design to understand why class libraries and frameworks, which are the new API delivery mechanisms of choice, are structured the way they are. Almost all programmers need to know how to use inheritance and aggregation to incorporate the functionality of a pre-written class into their own classes. Almost all programmers need to be able to understand UML diagrams. Almost all programmers need to be able to override a method and implement an interface.