The scope of the reuse assessment should be selected first. In general, it is not good practice to apply reuse
principles to the entire enterprise at one time. As input to the reuse assessment, the business problem and priority
need to be understood. This provides the necessary context and scope for focusing the reuse assessment.
Therefore, if the business problem is scoped or can be scoped to a specific organization, team, or project, then
the reuse assessment should be scoped as well. The reuse assessment evaluates two major elements for the selected
scope: 1) reuse capability and 2) reuse opportunity.
Reuse capability describes the organization's ability to conduct reuse activities. Reuse opportunity describes the
extent to which recurring problems and recurring solutions exist within the selected scope.
An organization's reuse capabilities are increased when the following factors are in place:
-
Management support
-
Mature software process in the organization
There are generally more reuse opportunities when the following factors are in place:
-
Well understood domains
-
Architecture to support reuse
-
Mature versioning and configuration management
When creating the reuse assessment, evaluate each of the factors in the two lists above. Sample questions to consider
on each of these factors are listed below.
Management support
-
Will management specify policies and support asset reuse?
-
Will management provide top-down support for investing with bottom-up implementation?
Mature software process in the organization
-
Do the project teams follow a repeatable software process?
-
Are there management artifacts produced from the process, and does management use them?
Well-understood domains
-
Is the business problem space understood by the software organization?
Architecture to support reuse
-
Will the software architecture permit assets to be harvested and plugged in for reuse?
Mature versioning and configuration management
-
Does the software team practice source code versioning and configuration management?
-
What is the release cycle for delivering software in the organization?
|