software developer using an object oriented framework | design documentation | technology that others are also reusing | hooks and slots | developing reusable components | significantly less knowledge about modelling than about design and programming | all the use cases associated with the software product | to reuse components in which they lack confidence | software development team | the set of use cases is complete and that they are expressed consistently and unambiguously | software developer using a framework | 3.3 - Frameworks: Reusable Subsystems | requirements | software that is easy to design and maintain and which has parts that are easy to reuse | when they deliver product, not on its quality level | the customer's business environment, their problems and the available technology which can be used to solve the problems | new libraries, APIs and frameworks because- developing anything reusable is seen as not directly benefiting the current customer
- If a developer has painstakingly developed a high-quality reusable component, but management only rewards the efforts of people who create the more visible 'final product', then that developer will be reluctant to spend time on reusable components in the future
- Efforts at creating reusable software are often done in a hurry and without enough attention to quality. People thus lose confidence in the resulting components, and in the concepts of reuse and reusability
| the use of obscure features of technology because later versions of the technology might be changed in ways that are incompatible with how you have used it or the producer of the technology might go out of business or withdraw it from the market | concrete classes that extend the abstract classes in the framework | several evaluators to independently perform heuristic evaluations | cost estimation | a design only after it is complete | services that the framework provides, i.e. methods that perform useful functions, called the API | software | several months on a testing team; this will heighten her awareness of quality problems she should avoid when she returns to designing software | the project manager about any problems | software development time because it is very hard for people to assess the quality of software or to appreciate the amount of work involved in its development | custom software | that developing reusable components will normally simplify the resulting design, independently of whether reuse actually occurs | rewarding career, recognition, or the challenge of solving difficult problems or by being a well-respected 'guru' in a certain area of expertise | the use case or use cases which are central to the system, which represent a high risk because of problematic implementation, or which have high political or commercial value | adequately involve users in the development process |