Task: Create Asset
Prepare asset artifacts, documentation and packaging, and submit to Repository.
Disciplines: Asset-Based Development
Purpose
Populate repository with the right assets, providing solutions to problems in the enterprise.
Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory:
    Optional:
    • None
    Outputs
      Main Description

      In this task the asset artifacts are created and/or harvested. The asset is created according to the Asset Specification. Packaging the asset includes preparing documentation and supporting material to provide easy comprehension of the asset. The asset's metadata, such as name, description, and anticipated context is prepared. Finally the asset is submitted to the Repository.

      Major considerations in creating assets:

      1. Understand the recurring problem and proposed solution; the Asset Specification addresses this.
      2. Understand and develop for the intended Asset Consumer, including the following:
        • Identifying how it is expected the Asset Consumer will discover the asset (this affects both classification of the asset as well as the packaging material that is prepared).
        • The anticipated context(s) the Asset Consumer will be in (such as a development context, or a runtime context, or a business context), as well as the skill set of the Asset Consumer. 
      3. Understand who will fund, maintain and support the asset
      4. Understand the asset versioning strategy

      The Asset Specification will identify a possible asset type. Each asset is of a single type, and can be classified multiple times. For example, you can take an asset such as a stock quote service. You can determine the asset type is Service, and you may classify the stock quote service as a "non-commercial" service, and as a "domestic" service, providing quotes for only domestic traded stocks.

      Looking at several of the steps of creating assets, they have direct impact on the consumability of the asset, for instance:

      • Creating or harvesting artifacts: impacts the usability of the asset
      • Packaging the asset: impacts the comprehension of the asset
      • Categorizing the asset: impacts the searching and discoverability of the asset

      This point cannot be emphasized enough. The steps of creating an asset should be focused on the Asset Consumer, for both their ease of use and for the downstream maintenance.

      Steps
      Understand the Considerations in Creating Assets
      Some of the main considerations are described in the main description for this task. Understanding the answers to these considerations is critical to building the proper asset. Again the goal is to not overpopulate the Repository with assets just because we can. The goal is to populate the Repository with the right set of assets that provide a solution to a problem the organization faces, and that are easy for Asset Consumers to use.
      Create or Harvest Artifacts

      An asset may have many artifacts. Some artifacts are created for the asset, whereas others may be harvested. In either case the artifacts should be prepared to the accepted level of context and dependencies.

      In many cases dependencies need to be removed or modified in the artifacts to meet the expected context Asset Consumers will have.

      The artifacts are prepared in the Asset Owner's/Producer's workspace. The artifacts should be checked in to an SCM (source control management) system before associating the artifacts with the asset in the Repository.

      Package Asset

      There are several things that happen at this step including the following:

      • Prepare the documentation for the Asset Consumer.
      • Determine the metadata for the asset.

      There are several things which help mitigate reuse costs. These include:

      • Quicker, easier comprehension of the asset
      • Asset complexity is minimal to moderate
      • Asset size is minimal to moderate
      • Documentation quality is high

      These are subjective factors but describe the underlying principles to creating assets. Addressing documentation quality and ease of asset comprehension are the purpose of packaging assets.

      The extra investment for packaging assets is justified if the effort in this area reduces the costs of reuse.

      Categorize Asset

      There are several terms describing this step, such as classifying the asset, or using taxonomies.

      The goal here is to assign values to the asset metadata that benefit the discovery of the asset. More formal structures such as category schemas or taxonomies are typically used. However, other techniques such as tagging assets with terms that are meaningful to the Asset Consumer are less structured techniques but are often more useful means of searching and finding assets.

      Assets should be categorized as they are created and submitted, but certainly should be permitted to be categorized at other points in the lifetime of the asset.

      Submit Asset

      Submitting the asset to the Repository, the Asset Owner/Producer typically fills in the asset metadata, associates the selected artifacts and categorizes the asset using category schemas and taxonomies in the Repository.

      For some Repositories the asset version is declared by the person submitting the asset.

      When selecting the artifacts to be in the asset typically the Asset Producer/Owner will select the root directory where the artifacts live. Some Repositories will permit only one root directory in the asset, others may permit multiple root directories. When selecting the artifacts for the asset, the Asset Owner/Producer will often need to identify a label or some other identifiable tag that is stored in the asset metadata and SCM to ensure proper retrieval of the asset artifacts for the Asset Consumer.

      In a governed Repository the asset should be submitted to review and approval processes. Governing the asset submission, review, and approval processes adds to the quality and usability of the assets in the Repository.

      More Information