GNU Smalltalk User's Guide
4.3.3 The bottom line of the class hierarchy
The goal of the class hierarchy is to allow you to
organize objects into a relationship which allows a particular
object to inherit the code of its ancestors. Once you
have identified an effective organization of types, you
should find that a particular technique need only be implemented
once, then inherited by the children below. This
keeps your code smaller, and allows you to fix a bug in a
particular algorithm in only once place--then have all users
of it just inherit the fix.
You will find your decisions for adding objects change
as you gain experience. As you become more familiar with
the existing set of objects and messages, your selections
will increasingly "fit in" with the existing ones. But even
a Smalltalk pro stops and thinks carefully at this stage,
so don't be daunted if your first choices seem difficult and
error-prone.