By: B. Foote, J. Yoder
Summary: What can be done to encourage reuse.
What can be done to encourage reuse.
Software is a pool of potentially reusable artifacts. For these artifacts to flourish, programmers must find them appealing, so, be sure they reliably solve a useful problem in a direct and comprehensible fashion. Make them widely available.
If it's too much trouble to reuse an artifact, programmers may not bother. Design objects that exhibit reasonable behavior with default arguments. Provide everything a programmer needs to try out these objects. Make it as easy as possible for designers to see a working example.
Objects with complex interfaces that conceal few of their internals are hard to understand and reuse. Design objects with low surface-to-volume ratios, that is, objects with small external interfaces, or surface areas, that encapsulate a large volume of internal complexity.
Complex interfaces can overwhelm novices. Design artifacts to allow users to start with a simple subset of their capabilities and gradually master more complex capabilities as they go along.
You want an artifact to adapt to requirements while maintaining its integrity. Use translators, subclasses, and/or wrappers to supply new states or behavior while leaving the original artifact intact.
Even a well-designed software artifact will not survive if no one sees it. Give it away.
Even a well-designed software artifact will not survive if no one sees it. Bundle it with a popular platform.