Explain Software Process Improvement with various elements of SPI framework.
What is SPI?
Software Process Improvement (SPI) methodology is defined as a sequence of tasks, tools, and techniques to plan and implement improvement activities to achieve specific goals such as increasing development speed, achieving higher product quality or reducing costs.
(Figure: SPI Framework)
Five activities of SPI Framework
- Assessment and Gap Analysis
- Assessment examines a wide range of actions and tasks that will lead to a high quality process. ?
- Consistency: Are important activities, actions and tasks applied consistently across all software projects and by all software teams? ?
- Sophistication: Are management and technical actions performed with a level of sophistication that implies a thorough understanding of best practice? ?
- Acceptance: Is the software process and software engineering practice widely accepted by management and technical staff? ?
- Commitment: Has management committed the resources required to achieve consistency, sophistication and acceptance? ?
- Gap analysis the difference between local application and best practice represents a “gap” that offers opportunities for improvement.
- Education and Training
Three types of education and training should be conducted:
- Generic concepts and methods. Directed toward both managers and practitioners, this category stresses both process and practice. The intent is to provide professionals with the intellectual tools they need to apply the software process effectively and to make rational decisions about improvements to the process. ?
- Specific technology and tools. Directed primarily toward practitioners, this category stresses technologies and tools that have been adopted for local use. For example, if UML has been chosen for analysis and design modeling, a training curriculum for software engineering using UML would be established. ?
- Business communication and quality-related topics. Directed toward all stakeholders, this category focuses on “soft” topics that help enable better communication among stakeholders and foster a greater quality focus.
- Selection and Justification
- Choose the process model that best fits your organization, its stakeholders, and the software that you build. ?
- Decide on the set of framework activities that will be applied, the major work products that will be produced and the quality assurance checkpoints that will enable your team to assess progress. ?
- Develop a work breakdown for each framework activity (e.g., modeling), defining the task set that would be applied for a typical project. ?
- Once a choice is made, time and money must be expended to install it within an organization and these resource expenditures should be justified.
- Installation/Migration
- Actually software process redesign (SPR) activities. Scacchi [Sca00] states that “SPR is concerned with identification, application, and refinement of new ways to dramatically improve and transform software processes.” ?
- three different process models are considered:
- the existing (“as-is”) process, ?
- a transitional (“here-to-there”) process,
- The target (“to be”) process.
- Evaluation
- assesses the degree to which changes have been instantiated and adopted, ?
- The degree to which such changes result in better software quality or other tangible process benefits.
- the overall status of the process and the organizational culture as SPI activities proceed