Introduction
Organizations often execute multiple projects. Therefore, there is a need to define a common process framework (CPF) that defines the broad framework and umbrella activities applicable to all projects. The CPF can be adapted for each project based on the characteristics of the project.A CPF provides a starting point to a project team to define a process that will be suitable for a particular project without compromising on good software engineering. It captures the best practices so that they are available to all projects. It helps to ensure that the process defined for a project meets some basic quality requirements.
In order to use the CPF, it is important to establish the adaptation guidelines that help the project team in adapting the CPF and setting up the process definition for a project. The adaptation guidelines should be easy to use so that the project teams can benefit from the CPF.
In this section, we will discuss how a CPF is established and used in an organization.
The common process framework
The CPF is based on a software process model. It provides a definition of the framework activities and the umbrella activities that apply to all the projects.Each activity is composed of actions such as analysis, design, coding, and testing, and every action, in turn, has a number of alternative task sets. The task sets are defined in sufficient detail to form a firm process layer for any project.
Establishing a CPF
In order to establish a CPF, an organization needs to identify and select a software process model that best suits the projects undertaken in the organization. The CPF should be based on this process model.Next, the organization needs to identify the framework and umbrella activities that apply to all projects irrespective of the size and complexity of the projects. For each framework and umbrella activity, the applicable actions need to be detailed, and for each action, alternative task sets need to be described.
After establishing the CPF, the adaptation guidelines that help in adapting the CPF should be developed. Each project team can then use the CPF and the adaptation guidelines to select the task sets that suit the characteristics of a project. A project team can also fine-tune the selected task sets further, if required.
Let us now discuss in detail the steps involved in establishing the CPF.
Selecting a process model
An organization may execute different types of projects. Projects may differ in aspects such as their size and scope. For example, there may be large or small projects that deal with either the development or the maintenance of software products.It is essential that the CPF is useful for all the projects that an organization undertakes. Therefore, the CPF should be adaptable for the range of projects that the organization executes. While establishing a CPF, the organization should study all the types of projects that it undertakes and examine the suitability of various software process models for these projects. It should then identify the process model that best suits the organization. The CPF is then defined based on the abstract strategy that the selected process model provides.
Selecting a process model: Factors to be considered
Some factors that should be considered while selecting a software process model are listed below.
- Do customers know what they want clearly enough to give the specific requirements for the software product to be built?
- Are the customer requirements expected to remain constant throughout the estimated period of project development?
- Does the customer want incremental deliveries of the software product?
- Is it possible to complete the project within a fixed budget and a specified schedule?
An organization may need more than one standard software process model for the various projects it undertakes. For example, a linear sequential model may be suitable for shorter projects while for large systems with evolving requirements, an evolutionary model may be suitable. In such cases, the CPF should be developed so that the software team can select the most appropriate model.
Selecting a process model: The spiral process
The process model used as the base for the CPF should be one that is suitable for the range of projects of the organization.The spiral process model is an evolutionary process model and addresses situations with evolving requirements by using iteration and incremental delivery, combined with a risk-driven approach. The spiral process model is often used as a base for establishing a CPF. This is because it is very flexible and can be adapted for almost any type of project and product. In addition to being used for evolutionary software, the spiral model can be used for simpler projects in which a linear sequential process model or simple prototyping would suffice. The model has a number of variable components that can be selected suitably for such adaptation.
Let us now discuss how the framework and umbrella activities are identified for a CPF.
Identifying framework activities
Framework activities are performed in every project, though the actions and the task sets within each should be selected depending on the project characteristics. There are typically five to seven framework activities in a CPF.
For example, a generic set of framework activities that is applicable to most software projects in an organization has activities such as communication, planning, modeling, construction, and deployment.
Identifying umbrella activities
Apart from the framework activities, the organization also needs to identify the umbrella activities for the CPF. Umbrella activities need to be established at the beginning of a project because they span the entire software process.Some examples of umbrella activities are software project management (SPM), formal technical reviews (FTRs), software quality assurance (SQA), software configuration management (SCM), documentation preparation and production, reusability management, measurement, and risk management.
Similar to the framework activities, each umbrella activity also needs to be detailed.
Let us find out how framework and umbrella activities are detailed.
Defining a CPF activity
Each framework and umbrella activity should be detailed into one or more actions that it is composed of. For example, the framework activity, modeling, consists of two actions—analysis and design.Each action, in turn, is described in a number of alternative task sets so that a project team can select a task set that is suitable for that action. The collection of the available task sets should be large enough to cover the range of projects the organization undertakes.
Describing task sets
The next important step in establishing the CPF is describing task sets. The task sets should encapsulate what the software engineering and project management resources of the organization consider most suitable and practical. Project teams select task sets depending on the project characteristics and any available adaptation guidelines. The definition of task sets for an action should address all the broad situations for which the CPF will be used.
For example, a particular software engineering action of a framework activity could have five task sets defined, each corresponding to five project types that the organization typically executes.
Let us see how a task set can be described.
Describing a task set
Each task set should be described in sufficient detail. For this, the constituent tasks should be identified. The description of a task set should include:
- The tasks to be performed
- The work product to be built
- The QA checkpoints to be achieved
- Any project milestone to be achieved
A task set should be described in sufficient detail so that a project team can understand what is intended and can fine-tune the description as required. The description should enable the project team to accomplish the tasks of a project correctly.
Adaptation guidelines
After establishing the CPF, it is necessary to establish the adaptation guidelines so that the project teams are able to adapt the CPF easily. The adaptation guidelines are used to select actions and task sets that are suitable for a project from the comprehensive generic description in the CPF. The project team can then further modify the selected task sets to make them suitable for a project.
The adaptation guidelines should provide a systematic and easy-to-use method for choosing suitable actions and task sets.
The adaptation guidelines should provide a method of identifying the relevant project characteristics. This requires defining the criteria that will be used to characterize projects and identifying the various options for each criterion.
The adaptation guidelines should help the project teams to select the actions and task sets based on the characteristics of a given project. The guidelines should provide a mapping of the possible project characteristics to the actions and task sets. This can be used to select the actions and task sets that are suited to a project.
The task sets selected using the adaptation guidelines should provide enough discipline to achieve high software quality, should be practical, and should not burden the project team with unnecessary work.
Adapting the CPF
While adapting the CPF, all the basic framework and umbrella activities have to be retained. However, the applicable actions and the task set for each action depend on the project characteristics. For example, we can't have a project without the umbrella activity of SCM, though the project characteristics such as size, complexity, and formality determine the tasks that will be performed as part of SCM. For each activity, the adaptation guidelines should help a user identify which actions are applicable.
Within each action, the adaptation guidelines should help a user select the most suitable task set from the alternative task sets available.
Adaptable Process Model
To understand how a CPF can be established and used, let us discuss the Adaptable Process Model (APM).The APM is an implementation of the CPF by R.S. Pressman & Associates, Inc. It is a generic process framework with detailed task sets. It provides online guidance for the selection of a task set.
To define its process, using the APM, the project team has to specify the characteristics of the project along two axes that specify the project type and the degree of rigor. Based on the project characteristics specified, the APM recommends a task set for a project. The project teams can further fine-tune the tasks in this recommended task set.
APM: The adaptation approach
To obtain the process for a specific project using the APM, the project team should first specify a project type. The project type is a classification based on the type of work to be done in a project. Based on the project type, the APM lists a set of relevant adaptation criteria. The project team provides grades and weights for the criteria depending on the specific project characteristics. These grades and weights are used by the APM to compute a task set selector (TSS) and suggest a classification of the 'degree of rigor'. The degree of rigor is the relative degree of formality with which the software engineering tasks will be conducted in a project. The project team can select the degree of rigor based on the project characteristics.
The APM then recommends a task set for the project, which can be further modified by a user by adding or removing tasks.
0 comments:
Post a Comment