The Selfish Class.

This paper takes a code’s-eye view of software reuse and evolution. A code-level artifact must be able to attract programmers in order to survive and flourish. The paper addresses the question of what an object might do to encourage programmers to (re-)use it, as opposed to using some other object, or building new ones.

Whether despite or because of the code’s-eye view, in the end these are worthwhile thoughts about writing re-usable software components.