A Framework for Software Product Line Practice, Version 5.0
The activities involved in any software development effort have to be financed; this practice area addresses how. Funding sources and models vary according to organizational culture and the nature of the software product being developed. If multiple copies of the software product are to be marketed, the organization usually appropriates development funds to a business unit, or the business unit appropriates its own funds. New products often get funded initially out of research and development allocations. If a product is being made specifically to serve the needs of one customer, the customer usually provides the funds. The funding of product maintenance is often dealt with separately and may come from a source other than that of the development financing. Whatever the source, somehow the funds are procured to support what it takes to develop and then evolve the software product. Good estimates are required so that an adequate amount is allocated, thereby providing a stable funding source through product completion.
Aspects Peculiar to Product Lines
A software product line requires funding to get it off the ground. Investment is required for any technology change. In the case of product lines, funding is needed to prepare the organization for a product line approach and may involve training, different development processes, different management practices, and so forth. Funding is also needed to establish a core asset base, to perform analyses (such as achieving an understanding of the relevant domains, scoping, requirements engineering, architecture definition, required variation mechanisms, and so on), and to establish a production infrastructure in accordance with the organization's product line adoption plan and concept of operations (CONOPS). This funding must be sufficient for the core assets to be of high quality and have the appropriate applicability. Once the product line is up and running, it must be sustained and evolved. The core assets must be kept current; new assets may need to be developed; the analyses must be updated; the infrastructure must be modernized. Funding must be stable and enduring so that the core assets can be maintained and the associated product line practices and tools can be supported and improved.
Depending on the approach takenproactive, reactive, or incrementaldifferent funding profiles are required over time. Once a product line is fully operational, development costs can be apportioned to each new product in a relatively straightforward manner. Often, the key funding question, though, for a product line organization is how to fund the core assets that will be used across several productsmost of which will probably be created long after the core assets are initially put in place.
The required funding's magnitude and profile over time should be defined in a business case for the product line. Since a business case explains how the organization will make money by adopting the product line strategy, it must also explain what the organization must invest (and when) to realize the projected payoff. (See the "Building a Business Case" practice area.) The goal of the "Funding" practice area is continually evaluating and planning how the funds needed to develop and sustain the product line will be obtained commensurate with how the scope, business case, and CONOPS evolve. Funding involves evaluating and deciding what strategies can be employed to equitably share/distribute the cost of developing a product line capability and sustaining (and evolving) its ongoing operation.
Transitioning to a product line operation most often occurs in parallel with ongoing operations, because few organizations have the luxury of stopping either in-progress or planned developments while they change course to adopt a product line approach. As a result, new or innovative sources of funding for the organization are often required to support the launch and evolution of the product line.
Although funding may seem to be a pedestrian or esoteric practice area, it has far-reaching consequences for an organization that is relying on a software product line approach. Cummins, Inc., for example, used a funding model to insure the adoption of core assets by business units that otherwise may not have been inclined to participate in the product line effort [Clements 2002c, Ch. 9].
Application to Core Asset Development
No matter what kind of product line approach an organization takes, it needs to provide funds for managing, developing, and sustaining the core assets as they evolve over the life of the product line. These assets include a broad spectrum of artifacts (requirements, business case, scope, plans, architecture, components, tests) and other elements of the production infrastructure (equipments, processes and tools) that support their development, usage, maintenance, and evolution. The funding required for core asset development can be broken down into planning and analysis, asset development, infrastructure development, and product line sustainment and evolution, corresponding to the first four activities included in the table below. The available funding and the funding model chosen influence the production strategy, which consequently influences the production method and ultimately the production plan.
Application to Product Development
Once a product line is operational and products are being produced on a steady basis, product development costs must be covered. They are usually apportioned to each new product in accordance with the requirements negotiation and technical planning process. The initial funding needs to cover all aspects of managing and developing the particular product in accordance with the production plan and product line CONOPS.
Typically, product development activities are funded predominantly out of product-specific funds. Consequently, the development costs are often not included in estimates of the funding required for developing a product line capability. That does not mean that these estimates are unnecessary or unimportant. On the contrary, funding estimates are a very important (and essential) element in developing a business case for adopting a product line approach and determining the projected return on investment (ROI). Occasionally, the cost of developing the "first product" is considered (and paid for) as part of the cost of developing a product line. In any event, participating projects need a cost (and schedule) estimate so that they can submit a budget for the funds they will require for their product development based on the product line approach.
Similarly, funds for sustaining and evolving the products once they are fielded are also typically obtained from project-specific sources. The benefit that these product development groups realize is that the sustainment costs are substantially lower because the individual products are part of a family of products that share a large number of core assets that are sustained (and enhanced) by the product line organization. Moreover, because the reliability of these core assets is improved as a result of this centralized sustainment effort, the cost of sustaining an individual product is lower.
The funding that is required for product development can be broken down into product development, sustainment, and evolution, corresponding to the last set of activities listed in the table below.
Funding strategies and sources depend on the fiscal infrastructure of the product line enterprise. This infrastructure includes the organizational structure, the mission and functions of the organizational units, the amount and type of funds allocated to these units, and the policies and procedures they must follow to plan and obtain funding. There may be instances in which an existing fiscal infrastructure may not be sufficiently flexible to accommodate unique funding requirements for product lines. The following table identifies potential funding strategies and sources that may be employed to share/distribute equitably the cost of developing a product line capability and sustaining its ongoing operation. These strategies and sources are a representative set that, when adapted and taken in combination, can affect a complete funding infrastructure for a product line initiative.
The Xs shown in the table indicate how applicable an identified strategy is to the funding of the indicated activity. Three Xs indicate that the strategy is considered highly suitable, two Xs indicate that it is moderately suitable, and one X indicates that it may be only marginally suitable.
General Applicability of Funding Strategies to Product Line Activities
The applicability (suitability) of a particular strategy in a given organizational setting depends on that organization's culture, fiscal infrastructure, and strategic goals and objectives. Use this table as a starting point for your organization.
Each funding strategy listed in the table is summarized below.
Product-specific funding (for an individual customer, for example): In this strategy, each product project provides the funding that is needed for the identified product line activities. While product-specific funding is the predominant means of funding product development, it may be used to fund core asset development as well. Although product projects are often viewed (and properly so) as a primary source of funding, they may be reluctant to pay for aspects of product line operations that they feel are the responsibility of the parent product line organization. As indicated in the table, this funding reluctance may extend to elements of general product line planning and analysis, infrastructure support, and sustainment, because they will also be of direct benefit to other projects involved in the product line. In these areas, other funding strategies are often more effective and should be considered carefully.
Direct funding from corporate sponsor/program: This strategy is based on having the corporate-level/program sponsor selectively fund elements of the product line, especially those in the launch of the product line, that are related to the planning and development of an initial set of core assets and the necessary production infrastructure.
Product line organization's discretionary funds: This strategy involves using discretionary funds, such as research and development monies, that are directly under the control of the product line organization to offset the greater up-front costs of developing a product line. If the organization responsible for managing and implementing the product line does not have its own discretionary funds (apart from the sponsoring or parent organization), this strategy, in effect, is no different than the "direct funding from corporate sponsor/program" strategy.
Borrowing funds from corporate sources: This strategy is analogous to taking out a bridge loan or a mortgage. It involves borrowing product line funds up front and negotiating a suitable payback plan. The funding could cover the launching of the product line through core asset development and development of the first product or another negotiated milestone. The terms might include deferring any payback until the delivery of the first product with a fixed payment schedule or incremental payments tied to an index that is commensurate with product line maturation and fiscal stability. As in a conventional loan, the payoff amount would include cumulative interest over the life of the loan.
First product project funds effort: In this strategy, the first product project, in addition to funding its own product development, agrees to provide the funding for other designated activities such as product line planning and analysis, infrastructure establishment, core asset development, sustainment, and evolution. Under this strategy, the extent of the funding provided by the first project may be limited to establishing an initial product line capability, after which other sources of funding are used to sustain and evolve the product line.
Multiple projects banded together to share costs: In this strategy, multiple product development groups (projects) agree to form an alliance and jointly fund the cost of developing a product line capability that may potentially extend to funding all product line operations including product line sustainment and evolution. Even in this approach, however, each project is usually responsible for funding its own product development part of the effort. This approach is similar to the one that CelsiusTech took in its product line development initiative: it pooled contract monies from individual customer projects and collectively developed a family of products [Brownsword 1996a]. Another example is the Owen cooperative model from Hewlett-Packard [Toft 2000a].
Taxing of participating projects: This strategy involves funding selected elements of the product line by levying a tax on each participating product development group (project). This taxing strategy can use a flat tax or a prorated tax that is based on some particular product attribute (such as product funds, project size, or estimated number of lines of code). The "product-side tax on customers" and "fee based on core asset usage" strategies described below can be viewed as special cases of a taxing strategy.
Product-side tax on customers: In this strategy, a surcharge is assessed to fund selectively designated product line activities other than product development. This surcharge is then budgeted into the total estimated cost of developing a product for the customer based on a product line approach.
Fee based on core asset usage: This strategy involves charging projects a fee proportional to their usage of the core assets in their product development and/or end products. This strategy is similar to enacting a license fee for using a commercial, off-the-shelf (COTS) product. In fact, in cases in which there are multiple instances of the same product (for example, an application that is operational in many different aircraft), the product line organization may charge a set fee for every copy made or a licensing fee corresponding to the projects' usage of the core assets. Charging such fees is one possible means of obtaining funds for sustaining product line operations.
Prorated cost recovery: The object of this strategy is to have the projects that have benefited from the product line pay back their fair share of the costs of any software development efforts or services that the product line organization performed on their behalf. This strategy could be extended to include prorating all of, or just elements of, the total cost of sustaining product line operations among the participating project/product developers.
Inadequate attention to the funding model for a product line will result in a core asset base and products whose owners compete in unhealthy ways for the finite resources available. The result will result be poor quality on both sides and probably resentment across the divide. A poor funding model can result from any of the following factors:
inflexibility of the organization's fiscal infrastructure: Each organization's fiscal infrastructure may not be immediately adaptable to the funding of a product line approach. As such, cultural and infrastructure changes may have to be planned and implemented. Such an implementation may take an inordinate amount of time and effort to modify, especially if the infrastructure involves regulations and statutes. Because of such financial barriers, the product line approach may not be initiated, or there may be ongoing contention for funds to sustain and evolve the product line.
waning management commitment: Management's commitment to stay the course and provide adequate funding and resources until the product line reaches critical mass and can sustain itself is key to success. Accordingly, managers must treat the funding of a product line as a longer term, strategic investment that is essential to providing the organization with the means and agility to deliver new products faster and cheaper. Management is responsible for ensuring that short-term crises, competing project demands, and other changes that have the potential to impact funding do not perturb the product line effort. This risk extends to convincing key technical people and their direct managers that funding software product line efforts should, within reason, take precedence over current project demands.
externally imposed fiscal constraints: Organizational cuts and cost-saving mandates can limit the ability to fund new approaches, such as core asset development. Government agencies are especially prone to the annual "battle of the budget" and changes in fiscal policies, but commercial organizations are not immune. These yearly upheavals bring with them the risk of limiting sustaining funds for a product line.
lack of strategic focus: Product line initiatives require strategic planning. Organizations have to overcome a "research and development mind-set" in which funds are spent on a small exploratory effort over two or three years without having plans for how this will evolve into a way of doing business that involves everybody. Moreover, key technical people, or their direct managers, need to be convinced of the priority of funded product line efforts. One of the sources of major frustration and deep-seated resentment is a funding model that lets recalcitrant parts of the organization continue on their one-product-at-a-time way, effectively undercutting the efforts of core asset group that is struggling and lacks the necessary resources.
inadequate funding: If the funding allocated for a product line approach is insufficient, the funds could be spent with little residual benefits. That is, if an organization values only product development and is only paying lip service to product lines, any effort toward establishing a product line will be wasted. Unfortunately, such an occurrence may forever polarize the organization and the workforce against any future consideration of adopting a product line approach.