Governance is the establishment of the following:
-
Chains of responsibility to empower people.
-
Measurement to gauge effectiveness.
-
Policies to guide the enterprise to meet its goals.
-
Control mechanisms to ensure compliance.
-
Communication to keep all required parties informed.
Systematic software reuse is the purposeful creation, management, support, and reuse of assets. In Software Reuse:
Architecture, Process, and Organization for Business Success, Jacobsen et al estimate the following benefits of
systematic reuse:
-
Time to market: 2 to 5 times reduction
-
Defect density: 5 to 10 times reduction
-
Maintenance cost: 5 to 10 times reduction
Often the mission of the reuse program is to help:
-
Continuously improve the delivery of products and services;
-
Provide and support a world-class IT operation that meets or exceeds end-user needs;
-
Provide end-to-end solutions that increase asset reuse and reduce software development costs.
The organization helps to realize this mission by developing tools, processes, and policies that will establish,
maintain, and encourage strategic reuse.
There are many challenges, however, to implementing software reuse at an organization that uses a more traditional
development approach.
Asset governance includes those activities for administrating asset-based development. It sits within the broader IT
governance in an enterprise. The focus is on preparing the organization to properly create, use, measure, and re-plan
the investments in assets.
The focus areas for setting up the governance of development-time assets are illustrated in the image below. In
general, these tasks may be done in parallel, and the order in which they are conducted is negotiable.
The major focus areas include:
-
Planning: Capture the governance requirements, determine which processes to bring under
governance, determine the measures and targets of effectiveness of the governance solutions. This focuses on what
out-of-the-box governance processes (content areas) to deploy, and what customizations are necessary to accommodate
the unique needs of the adopting organization.
-
Definition: Specify the decision rights, measures, and policies to be applied to those processes
under governance. Specify the automation and tool support. This focuses on performing a gap analysis
between the out-of-the-box governance process and what is needed.
-
Enablement: Roll out the governance solution to the organization in stages.
-
Measurement: Determine if the governance solution is meeting its effectiveness targets and make
adjustments as necessary.
Describing the focus areas for asset governance is simplified when illustrating it sequentially as shown above. In
practice, the activities in the focus areas are generally overlapped, as shown below. This work requires iteration and
refinement. As policies and strategies are created, and teams are being formed, and lessons are being learned,
refinement must be permitted, allowing the governance model being created to be updated.
Governance is categorized for organizational-level practices and project-level practices. The governance practices
described here are focused on the organization, but directly impact the asset-based development flows. A key aspect to
the asset-based governance process is to specify how asset-based development will be practiced. The asset-based
governance tasks produce the policies and artifacts that projects use to conduct asset-based development. In the
image below, the projects conduct the tasks of producing, managing, and using assets.
Instead of requiring projects to produce and manage assets, the asset-based development may be structured to separate
these workflows by placing them in a central asset manufacturing team, leaving the projects to use the assets and
discover candidate assets. Each structure has benefits and drawbacks. Having a central asset manufacturing team has the
benefits of greater asset consistency and quality, but this generally comes at a higher cost.
The process should be customized during asset-based governance to support the structure of asset-based development for
the enterprise.
The asset-based development workflows are generally inserted into the current enterprise processes. Use or create
capability patterns using the process components to meet your needs. If the enterprise is using Rational Unified
Process then the asset-based development processes may be inserted in any phase, or in any discipline, or within any
iteration, as illustrated in the image below.
The asset-based development workflows can be inserted into other software development processes, such as the one shown
below. In this example, the asset-based development workflows are inserted into each of the process phases. In some
cases, the business-related assets are only used on the software project and are not produced on the project, whereas
each of the software-related phases produce and consume assets on the project. This example does not address a
situation in which there are one or more central or cross-project asset manufacturing teams.
Scope
There are many areas requiring governance, including:
-
Portfolio Management
-
Program Management
-
Strategic Reuse
-
Enterprise Architecture
-
Compliance Management
-
IT Planning and Oversight
-
Systems Engineering
-
People Management
-
Software Process Improvement
The focus of this governance material will be organizational-level practices for strategic reuse. The material is
organized according to the major focus areas introduced above: planning, definition, enablement, and measurement.
Planning
The reuse strategy is created along with resource estimates and financial estimates. The financial sponsor needs to be
determined and funding allocated. This includes a discussion and decision on funding models.
In typical funding situations, the funds are allocated for the activities to deliver the artifacts for the project.
This relationship changes with the reuse model where the funding for assets and their artifacts may provide value for
several projects.
There are several models for funding the reuse team and related reuse efforts.
-
Overhead funding: The costs for the reuse team are handled in the pool of overhead expenses.
-
Tax funding: Each application development project pays a tax which covers the cost of the reuse team.
-
Payments for assets and services: The application development teams pay for the assets and services they use
from the reuse team.
One approach is to start with overhead funding, and then shift to payments for assets and services. The purpose
for this recommendation is to provide time for startup costs and then move to another funding model, such as for
services or assets, when the initial value has been verified.
Definition
There are multiple workflows that comprise the asset's lifecycle. For example, the activities of submitting an
asset to the repository, or the review and approval process, or the retirement and archiving activities. The workflows
need to be identified, and the key participants understood. Often you must consider the type of asset, or its
categorization (for a specific business domain), as well as which organizational unit owns the asset. All of these are
factors in determining the workflows for assets.
Controlling the access to assets is a key element of governance. Determining who can do what with an asset involves
understanding the asset's intended use and scope. Access control can be determined for assets of a given type, or of a
given classification, or of a given owner. These factors should be considered and the access control should be captured
in the repository.
Enablement
The tools for conducting asset-based development should be selected and set up. Key to this is understanding which
roles will work with which tools throughout the asset-based development process.
Measurement
Identifying the measurements important to your organization is key to the long-term and sustainable use of assets.
Measurement is often tracked at several levels, including:
-
Asset owner and producer measurements: level of investment (hours, money, time) in an asset
-
Asset consumer: level of benefit and value delivered to the asset user
-
Repository: level of activity on the repository
-
Management: value to the organization, return on investment
|