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.
|