Concept: Reuse Success Factors
This introduces key success factors to consider when working with reuse.
Main Description

Reuse Success Factors

There are several key factors that must be addressed for reuse, including: 

  • Management Support
  • Identifying The Right Asset To Build
  • Versioning and Configuration Management
  • Training For Producers and Consumers
  • Measuring Productivity and Quality
  • Sponsorship and Maintenance of Assets
  • Communication of Asset Status to Asset Consumers
  • Commitment to High Quality Assets
  • Well Understood Domains
  • Customizable, Coarse-Grained Reuse
  • Architectures Established To Create and Use Assets
  • Process and Organizational Structure to Support Reuse

Management Support

As in most cases, you must have top-down executive support to accomplish things in your organization. In the case of assets and reuse, this is extremely critical. A key point here is that the implementation strategy for reuse is generally best accomplished bottom up. This is due to the need for the assets to be proven, and to grow in value. It is also true that the assets must be verified in broader contexts over time. In addition, there is an inherent increase in cost as the reuse scope of an asset increases from, for instance, a project level, to a department level, to an enterprise level.

So the general guideline is to achieve top-down support while implementing the asset program bottom-up.

Identifying The Right Asset To Build

Next to management support, this is extremely critical to get right. This is about deciding where and how the business will invest in assets. A most important perspective to obtain is not to measure the organization's success based on the number of assets in the repository. The more correct perspective is to evaluate success based on the value the assets bring to the organization. Understanding the number of assets in the organization is a useful measurement, but it is not the determining factor for success with assets.

To identify the right asset to build, focus on understanding the recurring problems in the organization, or within the reuse scope on which you are currently focused. For each recurring problem, then focus on what the solution is for that problem. Make sure that you understand who is feeling the pain of the problem and the joy of the solution. Then determine who will pay for and own this solution. Now you are getting close to understanding which asset to build. This is not enough. You also need to understand the target consumer, what channels will be used to deliver the asset to the consumer, what are the consumer's skill sets, and how rapidly are the technology and the domain for this asset changing.

When determining the right asset to build, focus on the consumer and the value to the consumer. Do not create assets unless you can first identify a consumer that will gain repeated value from the asset. Without considering these items the business investment is often at risk.

Versioning and Configuration Management

Assets have two levels of versions associated with them. The first is the version of the artifacts within the asset. The version control system generally owns the policy for determining the version of the artifacts. The second is the version of the asset. Typically the Asset Manufacturing team, Marketing, or another business entity owns the policy for determining the asset version.

Training For Producers and Consumers

Those producing and consuming assets must be trained on the changes in development processes, as well as the asset concepts.

Measuring Productivity and Quality

Measuring, reporting, and refining the asset-based development effort is critical to the ongoing effort.

Sponsorship and Maintenance of Assets

This is an oft-overlooked issue. Setting up the initial funding of an asset is generally well understood. However, the real cost to the business is the long-term commitment to, and maintenance of, the asset. The initial additional costs of building a reusable asset are only the beginning of the cost of the asset.

Communication of Asset Status to Asset Consumers

It is critical to understand who is using what asset and on a what project. Impact analysis must be conducted for each asset when defects are fixed and new versions of the asset are rolled out. Those using the assets need to understand how this impacts them and their commitment to use the asset.

Commitment to High Quality Assets

There are many examples of repositories that contain junk yards of material. While a junk yard may have some value, it does not possess the high-frequency, highly-needed model of asset use. Governing the asset submission, approval, management, and publishing activities is critical to keeping asset quality high. The enterprise needs to determine what a Well-Formed Asset is, and to what policies the asset must comply.

Well Understood Domains

To properly invest in assets a well-known set of problems with a well-known set of solutions must be understood. This is fundamental to the successfully reuse of assets. Avoid the temptation to create assets and toss them into a repository without the due diligence to verify that they address the recurring problems and solutions.

Customizable, Coarse-Grained Reuse

Scaling reuse to more coarse-grained solutions improves the value proposition of assets. In general, the finer-grained assets are produced first and then can be combined through Composing Solutions: Recipes into more coarse-grained solutions.

Architectures Established To Create and Use Assets

Software-related assets, such as components and services, are more reusable when the expected architecture within which the asset is to be reused is well understood. This should be addressed early in the asset-based development activities.

Process and Organizational Structure to Support Reuse

In order for reuse to succeed within the organization, there generally must be a team that focuses on manufacturing assets. The challenge of this is that there are many technology domains for which reusable assets may be created, and it is difficult if not impossible to have one team that has all of the experts needed. As such, you generally have a core team that understands the principles of asset manufacturing, and you have visiting experts that join for a time to give guidance on the development of specific asset types. The enterprise needs to support this activity of harvesting expert knowledge into reusable assets, when and where it makes sense to the business.