What is SPI?
SPI involves understanding existing processes and changing these processes to improve product quality and/or reduce costs and development time.
What is SPI?
SPI provides organisations with a powerful means of assessing their current capabilities for developing software systems and, in doing so, identifying their strengths and weaknesses. The underlying theme of SPI is that by understanding and defining an organisations current software development processes, organisations can determine the areas that can be controlled and manipulated in order to achieve a particular product effect (Humphrey, 1995).
Why SPI?
Customer Satisfaction Productivity
Quality
Process Improvement
Delivery Time
89
90
91
92
93
94
95
96
97
98
After SPI
80
Defects
60
40
20
84
85
86
87
88
89
90
91
92
93
Niazi, M., Wilson, D. and Zowghi, D. Implementing Software Process Improvement Initiatives: An empirical study. The 7th International Conference on Product Focused Software Process Improvement, LNCS. 222-233. 2006
Niazi, M., and M, Ali Babar, D. Implementing Software Process Improvement Initiatives: An Analysis of Vietnamese Practitioners Views, submitted to ICGSE 2008
How SPI?
CMMI, ISO 9001:2000, SPICE
Business Objectives New Development Process
?
Better Meets
A Model
Development Process
How SPI?
ISO 9001:2000 ISO/ IEC 15504 CMM
23
Assessment phases
Pre-Assessment/ Pre-Planning Assessment Cycle
Planning Fact finding Fact analysis
25
Assessment phases
Pre-Assessment/ Pre-Planning
Investigate business needs Understand the business Understand corporate culture Define scope and boundaries Availability of resources
26
Assessment phases
Planning
This involves defining the assessment activities, resources, time scale and logistics. The assessment plan should contain deliverables, milestones and quality plans. Selection of assessment team. Training the assessment team. Gantt diagrams Pert charts
27
Assessment phases
Fact gathering
This involves gathering the data and information about the current state of the software process and practices as they exist in the organisation. It also involve gathering the views of individual. Selection of fact gathering approaches (interviews, questionnaire etc). Distributing and collecting questionnaire responses. Conducting interviews.
28
Assessment phases
Fact analysis
This involves analysing the facts gathered in order to identify strengths and weaknesses based on an accurate picture of the current state of the software process. Analysis of questionnaire and interviews. Analysis of the evidence gathered. Conducting interviews.
Reporting
This involves summarising the findings and recommendations and presenting them back to the sponsor.
29
Assessment phases
The Post-Assessment Phase
This phase will vary depending on the business context of the assessment. Implementing the process improvement actions recommended. Managing and monitoring the process improvement plan.
30
32
Maturity Levels
contain
CMM Structure
Organized by
Common Features
address Implementation or Institutionalization describe
33
contain
Key Practices
Infrastructure or Activities
The KPAs
Each KPA is described by identifying the following characteristics: Goals: the overall objective that a KPA must achieve Commitment: requirements (imposed on organization) that must be met to achieve the goals, and provide proof of intent to comply with the goals Abilities: those things that must be in place (organizationally and technically) that will enable the organization to meet the commitments Activities: the specific tasks that are required to achieve the KPA function Methods for monitoring implementation: the manner in which the activities are monitored as they are put into place Methods for verifying implementation: the manner in which proper practice for the KPA can be verified. Eighteen KPAs are defined across the CMM
34
Managed Defined
Organization process focus Organization process definition Training program Integrated software management Software product engineering Intergroup coordination Peer reviews Requirements Management Software project planning Software project tracking and oversight Software subcontract management Software quality assurance Software configuration management 35
Repeatable
Initial
RM
PP
PT
SM
QA
CM
Commitment to Perform
Ability to Perform
Verifying Implementation
36
37
Requirements Management
Purpose
To establish a common understanding between the customer and the software project of the customers requirements that will be addressed by the software project
Goals
Scope
Involves establishing and maintaining an agreement with the customer on the requirements for the software project Agreement is the basis for estimating, planning, performing, and tracking the projects software activities
1. System requirements allocated to software are controlled to establish a baseline for software engineering and management use 2. Software plans, products, and activities are kept consistent with the system requirements allocated to software
38
Commitment
Written organizational Policy
Activities 1. The software engineering group reviews the allocated requirements before they are incorporated into the software project. The software engineering group uses the allocated requirements as the basis for software plans, work products, and activities. Changes to the allocated requirements are reviewed and incorporated into the software project. REQUIREMENTS MANAGEMENT
39
Measurement
Determine the status of the activities for managing the allocated requirements
2. Ability
1. 2. 3. Responsibility assigned Requirements documented Adequate resources & funding Training for requirements management activities
Verification
Activities reviewed with senior management on a periodic basis. Activities are reviewed with the project manager on both a periodic and eventdriven basis. SQA group reviews/ audits
3.
4.
Goals
Scope
Involves: o developing estimates for the work to be performed o establishing the necessary commitments o defining the plan to perform the work Plan provides the basis for initiating the software effort and managing the work
1. Software estimates are documented for use in planning and tracking the software project. 2. Software project activities and commitments are planned and documented. 3. Affected groups and individuals agree to their commitments related to the software project.
40
Commitment
Designated Software Project Manager Written organizational policy for planning a software project
Activities The software engineering group participates on the project proposal team. Software project planning is initiated in the early stages The software engineering group participates with other affected groups in the overall project planning throughout the project's life. Software project commitments made to individuals and groups external to the organization are reviewed with senior management according to a documented procedure
41
Measurement
Determine status of the software planning activities
SW PROJECT PLANNING
Ability
Documented and approved statement of work Responsibility for s/w development plan Adequate resources and funding for project planning Training - estimation & planning
Verification
Periodic Senior management review Review with project manager on both periodic and event driven basis Software Quality Assurance group reviews and /or audits
42
Goals 1. Actual results and performances are tracked against the software plans. 2. Corrective actions are taken and managed to closure when actual results deviate significantly from the software plans. 3. Changes to software commitments are agreed to by the affected groups and
Scope
Involves: tracking and reviewing software accomplishments and results against documented estimates, commitments, and plans adjusting plans based on actual accomplishments and results
individuals.
44
Commitment
Project Software Manager Written Policy
Activities A documented software development plan is used for tracking the software activities and communicating status. The project's software development plan is revised according to a documented procedure. Software project commitments and changes to commitments made to individuals and groups external to the organization are reviewed with senior management according to a documented procedure.
Measurement
Determine status of the software tracking and oversight activities
Ability
SW Development plan (doc & appr) Project SW Manager resp Adequate resources Training - technical & personnel aspects
Verification
Periodic Senior management review Review with project manager on both periodic and event driven basis Software Quality Assurance group reviews and /or audits
45
46
47
Goals 1. The prime contractor selects qualified software subcontractors. 2. The prime contractor and the software subcontractor agree to their commitments to each other. 3. The prime contractor and the software subcontractor maintain ongoing communications. 4. The prime contractor tracks the software subcontractors actual results and performances against its commitments.
Scope
Involves: o selecting a software subcontractor o establishing commitments with the subcontractor o tracking and reviewing the subcontractors performance and results
Not Applicable
48
Scope
Involves: o reviewing and auditing the software products and activities to ensure that they comply with the applicable procedures and standards o providing the software project and other appropriate managers with the results of those reviews and audits
Goals 1. Software quality assurance activities are planned. 2. Adherence of software products and activities to the applicable standards, procedures, and requirements is verified objectively. 3. Affected groups and individuals are informed of software quality assurance activities and results. 4. Noncompliance issues that cannot be resolved within the software project are addressed by senior management.
49
Commitment
Written Policy
Activities
A SQA plan is prepared for the software project according to a documented procedure The SQA groups activities are performed in accordance wit h the SQA plan.
Measurement
Cost and schedule status of SQA activities
Ability
Responsible Group Adequate resources Training - SQA activities Members of SW project orientation
The SQA group participates in the preparation and review of the project's software development plan, standards, and procedures. The SQA group reviews the software engineering activities to verify compliance The SQA group audits designated software work products to verify compliance.
50
51
Goals 1. Software configuration management activities are planned. 2. Selected software work products are identified, controlled, and available. 3. Changes to identified software work products are controlled. 4. Affected groups and individuals are informed of the status and content of software baselines.
Scope
Involves: o identifying configuration items/units o systematically controlling changes o maintaining integrity and traceability of the configuration throughout the software life cycle
52
Commitment
Written Policy
Activities A SCM plan is prepared for each software project according to a documented procedure. A documented and approved SCM plan is used as the basis for performing the SCM activities. A configuration management library system is established as a repository for the software baselines. The software work products to be placed under configuration management are identified.
Measurement
Determine status of the SCM Activities
Ability
Authority defined SCM group exists Adequate resources Training - objectives, procedures of CM Training - SW engg and other groups
53
54
55
Goals 1. Software process development and improvement activities are coordinated across the organization. 2. The strengths and weaknesses of the software processes used are identified relative to a process standard. 3. Organization-level process development and improvement activities are planned.
Scope
Involves: o developing and maintaining an understanding of organization and project software processes o coordinating the activities to assess, develop, maintain, and improve these processes
57
Commitment
Written Policy Sr. Management Sponsorship Sr. Management Oversees
Activities
Measurement
Determine status of the organizations process development and improvement activities
The software process is assessed periodically, and action plans are developed to address the assessment findings. The organization develops and maintains a plan for its software process development and improvement activities. The organization's and projects' activities for developing and improving their software processes are coordinated at the organization level.
58
Ability
Group responsible exists Adequate resources Training
Verification
Periodic Senior management review
59
Goals
Scope
Involves developing and maintaining the organizations standard software process and related process assets The organizations standard software process describes the fundamental elements that each project incorporates and tailors to fit the project
60
Commitment
Written Policy
Activities
The organization's standard software process is developed and maintained according to a documented procedure. The organization's standard software process is documented according to established organization standards. Descriptions of software life cycles that are approved for use by the projects are documented and maintained. Guidelines and criteria for the projects' tailoring of the organization's standard software process are developed and maintained.
Measurement
Determine status of the organizations process definition activities
Ability
Adequate resources and funding Training - for the process group
Verification
Software Quality Assurance group reviews and /or audits
61
62
Training Program
Purpose
To develop the skills and knowledge of individuals so they can perform their roles effectively and efficiently
Goals 1. Training activities are planned. 2. Training for developing the skills and knowledge needed to perform software management and technical roles is provided. 3. Individuals in the software engineering group and softwarerelated groups receive the training necessary to perform their roles.
Scope
Involves: o identifying the training needs of the organization, the projects, and individuals o developing and/or procuring training to address these needs
63
Commitment
Written Policy
Activities
Each software project develops and maintains a training plan that specifies its training needs. The organization's training plan is developed and revised according to a documented procedure.
Measurement
Determine status of the training program activities Quality of the training program
Ability
Responsible Group Adequate resources & Funding Training group to have necessary skills SW Managers orientation
The training for the organization is performed in accordance with the organization's training plan.
Verification
Periodic Senior management review Periodic evaluation Reviewed and / or audited
Training courses prepared at the organization level are developed and maintained according to organization standards
TRAINING PROGRAM
64
Training Program
A waiver procedure for required training is established and used to determine whether individuals already possess the knowledge and skills required to perform in their designated roles. Records of training are maintained.
65
Goals
Scope
Involves: o developing the projects defined software process by tailoring the organizations standard software process o managing the software project according to this defined software process
1. The projects defined software process is a tailored version of the organizations standard software process. 2. The project is planned and managed according to the projects defined software process.
66
Commitment
Written Policy
Activities The project's defined software process is developed by tailoring the organization's standard software process according to a documented procedure. Each project's defined software process is revised according to a documented procedure. The project's software development plan, which describes the use of the project's defined software process, is developed and revised according to a documented procedure.
67
Measurement
Determine the effectiveness of the integrated software management activities
INTEGRATED SW MANAGEMENT
Ability
Adequate resources and funding Training - tailoring of processes. Software Managers training
Verification
Periodic Senior management review Review with project manager on both periodic and event driven basis Software Quality Assurance group reviews and /or audits
68
69
Goals
Scope
Involves performing the engineering tasks to build and maintain the software using appropriate tools and methods Includes requirements analysis, design, coding, integration, and testing
1. The software engineering tasks are defined, integrated, and consistently performed to produce the software. 2. Software work products are kept consistent with one another.
70
Commitment
Written Policy
Activities Appropriate software engineering methods and tools are integrated into the project's defined software process. The software requirements are developed, maintained, documented, and verified by systematically analyzing the allocated requirements according to the project's defined software process. SOFTWARE PRODUCT ENGINEERING
Measurement
Determine the functionality and quality of the software products Determine status of SE Engg. activities
Ability
Adequate resources and funding Training - technical areas Orientation on related SW engineering disciplines Orientation on technical aspects of the project
Verification
Periodic Senior management review Review with project manager on both periodic and event driven basis Software Quality Assurance group reviews and /or audits
71
72
73
Intergroup Coordination
Purpose
To establish a means for the software engineering group to participate actively with the other engineering groups so the project is better able to satisfy the customers needs effectively and efficiently
Goals 1. The customers requirements are agreed to by all affected groups. 2. The commitments between the engineering groups are agreed to by the affected groups. 3. The engineering groups identify, track, and resolve intergroup issues.
Scope
Involves the disciplined interaction and coordination of the project engineering groups with each other to address system-level requirements, objectives, and plans
74
Commitment
Written organizational policy
Activities The software engineering group and the other engineering groups participate with the customer and end users, as appropriate, to establish the system requirements. Representatives of the project's software engineering group work with representatives of the other engineering groups to monitor and coordinate technical activities and resolve technical issues. INTERGROUP COORDINATION
Measurement
Determine status of the intergroup coordination activities
Ability
Adequate resources and funding Support Tools Training - for all managers in teamwork Orientation - Task leaders Training - Members in teamwork
Verification
Periodic Senior management review Review with project manager on both periodic and event driven basis Software Quality Assurance group reviews and /or audits
75
Intergroup Coordination
A documented plan is used to communicate intergroup commitments and to coordinate and track the work performed Critical dependencies between engineering groups are identified, negotiated, and tracked according to a documented procedure. Work products produced as input to other engineering groups are reviewed by representatives of the receiving groups to ensure that the work products meet their needs. Intergroup issues not resolvable by the individual representatives of the project engineering groups are handled according to a documented procedure.
76
Intergroup Coordination
Representatives of the project engineering groups conduct periodic technical reviews and interchanges.
77
Peer Reviews
Purpose
To remove defects from the software work products early and efficiently To develop a better understanding of the software work products and of defects that might be prevented
Goals
Scope
Involves a methodical examination of work products by the producers peers to identify defects and areas where changes are needed
1. Peer review activities are planned. 2. Defects in the software work products are identified and removed.
78
Commitment
Written organizational Policy
Activities Peer reviews are planned, and the plans are documented. Peer reviews are performed according to a documented procedure. Data on the conduct and results of the peer reviews are recorded.
Measurement
Determine the status of the peer review activities
Ability
Adequate resources & funding Training - how lead peer reviews Training - Peer review obj. etc
Verification
SQA group reviews/ audits
PEER REVIEWS
79
80
81