Practice: Asset-Based Development
The Asset-Based Development practice describes a process for identifying, producing, and applying reusable assets. Tool mentors are provided that support this process.
Purpose

Asset-based development is developing software solutions (re)using cohesive, documented software artifacts. It organizes software development in a way that leverages previous investments, and influences the nature of future investments. It is about speeding up development, and reducing cost and risk by reusing assets and artifacts to solve recurring problems.

The Asset-Based Development material contains method and process guidance for projects that are interested in producing and/or consuming Reusable Assets. For more information on Reusable Assets, see Concept: Reusable Asset.

Main Description

Scope

The Asset-based Development content addresses development-time asset development and management. This material discusses using an asset management system as a published repository. This means that there is not a focus on configuration management; and the repository is used for the purposes of sharing assets to be reused. This is in contrast to using the repository with configuration management throughout development with managed references and baselines.

There are several roles necessary to conduct the Asset-based Development processes. See the Role Overview for more information on these roles.

The Asset-based Development Process and the Asset-based Development Governance are intended to provide insight, context, and background for Managers, Practitioners, and Administrators. The Asset Governance establishes the policies, the organizations, enables the teams, establishes the tools, determines what is to be measured for ABD. Asset Management administers the policies in the repository, conducts the reviews, handles notification, deals with repository configurations.

This image describes the scope of the ABD plug-ins: devlopment-time covering asset governance, manufacturing, use and management.

Organization-Level and Cross-Project Reuse Process

An effective reuse program involves the interaction of two related processes. One is the process of managing reuse at the organizational level. The other is the process of producing assets and using them on projects, engagements, and in software builds.

Organization-level concerns include the following:

  • Identifying candidate assets
  • Management of reusable asset libraries
  • Determining the cost/benefit of harvesting or producing reusable assets
  • Initiating projects to harvest/produce reusable assets
  • Certifying and accepting assets into asset libraries

Project-Level Reuse Process

Asset-based development is not covered by a single discipline. It permeates across the software development lifecycle. Almost any artifact can be packaged as a Reusable Asset. Almost every task needs to address the questions:

  • Is there an asset that can be reused?
  • Is the asset that I am producing reusable by others?

The approach for reusing and producing assets is a general process that applies to any task and any artifact.

Guidance for consuming or producing a specific kind of artifact, such as a Requirements Document, Test Suite, Analysis Model, and so on, is provided as guidelines on the artifact and tasks that use or produce the artifact. However, for a description of the general approach to asset-based development, see the following roadmaps:

For more guidance on applying asset-based development techniques to projects, see the following guidelines:

The following links provide access to additional content that applies in both asset-producing and asset-consuming projects:

How to read this practice
To familiarize yourself with the process do the following:
  1. Get your initial questions answered in the Frequently Asked Questions
  2. Study the Roadmap: How to Adopt Asset-Based Development and the Major ABD Concepts
  3. Review the Tool Mentors
Relationships