Software Process Improvement (SPI)
Software Process Improvement (SPI)


SEMQ is going to move to www.semq.eu: save the URL!


View available documents with Acrobat Reader - Search PDF files on line

What SPI is?

Starting from mid '80s, a greater attention has been deserved in Software Engineering to the study of software processes, analysing their structure and the best way to be applied for achieving process improvement. "It is a simple task to make things complex, but a complex task to make things simple�, according to Meyer's law. Software process improvement is definable as �the continual and iterative improvement of both the software process and products throught the use of project experiences� (NASA) or as �a deliberate, planned methodology following standardized documentation practices to capture on paper (and in practice) the activities, methods, practices, and transformations that people use to develop and maintain software and the associated products. As each activity, method, practice and transformation is documented, each is analyzed against the standard value added to the organization� (Szymanski & Neff) or again �a plan derived from the recommendations of a SPA that identifies the specific process capability and performance� (M.Paulk, SEI) and �action taken to change an organization's business need and achieve its business goals more effectively� (ISO, SPICE project, Part 9) where each of these definition �gathers� one of the possible dimension, from iterativity, to the need for documentation, to Software Process Assessment as its starting point, till the achievement of company's goals.
Four basic pillars (Kuntz):


References for the Return On Investment (ROI) of Software Process Improvement (SPI) initiatives are a ISERN technical report by El-Eman & Briand and an article by David F.Rico.

The relationship between Total Quality Management (TQM) and Software Process Improvement (SPI) is summarised in the following image:

The relationship between TQM and SPI
where SPI can be seen as the software process side of TQM.

Main SPI Frameworks and Appraisal Methods

Maturity is expressed through a nominal scale, usually with a Likert scale (from 1-min to 5-max), retrieving the ideas and concepts from Phil Crosby's studies. Such instantiations are called staged models, where a certain maturity level can be achieved only if all the practices contained in the "n-1" level have been yet successfully performed.

Sw-CMM
The first and most famous SPI staged model is undoubtely the Sw-CMM (Software Capability Maturity Model) by the Software Engineering Institute (SEI), composed in v1.1 by 18 Key Process Areas (KPA) across the 5 Maturity Levels.
For any detailed information, please click here (official webpage).
On the success of this first model, a family of CMMs have been developed at SEI: People-CMM (P-CMM), Software Acquisition CMM (SA-CMM), Systems Engineering (SE-CMM), Integrated Product Development CMM (IPD-CMM).
Twice a year, SEI reports results from Sw-CMM assessments, from 1987 on, freely downloadable from this page

But what about the possibility to run a process included in a ML upper than ours? Should it be evaluated in an appraisal or not? And which value could it have?
For this reason, an evolution of staged architectures was deployed in the mid '90s, called continuous models, where each process defined in the model can be evaluated on its own, no matter to a predefined order of processes, just an evaluation of most relevant processes for that company/SBU under assessment. Most relevant models with this new architecture type were (in order of appearance): SE-CMM, SPICE (ISO/IEC 15504) and CMMI.

SPICE (ISO/IEC TR-2 15504:1998)
The ISO model for SPI was the JTC1/SC7/WG10 standard named SPICE (Software Process Improvement and Capability dEtermination), improving the well-proven structure of Sw-CMM and refining the list of processes of ISO/IEC IS 12207:1995, on a continuous, bi-dimensional architecture (the two dimensions are: capability and process ones). This new standard (the newest version should be released in mid 2005, with a new process category: ACQ, for acquisition processes) subdivides 40 processes into three groups:

More relevant websites for SPICE are:

CMMI (Capability Maturity Models Integration)
SEI started in 1997 to work on the evolution of Sw-CMM, trying to integrate the several maturity model that an ICT company could have been separately implemented at the same time, on the experience also of the FAA i-CMM and the bi-dimensional architecture introduced with SPICE. CMMI would be a transition continuous model between Sw-CMM and the newest SPICE release, according to the notes in several CMMI documents, even if it seems difficult to really think it will be dismissed in few years. Some differences:

More relevant websites for CMMI are:

The following table tries to summarise main SPI models and related appraisal methods with hyperlinks, where available, to access directly models/methods original documents or relevant information on them.

 

Model

Version

Source

Year

Domain

Assessment

Sw-CMM

1.1

SEI

1993

Software Engineering

Based on:

  • CMM Appraisal Framework (CAF)
  • Maturity Questionnaire(MQ)

SE-CMM

1.1

SEI

1995

Systems Engineering

SE-CMM Appraisal Method (SAM) v1.1

SA-CMM

1.03

SEI

2002

Software Acquisition

SA-CMM Maturity Questionnaire

IPD-CMM

0.98

SEI

1995

Integrated Product Development

 

P-CMM

2.0

SEI

2001

People Management

P-CMM Based Assessment Method Description or

Using SCAMPI for P-CMM Appraisals

Trillium

3.2

Bell

1996

Telecommunication

 

FAA i-CMM

2.0

FAA

2001

Integration of CMMs

FAM - FAA-iCMM Appraisal Method v2.0

TMM

1.0

IIT

1996

Test Maturity Model

Maturity Questionnaire

T-CMM

1.0

Burgess-Drabick

1996

Testing CMM

Maturity Questionnaire

T-CMM

 

NSA

 

Trusted CMM

 

SECAM

1.5

INCOSE

1996

   

SECM

1.0

EIA

 

Systems Engineering

SECM Appraisal Method

SSE-CMM

3.0

NSA

1999

Systems Security Engineering

SSAM 2.0, w/Data Tracking Sheet

M-CMM

 

Niessink

2000

Measurement CMM

 

IT-Service CMM

1.0

Niessink

2005

ICT Services

A2I (Assessment To Improvement)

UMM

 

SERCO

 

Usability Maturity Model

 

Team Roadmap

1.0

Widell

1998

Team Maturity Model

 

PEMM

 

Schmietendorf & Scholz

1999

Performance Engineering

Maturity Questionnaire

Bootstrap

3.2

Bootstrap Institute

1998

Software Engineering

 

SPICE

3.3

ISO/IEC

1998

Software Engineering

ISO/IEC TR-2 15504-5:1998

RAPID

1.0

Rout

2000

Software Engineering for SMEs

Questionnaire

SPIRE

1.0

CSE

1999

Software Engineering for SMEs

 

R-SPICE

1.0

ESI

1999

Reuse

 

Tele-SPICE

1.0

ESI

1999

Telecommunication

 

EFQM-SPICE

2.0

ESI

1998

Business model

 

OO-SPICE

1.0

Univ.Linz

2000

Object Oriented

 

CMMI-DEV

1.2

SEI

2006

Systems+Software+Integr.Prod.+Supplier

SCAMPI 1.2 for Class A appraisals (Based on: ARC 1.2)

CMMI-ACQ

1.2

SEI

2007

Acquisition

SCAMPI 1.2 for Class A appraisals (Based on: ARC 1.2)

CMMI-SVC

1.2

SEI

2009

Service Management

SCAMPI 1.2 for Class A appraisals (Based on: ARC 1.2)

CMMI Sw

1.1

SEI

2001

Software Engineering

SCAMPI 1.1 for Class A appraisals and this other handbook for Class B and C appraisals (Based on: ARC 1.1)

CMMI SE/SW

1.1

SEI

2000

Systems+Software Engineering

SCAMPI 1.1 for Class A appraisals and this other handbook for Class B and C appraisals (Based on: ARC 1.1)

CMMI SE/SE/IPD

1.1

SEI

2000

Systems+Software+Integrated Prod.

SCAMPI 1.1 for Class A appraisals and this other handbook for Class B and C appraisals (Based on: ARC 1.1)

CMMI SE/SE/IPD/SS

1.1

SEI

2000

Systems+Software+Integr.Prod.+ Supplier

SCAMPI 1.1 for Class A appraisals and this other handbook for Class B and C appraisals (Based on: ARC 1.1)

As illustrated, current version of CMMI model(s) is v1.2, released on August 25, 2006.
Main changes in version 1.2 are reported in a list of files provided here (in details: model changes, SCAMPI A Appraisal Method changes and Training changes). Apart from little, fairly minor changes, as described by M.Phillips in a column in a recent issue of "News@SEI":
* to unify the staged and the continuous versions into a unique, single handbook in order to reduce complexity
* to eliminate common features and advanced practices
* to (eventually) integrate SAM and ISM process areas
* to stress more the relevance of achieving customer satisfaction in the informative material
* to (eventually) broaden the coverage of the development environment (currently covered only by the OEI process area
* to consider more the "service management" perspective
* to update also SCAMPI

But the new version 1.3 is coming out: here some anticipations about the points in discussions for an eventual inclusion by 2010 in the different constellations.

Mappings
When is it possible to map models?
A common issue is the request to map objects with a different inner nature. So, it is no so unfrequently to read: how can I map SixSigma with CMM or PMBOK and CMMI (BTW, this presentation by B.Groarke about a joint application of the two at the SSC San Diego)? Or again: in which way can I use MSF (Microsoft Solutions Framework) deliverables with CMMI?
The first question before trying to answer should be: are the "things" intended to compare "comparable"? Are they entities of the same "nature"? The answer is that is not possible to compare a technique with a process model; at least it is possible to qualitatively analyze the way a technique can be used within a certain process or set of processes. In such sense, for instance, it is interesting a 2002 SEI technical note from P.Solomon about the way CMMI can be used to improve Earned Value Management.

Mappings available
Next table presents some mappings among SPI models available on the Web. When a direct mapping does not exists, it would be possible to cross other related existing mappings in order to derive - with care - that relationship.
Sw-CMM CMMI SPICE ISO 9001:2000 TSP EIA/IS 731 SE-CMM v1.1 RUP
Sw-CMM X X X X X
CMMI X X X X X X
SPICE X X X
ISO 9001:2000 X X X
TSP X X
EIA/IS 731 X X
SE-CMM v1.1 X X
RUP X

Not referenced in the table, since it's more an integration than a mapping, People CMM v2 supports integrated product development teams in the IPPD extensions of CMMI v1.1.

Other sources about the comparison between CMMI and RUP:
A tutorial by B.Gallagher & L.Brownsword
A Rational whitepaper for achieving CMMI ML2 using IBM Rational's solutions, including RUP, updating a previous paper about how to achieve Sw-CMM ML2/3 with RUP
Enhancing RUP for CMMI compliance: a methodological approach
A CMMI Maturity Level 2 assessment of RUP, by M.Grundmann (Dec2005)

ROI for SPI Initiatives

One of the most relevant questions about implementing an SPI initiative is: how much will it return and how many months for the break-even point? Several papers and presentations tried during last years to describe and report experiences for providing ROI values. Here there is a short list of references about this interesting issue:

the 1997 report by Khaled El Emam & Lionel Briand on "Cost and Benefits of Software Process Improvement" (ISERN-97-12)
a more recent report always by Khaled, dated 2003, on ROI models for Static Analysis Tools (you need to register to the SEIR for free to access it)
the DACS's Software TechNews vol.5 no.4
An STSC2002 Conference presentation by J.Statz & B.Solon
IEEE Software - Vol 21 No.3 (May/June 2004) -- ROI in the Software Industry
A new book by David F.Rico, with a series of related metrics
A recent SEI Special Report on the Demonstration of the impact and benefits of CMMI, that's an evolution ten years ago from the SEI/CMU-94-TR-013 document (see also this 1999 presentation by the Process Group based on those SEI data)
"ROI from SPI" by Sami Zahran
A 1999 TechReport by T.McGibbon (DACS) - A Busines Case for SPI (revised): measuring ROI from SwEngineering & Management
A 1997 paper by Herb Krasner on the payoff for these initiatives
A list of articles and technical reports (most of them with URLs) from the Software Productivity Consortium
An experience in a Sw-CMM ML5 company by K.Dymond, V.Govilkar & A.Kumar

True and False "Maturity Models": the MM-mania

Looking at the different existing SPI models, it seems to be a misuse of the "Maturity Model" labeling: read for instance this paper on the "MM"-mania (in the following, we list th 34 models with related links/websites, for your eventual interest, where available):

1. Capability Maturity Model Integration (CMMI)
2. Capability Maturity Model for Software (SW-CMM)
3. People Capability Maturity Model (P-CMM)
4. Software Acquisition Capability Maturity Model (SA-CMM)
5. Software Engineering Capability Maturity Model (SE-CMM)
6. Integrated Product Development Capability Maturity Model (IPD-CMM)
7. IT Service Capability Maturity Model (IT Service CMM)
8. Organizational Project Management Maturity Model (OPM3)
9. Services Maturity Model
10. Self-Assessment Maturity Model (SAMM)
11. Testing Maturity Model (TMM)
12. Web Services Maturity Model
13. Security Maturity Model (SMM)
14. Operations Maturity Model
15. e-Learning Maturity Model
16. e-Government Maturity Model
17. Earned Value Management Maturity Model (EVM3)
18. Outsourcing Management Maturity Model
19. Change Proficiency Maturity Model
20. Performance Engineering Maturity Model (PEMM)
21. IT Architecture Maturity Model (ACMM)
22. Information Process Maturity Model (IPMM)
23. Project Management Maturity Model (PMMM)
24. Programme Management Maturity Model (PMMM)
25. Learning Management Maturity Model (LM3)
26. Automated Software Testing Maturity Model
27. Website Maturity Model
28. PM2 Maturity Model
29. Internet Maturity Model
30. Usability Maturity Model
31. Software Reliability Engineering Maturity Model
32. System Security Engineering Capability Maturity Model (SSE-CMM)
33. Configuration Management Maturity Model
34. Broccoli Maturity Model

But the list does not end here: there are also:
* Software Maintenance Maturity Model (S3M)
* Risk Management Maturity Model (RMMM)
* e-Government Maturity Model
* Business Process Maturity Model (BPMM), by B.Curtis & C.Weber (and a presentation by D.Ho on the state-of-the-art on Process Maturity Models, dated 2004)
* Documentation Maturity Model (DMM)
* Metrics Data Base Maturity Model (MDBMM)
* ISM3 (Information Security Management Maturity Model)
* Agile Maturity Model (AMM) (see Slide 26/31)
* KPI Rule Maturity Model (RMM)
* Requirement Maturity Model (RMM)
* PRTM Customer Requirement Maturity Model (RMM)
* IBM/Rational Requirement Maturity Model (RMM)
* Supply Chain Maturity Model (SCMM)
...
A MM should be intended in the way Phil Crosby produced his Quality Management Maturity Grid and be referred in the Sw-CMM way to the "process" entity).
An example of this trend is an interesting technique (not a model), called OSSM (Open Source Maturity Model), with the aim to help in comparing and choosing OS products. Reading the document, the "maturity" in OSMM is referred to the "OS product maturity to be evaluated" and also "model" is not properly used, since it is described a 7-steps procedure for evaluating OS products for selection according to several indicators (also here the "product indicators" seem to be expressed as a two-tier quality model, as ISO/IEC 9126, with 4 characteristics and 12 metrics).

New SPI topics faced

Starting from the analysis of technical literature, some interesting topics are open for discussion. In particular:

while some other practical questions are, for instance, about:

Quick Guides

When dealing with SPI models, you have to read a hundreds of pages. Therefore, in the everyday practice, it could be useful a 'summary' of main elements. Here in the following there are some 'quick guides' on a two-fold A4 sheet. In particular:

Publications


[Bio Sketch] [Misurare il Software] [Publications] Home Page [QEST & LIME models] [Presentations] [Links]

Last update: March 7, 2009
Previous update: July 21, 2008
Created: January 7, 2001

Hosted by www.Geocities.ws

1