A Framework for Software Product Line Practice, Version 5.0
Organizational planning pertains to strategic or organizational-level planning. (For information on the foundations of planning, see the "Technical Planning" practice area.) Organizational planning relies on these same foundations, but its scope transcends individual projects.
As discussed in the "Technical Planning" practice area, when considering the planning activity, it is useful to distinguish between the process by which plans are created and the plans that result from that process. The process for generating plans is often very similar regardless of the organizational level at which it is applied. The process should differ primarily by who is involved and the scope of the effort to be planned. For organizational planning, senior and mid-level managers are often primary participants. The scope of the organizational planning process should include planning for cross-project activities or activities that are outside the scope of any project.
Regarding the plans themselves, there are different types of plans for addressing different purposes. Examples of organizational management plans include organizational strategic plans, funding plans, technology adoption plans, and organizational risk management plans.
As discussed in the "Technical Planning" practice area, a collection of interrelated plans is often more appropriate for accomplishing larger tasks than a monolithic master plan. Because of the broad scope of organizational planning, you should expect dependencies to exist among these plans and subordinate project plans. These relationships should be an explicit part of the plans.
Aspects Peculiar to Product Lines
There is nothing fundamentally different about a planning process for product lines. However, there are certain types of organizational management plans that are unique to product lines including
- product line adoption plans: These plans describe how to transition an organization from its current way of development to a product line approach. (See the "Launching and Institutionalizing" practice area.)
- core asset funding plans: Funding the development and maintenance of the core asset base is likely to be done at the organizational level. (See the "Funding" practice area.)
Besides these plans, other organizational plans that you might find in any development organization will take on a decidedly product line flavor. Organizational planning is used to facilitate the implementation of any of the technical management or organizational management practice areas that have organizational implementations [Clements 2005a]. The major plans are associated with
- configuration management (CM): In a product line effort, CM is more complicated and reaches across all of the core asset and product-building projects and possibly even across product lines. It is usually appropriate to plan CM at the organizational level.
- tool support: Tools are often considered core assets, and one of the savings a product line organization enjoys comes from using the same tool environment across all of its product efforts. If common tool support is provided and maintained across products in an organization, it should be planned organizationally.
- training: Like tool support and CM, it pays to consider training at the cross-product level. An organizational plan for training should address: identifying training needs, establishing and maintaining the training capability, providing the training, and managing the training process including record keeping and effectiveness assessment [SEI 2006a].
- structuring the organization: This plan will detail the transition steps and shifts in responsibility, outline any logistical or physical relocation, and assign schedules and resources.
- risk management: This plan will assign people to participate in the process, account for any training or other preparation required, and lay out an engagement schedule.
There may be a recurring need to develop some of these types of plans. For example, in the case of a phased rollout in different parts of the organization, it may be useful to develop tailorable plan templates or provide examples that serve as core assets themselves to seed the planning process.
In addition to the plan dependencies that result from being at the organizational level, there will be additional dependencies owing to the product line approach. Organizational plans will have dependencies with project plans, and project plans will have external dependencies among other project plans. Organization-level plans may be necessary to coordinate project-to-project dependencies. In a product line context, the project plans can relate to core asset development, product development, or activities that cross between them.
Application to Core Asset Development
Organizational plans strongly related to core assets include those for
- funding: Typically, core asset funding issues must be addressed at the organizational level.
- priorities for core asset development: Especially when new core assets are being developed, product development projects may have competing needs for when particular core assets become available. Organization-level planning may be necessary to resolve the conflicts.
- configuration management: In a multiple-project product line effort, it may be appropriate to plan the CM of core assets at the organization level.
- risk management: Typically, an organizational risk management process would include risks related to core assets. Mitigation plans might be needed to address some of those risks.
- product line adoption: A significant part of a product line adoption plan will be a description of how core assets will be created and maintained initially.
And, as is the case with technical (or project) plans, the organizational plans themselves (or parts of the plans) make fine core assets. Ideally, reusable plans should be tailorable in the same fashion as other core assetsthat is, they have defined points of commonality and variability. Cost, effort, and schedule estimates may be useful candidates, particularly for reuse, as are work breakdown structures, goals, strategies, and objectives.
Application to Product Development
Typically, product development planning is handled below the organization level. Organizational planning would primarily provide constraints and priorities to guide project planning. Specifically, that might include
- product line adoption: The product line adoption plan should describe what initial product development will be accomplished (for example, which project or projects will serve as pilot efforts for launching the product line). Project-level plans would detail how that would be accomplished.
- risk management: Typically, an organizational risk management process would include risks related to product development. Mitigation plans might be needed to address some of those risks.
- CM: In a multiple-project product line effort, it may be appropriate to plan the overall CM at the organization level. Project plans would have to be compatible with the CM plan.
Some characteristics of a good planning process and good plans are described in the "Technical Planning" practice area. These characteristics are equally applicable to organizational planning.
The primary risk is that the organization may fail to identify and effectively plan the activities that require organization-level planning, resulting in a muddled product line effort that will fail to meet its goals and expectations. Other risks cited in the "Technical Planning" practice area are also relevant to organizational planning.
Clements, Jones, McGregor, and Northrop discuss project management in a software product line organization.
CMMI for Development, V1.2 provides guidance about project planning.