15
Characterizing the Software Process: A Maturity Framework Author: Watts S. Humphrey Slides by: Sachin Hiriyanna, Software Engineer

Characterizing the Software Process: A Maturity Framework

Embed Size (px)

Citation preview

Page 1: Characterizing the Software Process:  A Maturity Framework

Characterizing the Software Process:

A Maturity FrameworkAuthor: Watts S. Humphrey

Slides by: Sachin Hiriyanna, Software Engineer

Page 2: Characterizing the Software Process:  A Maturity Framework

Dr. Watts S. Humphery • Director of Software process program at Software

Engineering Institute (SEI), Carnegie Mellon University. • Worked at IBM from 1959 to 1986 as the Director of

Programming quality and process. • Received BS in physics from University of Chicago, MS

in physics from the Illinois Institute of Technology and MBA from University of Chicago.• Written two books: Managing for Innovation: Leading

Technical People and Switching circuits with computer Applications.

Page 3: Characterizing the Software Process:  A Maturity Framework

Motivation• Software quality and productivity must improve.

But where to start?• The amount of money spent on Software in the US

grows approximately 12% each year.• It is worthwhile to examine the characteristics of a

truly effective software process.• If process is under statistical control, repeating the

work will produce roughly the same result.• Need of measurement for statistical control.

Page 4: Characterizing the Software Process:  A Maturity Framework

Dev process Improvements1. Understand the current status of the their development

process or processes.

2. Develop a vision of the desired process.

3. Est. a list of required process improvement actions in order

of priority.

4. Produce a plan to accomplish these.

5. Commit the resources to execute the plan.

Page 5: Characterizing the Software Process:  A Maturity Framework

Process maturity levels

Source: http://www.kennethghartman.com/wp-content/uploads/2012/11/CMM-e1351980596464.png

Page 6: Characterizing the Software Process:  A Maturity Framework

Level 1: Initial Process• Ad-hoc and chaotic.

• No formalized procedures, cost estimates or project plans.

• Tools are neither well integrated nor uniformly applied.

• No serious maintenance.

• No senior management oversight.

• No Quality assurance.

• Change control is disaster.

Page 7: Characterizing the Software Process:  A Maturity Framework

Level 2: Repeatable Process• Has commitment control.

• Face major risk when presented with Brand new

challenge.

• Introduction of new tools or technologies will be a risk.

• Organization changes can be highly disruptive.

• Teams learn the ropes through word of mouth.

Page 8: Characterizing the Software Process:  A Maturity Framework

Level 2: Repeatable ProcessHow to Upgrade to the Defined process• Establish a process group to focus exclusively on the

software development process.• Establish a Software development process

architecture.• Introduce a family of Software Engineering

methods and Technologies.

Page 9: Characterizing the Software Process:  A Maturity Framework

Level 3: Defined Process

• Most of the Software Organizations.

• Achieved the foundation for major and continuing

progress.

• Defined process architecture.

• Not very much scared of New technologies or Tools.

Page 10: Characterizing the Software Process:  A Maturity Framework

Level 3: Defined ProcessHow to Upgrade to the Managed process

• Establish a basic set of process measurements to identify the quality and cost parameters.• Establish a process database with resources to

manage and maintain it.• Provide sufficient project resources and advise

members on its use.• Assess the relative quality of each product.

Page 11: Characterizing the Software Process:  A Maturity Framework

Level 4: Managed Process• Gathering and maintaining of huge amount of data,

but is expensive. • Basic set of process measurements to identify the

quality and cost parameters.• Established process database with resources to

manage and maintain it.• Provides sufficient project resources.• Have advisory board.• Assessment of the relative quality of each product.

Page 12: Characterizing the Software Process:  A Maturity Framework

Level 4: Managed ProcessHow to Upgrade to the Optimized processTwo requirements:

1. Support automatic gathering of process data. But some data cannot be gathered automatically.

2. Use this data effectively to both analyze and modify the process accordingly to prevent problems and increase efficiency.

Page 13: Characterizing the Software Process:  A Maturity Framework

Level 5: Optimizing Process• Data actually available to tune the process itself.• Helps managers understand where help is needed.• Helps provide the people with best support they

require.• Professional communicate quantitatively.• Provides framework for professional to understand

their work performance and see how to improve.• Ensures process discipline to produce high quality

software and deliver best support of any kind.

Page 14: Characterizing the Software Process:  A Maturity Framework

Further…• The SEI is using this framework as a foundation for

a continuing program of assessments and software process development.• These assessment methods are made public and

preliminary data is now available from dozens of software organizations.

Page 15: Characterizing the Software Process:  A Maturity Framework

Thank you