Framing Software Reuse: Lessons From the Real World