Software Process Improvement (SPI)
by Ronni Kahalani, Copenhagen School of Design & Technology.
With inspiration from the book Software Engineering - A Practitioner's Approach.
A set of activities that lead to better software processes and
higher quality software delivered in a timelier manner.
Who am I?
Thank you for stopping by.
I’m Ronni. I hope you’re well and wish you a safe and worthy journey.
This presentation is part of the Software Engineering Series, from my lectures at Copenhagen School of Design & Technology.
You can view the Introducing Myself, if you want to know a little more about who I am.
All my presentations and materials are free and available at my blog post: Software Engineering.
Don’t let me uphold you,
continue your journey, go to next slide.
2
Agenda
Intro
Extend your understanding of software engineering.
The following questions are addressed in the chapters that follow:
Once these questions are answered, you'll understand topics that may have a profound impact on software engineering in the years to come.
Intro
Long before the phrase "software process improvement" was widely used, Roger S. Pressman (RSP), worked with major corporations in an attempt to improve the state of their software engineering practices.
“Making Software Engineering Happen”
“For the past ten years I have had the opportunity to help a number of large companies implement software engineering practices. The job is difficult and rarely goes as smoothly as one might like - but when it succeeds, the results are profound...”
Intro
But all is not sweetness and light.
Even though these words were written almost three decades ago, they remain equally true today.
Quick Look
Quick Look
What Is SPI?
Continually reducing waste, problems, defects, maintenance- and support costs and alike.
What Is SPI?
SPI…the term…implies many things…
Transforms the existing approach to software development into something that is more…
What Is SPI?
Because SPI is not free, it must deliver a return on investment.
The results of improved process and practice must lead to reduce…
Approaches to SPI
Although an organization can choose a relatively informal approach to SPI, the vast majority choose one of several SPI frameworks.
SPI framework defines:
Process Assessment in SPI
Approaches to SPI
An SPI framework assesses the "maturity" of an organization’s software process and provides a qualitative indication of a maturity level.
Note: There is no universal SPI framework.
As applied, the sponsoring constituency must establish mechanisms to:
Maturity Models
The intent of the maturity model is to provide an overall indication of the "process maturity" exhibited by a software organization.
That is…
Example
The Software Engineering Institute's original Capability Maturity Model suggests 5 levels of maturity ranging from initial to optimized.
Is SPI for Everyone?
For many years, SPI was viewed as a "corporate" activity.
Can a small company initiate SPI activities and do it successfully?
Therefore, regardless of the size of the software organization, it's reasonable to consider the business motivation for SPI.
If it feels like overkill, it probably is…
The SPI Process
Initiating, diagnosing, establishing, acting, and learning.
The SPI Process
The hard part of SPI isn't the definition of characteristics that define a high-quality software process or the creation of a process maturity model.
The Software Engineering Institute has developed IDEAL.
“An organizational improvement model that serves as a road map�for initiating, planning, and implementing improvement actions”
Defining 5 distinct activities that guide through SPI activities:
The SPI Process
Here is a different road map for SPI, based on the process model for SPI originally proposed.
It applies a commonsense philosophy that requires an organization to…
These 5 activities are applied in an iterative manner in an effort to foster continuous process improvement.
Assessment and Gap Analysis
Stated simply, before you begin any journey, it's a good idea to know precisely where you are.
Assessment examines a wide range of actions and tasks that will lead to a high-quality process.
The software organization must establish generic mechanisms such as:
…and many others
Assessment and Gap Analysis
Each is assessed to determine whether all the following questions have been addressed.
Assessment and Gap Analysis
As the process assessment is conducted, focus on the following issues:
These indicates the amount of cultural change that will be required to achieve meaningful improvement.
Education and Training
A key element of any SPI strategy is education and training for practitioners, technical managers, and more senior managers who have direct contact with the software organization.
3 types of education and training should be conducted:
In a modern context, education and training can be delivered in a variety of different ways.
Selection and Justification
Once the initial assessment activity has been completed and education has begun, a software organization should begin to make choices.
Methods and tools are chosen to populate the software process.
Decide…
If the SPI assessment activity indicates specific weaknesses (e .g., you have no formal SQA functions), you should focus attention on process characteristics that will address these weaknesses directly.
Selection and Justification
Develop an adaptable work breakdown for each frame work activity.
As choices are made, education and training should be coordinated to ensure that understanding is reinforced.
Selection and Justification
Be sure to consider the culture of the organization and the level of acceptance that each choices will likely elicit.
It is true that a bad choice can do more harm than good, but "paralysis by analysis" means that little if any progress occurs and process problems remain.
…it's sometimes better to pull the trigger and make a choice, rather than waiting for the perfect solution.
Installation/Migration
Installation is the 1st point at which a software organization feels the effects of changes triggered by following the SPI road map.
Installation/Migration
Installation and migration are actually software process redesign (SPR) activities.
“SPR is concerned with identification, application, and refinement of new ways�to dramatically improve and transform software processes .”
…stated by Scacchi
When a formal approach to SPR is initiated, 3 different process models are considered:
If the target process is significantly different from the existing process, the only rational approach to installation is an incremental strategy.
– Small changes over time.
Evaluation
Although it is listed as the last activity in the SPI road map, evaluation occurs throughout SPI.
Assesses the…
Both qualitative factors and quantitative metrics are considered during the evaluation activity.
Risk Management for SPI
In fact, more than half of all SPI efforts end in failure.
Risk Management for SPI
SPI often fails because risks were not properly thought through and no contingency planning occurred.
“In fact, more than half of all SPI efforts end in failure”
Among the most common risks are:
Risk Management for SPI
A software organization should manage risk at 3 key points.
SPI risk factor categories:
Risk Management for SPI
Within each category, a number of generic risk factors can be identified.
Example:
The organizational culture has a strong bearing on risk.
Generic Risk Factors:
…continues on next slide…
Risk Management for SPI
Using the risk factors and generic attributes as a guide, a risk table (Chapter 26) can be developed to isolate those risks that warrant further management attention.
CMMI - Capacity Maturity Model Integration
A complete SPI framework developed by the Software Engineering Institute since 1990s.
CMMI represents a process meta-model in 2 different models, as a:
Describes a process in 2 dimensions
CMMI Capability Level
Software Process Improvement (SPI)
Helps increase Productivity and reduce Time to market and Defect reports.
Capacity Maturity Model Integration (CMMI)
Process Areas
CMMI Divides the process in to 22 different process-areas
Project Management
Engineering
Process Management
Support
Maturity Levels
0 – Incomplete
Work may or may not get completed.
1 – Initial
This level contains no process areas.
2 – Managed (Basic Product Management)
3 – Defined (Process Standardization)
4 – Quantitatively Managed
5 – Optimizing (Continuously)
CMMI - Capability Levels
CMMI - Capability Levels
Capability levels:
CMMI
The CMMI defines each process area in terms of "specific goals" and the "specific practices" required to achieve these goals.
In addition, the CMMI also defines a set of 5 generic goals and related practices for each process area.
Relation between maturity levels and process area - See Figure 28.3
CMMI - People CMM
A software process, no matter how well conceived, will not succeed without talented, motivated software people.
The goal of the People CMM is…
Other SPI Frameworks
Although the SEI's CMM and CMMI are the most widely applied SPI frameworks, several alternatives have been proposed and are in use.
SPI Return on Investment
SPI is hard work and requires substantial investment of dollars and people. A manager will ask the question:
"How do I know that we'll achieve a reasonable return for the money we're spending?"
They contend that improved process will result in...
But can these qualitative benefits be translated into quantitative results?
The classic return on investment (ROI) equation is:
SPI Return on Investment
Benefits
Costs
In the real world, these quantitative benefits and costs are sometimes difficult to measure with accuracy, and all are open to interpretation.
SPI Trends
David Rico - Reports that a typical application of an SPI framework such as the SEI CMM can cost between $25,000 and $70,000 per person and take years to complete!
Summary
The goal is to improve process quality and, as a consequence, improve software quality and timeliness.
To successfully improve its software process, an organization must exhibit the following characteristics:
Questions?
Anything? What’s on your mind? Come on ask me anything…
Feedback?
Thank you for your precious time.
I hope it was worth it and would love to get your feedback.