"Three Rules of Three":
- It is three times as difficult to build reusable components as single use components, and
- A reusable component should be tried out in three different applications before it will be sufficiently general to accept into a reuse library.
- Two instances of similar code do not require refactoring, but when similar code is used three times, it should be extracted into a new procedure.
References: