Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 54

Chapter One

Software Process Maturity


Chapter Contents

 Overview of Software Process Maturity


 Process Reference Models

o Capably Maturity Model (CMM)

 CMM for Software Process


 The Five Levels of Software Process Maturity
 The Key Process Areas

2
Overview

 What Makes You Better?


◦ More training
 Know how to use tools
 Have seen some problems before
 Know how things fit together
◦ Familiar with language
 Object, semaphore, recursion, etc
◦ Better process!
 Examples of Better Processes
◦ Incremental coding
 Code a little, test a little
 Compare to writing entire program and testing
◦ Error prevention versus debugging
 Cheaper and easier to prevent than to find bugs

3
Overview …
 What Makes Organizations Better?
◦ Why are some organizations better than others?
◦ Deliver software on time
◦ Deliver with high quality and few defects
 Assume two groups are doing same project, why
would one be better than another?
 Some Possible Answers...
◦ Great people
◦ Smart management
◦ Better tools
◦ Good processes, standards and policies that all team
members know and follow
 Fundamental Assumptions:
◦ Good Process leads to good software
◦ Good Processes reduces risk

4
Software Process

 Software Process
◦ A set of activities, methods, practices and
transformations used to develop and maintain software
◦ A sequence of steps performed for a given purpose
◦ Software process defines the approach of how
software is engineered
◦ Software process is a framework for the tasks that we
are required to build high – quality software
◦ It defines the way in which software development is
organized, measured, supported and improved

5
Software Process …

 A software process is a collection of artifacts,


attributes, activities, methods and procedures.
 We use software process to build up a new
software or maintain a already existing one.
 All organizations involved software development follow
process of some kind, implicit or explicit, reproducible,
instrumented or adaptable.

6
Software Process …
A Process is defined in 3 steps:

 1) Policy
◦ It represents general statements or guidelines of an
organization.

 2) Process
◦ It describes about “what to do” in the process. It has a
overview of key areas like key activities, planning, staffing,
scheduling, risk management etc.

 3) Procedure
◦ It describes about “how to do” in the process.
◦ It identifies tools, methods and techniques to be used in the
process.

7
Development Process Improvement
 In the way of developing or maintaining a software,
introducing new methods for further refinement of
product quality is called Software Process
Improvement.
 First important step in addressing software problems is
to treat the entire development task as a process that
can be controlled, measured, and improved.
 To improve their software capabilities, organizations
must take five steps:
◦ 1- understand the current status of their development process
◦ 2- develop a vision of the desired process.
◦ 3- establish a list of required process improvement actions in
order of priority.
◦ 4- produce a plan to accomplish these actions
◦ 5- commit the resources to execute the plan.

8
Maturity Framework
 The maturity framework, developed at the SEI (soft
ware engineering institute), addresses these five
steps by characterizing a software process into one
of the five maturity levels.
 Software Maturity frameworks can be used by any
software organization to:
◦ 1- Identify its highest priority problems
◦ 2- Assess its own capabilities
◦ 3- Start making improvements.

9
Capability Maturity Model (CMM
What is CMM?

 CMM is a model used to improve the software


process of an organization.
 It was first described by Watts Humphery.
 Later it was developed by Software engineering
Institute (SEI) at Carneige Mellon University.
 It is the most popular and efficient model used for
software process improvement.

10
CMM …
 Framework that describes the key elements of an effective
software process
 Identifying the key practices that are required to increase the
maturity of these processes.
 Describes the principles and practices underlying software
process maturity and is intended to help software
organization improve the maturity of their software processes
in terms of an evolutionary path from ad hoc chaotic,
immature processes to mature software process

◦ Judging the maturity of the software processes of an


organization.

11
CMM …

 Software Process Maturity


◦ Refers to the extent to which a specific process is
explicitly:-
 defined, managed, measured, controlled, and
effective.

 As an organization gains in process maturity, it


institutionalizes its process by policies,
standards and organizational structures.

12
Process Maturity Concepts

 Software Process
◦ set of activities, methods, practices, and
transformations that people use to develop and
maintain software and the associated products (e.g.
project plans, design documents, code, test cases,
user manuals)

 Software Process Capability


◦ describes the range of expected results that can be
achieved by following a software process
◦ means of predicting the most likely outcomes to be
expected from the next software project the
organization undertakes

13
Process Maturity Concepts …

 Software Process Performance


◦ The actual results achieved by following software
process

 Software Process Maturity


◦ Implies potential growth in capability
◦ Extent to which a specific process is explicitly
defined, managed, measured, controlled and
effective
◦ Indicates richness of process and consistency with
which it is applied in projects throughout the
organization

14
What are the CMM Levels?

 Maturity level indicates level of process capability


 The CMM is organized into five maturity levels
 The five levels of software process maturity
◦ Initial
◦ Repeatable
◦ Defined
◦ Managed
◦ Optimizing

15
CMM Levels …

Figure: The five levels of software process maturity


16
CMM Levels …
Level 1: The “Initial” Level
 At this level the software process is characterized as ad hoc, and
occasionally even chaotic/disordered/ disorganized.
 Only few processes are defined
 This period is chaotic(difficulet) without any procedure and process
established for software development and testing.
◦ At this level, frequently have difficultly making commitments that the staff
can meet with an orderly process
◦ Products developed are often over budget and schedule
◦ Wide variations in cost, schedule, functionality and quality targets
◦ Capability is characteristic of the individuals, not of the organization
 Unstable environment

17
CMM Levels …
Level 1 …

Success depends on individual heroes(performance)


Good performance is possible - but
 Requirements often misunderstood, uncontrolled
 Schedules and budgets frequently missed
 Progress not measured
 Product content not tracked or controlled
 Engineering activities nonstandard, inconsistent
 Teams not coordinated, not trained
 Defects proliferate

18
CMM Levels …
Level 1 …
 Organizations at this level can improve their
performance by introducing basic project controls.
 The most important are:

 1-1 Project Management


◦ For the purpose of ensuring effective control of commitments
which requires adequate preparation, clear responsibility, a
public declaration, and a dedication to performance.

 1-2- Management Oversight


◦ A disciplined software development organization must have
senior management oversight that review and approve all
major plans before official commitment.

19
CMM Levels …
Level 1 …

 1-3- Quality Assurance


◦ A quality assurance group is charged with assuring
management that the software development work is
actually done the way it is supposed to be done.

 1-4- Change Control


◦ To develop quality software on a predictable schedule, the
requirements must be maintained with reasonable stability
throughout the development cycle.
◦ Changes will have to be made, but must be managed and
introduced in an orderly way.

20
CMM Levels …
Level 2: Repeatable

 Basic project management processes are established


to track cost, schedule, and functionality.
 Planning and managing are based on experience.
 Policies are enhanced on a project by project basis.
◦ Realistic project commitments based on results
observed on previous projects
◦ Software project standards are well defined and
faithfully followed
◦ Process is disciplined
21
CMM Levels …

Level 2 …
 Earlier successes can be repeated
◦ A necessary process discipline in place.
 repeat earlier successes on projects with similar
applications.
◦ Planning and tracking of project is stable
◦ Realistic plans based on the performance of previous
projects.
◦ Software process capability (Level 2 organizations)
Summarized as disciplined

22
CMM Levels …

What Happens During Level 2?

 Processes become easier to digest and understand


 Projects are better estimated, better planned, and
more flexible
 Quality is integrated into the project, etc.
 Managers and team members spend less time
explaining how things are done

23
CMM Levels …
Level 2 …

The key actions required to advance from the


Repeatable Process to the Defined Process are:
 2-1- Establish a Process Group
◦ which is a technical group that focuses exclusively on
improving the software developing process.
◦ Responsibilities of process groups include:
 defining the development process,
 identifying technology needs & opportunities,
 conducting quarterly management that reviews process
status & performance.

24
CMM Levels …
Level 2 …
 2-2- Establish a Software Development Process
Architecture

◦ That describes the technical and management activities


required for proper execution of the development process.
◦ The architecture is a structural decomposition of the
development cycle into tasks
 2-3- If they are not already in place, introduce a family of
software-engineering methods and technologies.

◦ These include design and code inspections, formal design methods,


library-control systems, and comprehensive testing methods,
prototyping and adoption of modern implementation languages.

25
CMM Levels …
Level 3: Defined
the software process for both management and engineering
activities is documented, standardized, and integrated into a
set of standard software processes for the organization.
Because process is well defined, management has good insight into
technical progress on the project.
Characteristics

◦ The software process is standard and consistent with both software


engineering and management activities
◦ Stable and repeatable.
◦ The process capability is based on a common, organization-wide
understanding of the activities, roles, and responsibilities in a defined
software process.

26
CMM Levels …
Level 3 …
An organization-wide training program is implemented to ensure that
the staff and managers have the knowledge and skills required to
fulfill their assigned roles.
Projects tailor the organization’s standard software process to develop their
own defined software process, for unique characteristics of a project.
◦ This tailored process is referred to in the CMM as the project’s defined
software process.
◦ This defined software process contains a coherent, integrated set of well-
defined software engineering and management processes.
A well-defined process will include:
◦ readiness criteria, inputs, standards and
◦ procedures for performing the work,
◦ verification mechanisms (such as peer reviews), outputs, and
◦ completion criteria.
27
CMM Levels …
Level 3 …
 The key steps to advance to the Managed Process are:
 3-1- Establish a minimum, basic set of process
measurements
◦ to identify the quality and cost parameters of each process step.
◦ The objective is to quantify the relative costs and benefits of each major process
activity, such as the cost and yield of error detection and correction methods.

 3-2- Establish a process database with the


resources
◦ to manage and maintain it.
◦ Cost and yield data should be maintained centrally to guard against
loss, to make it available for all projects, and to facilitate process quality
and productivity analysis.

28
CMM Levels …
Level 3 …

 3-3- Provide Sufficient Process Resources


◦ to gather and maintain this data and to advise project members
on its use.
◦ Assign skilled professionals to monitor the quality of the data
before entry in the database and to provide guidance on
analysis methods and interpretation.

 3-4- Assess the Relative Quality of Each


Product and inform management where quality
targets are not being met.
 An independent quality-assurance group should assess the quality
actions of each project and track its progress against its quality plan.
When this progress is compared with the historical experience on
similar projects, an informed assessment generally can be made.

29
CMM Levels …

What Happens During Level 3?

 Solutions go from being “coded” to being “engineered”


 Quality gates appear throughout the project effort with
the entire team involved in the process, reducing
rework
 Risks are managed and don’t take the team by surprise
 Process Improvement becomes the standard – Cross-
Functional teams look for ways to “short-cut” the
system

30
CMM Levels …
Level 4: Managed
 Detailed measures of the software process and product quality are
collected.
 Both the software process and products are quantitatively understood
and controlled.
 The organization sets quantitative quality goals for software
products and processes.
 Risks in new product development are well understood
 The process capability is quantifiable and predictable
 Software products are of predictably high quality
 MANAGE PROJECTS QUANTITATIVELY
◦ Statistically manage the project’s processes and sub-processes
 MANAGE THE ORGANIZATION QUANTITATIVELY
◦ Understand process performance; quantitatively manage the
organization’s projects
31
CMM Levels …
Level 4 …
 The two fundamental requirements to advance from
the Managed Process to the Optimizing Process:

 4-1-Support automatic gathering of process data.


Some data cannot be gathered by hand, and all
manually gathered data is subject to error and
omission.

 4-2- Analyzing and modifying the process by


using this data to prevent problems and improve
efficiency.

32
CMM Levels …
Level 5: Optimizing
 continuous process improvement is enabled by feedback
from the process and from piloting innovative ideas and
technologies
 The entire organization is focused on continuous process

improvement
 These organizations continuously strive to improve the range

of their process capability, thereby improving the process


performance of their projects.
 Goal is to prevent the occurrence of defects

◦ causal analysis

 OPTIMIZE PERFORMANCE
◦ Identify & eliminate the cause of defects early
 ADOPT IMPROVEMENTS
◦ Identify and deploy new tools and process improvements to meet
needs and business objectives
33
CMM Levels …
Level 5 ….
 The organization has the means to identify
weaknesses and strengthen the process
proactively, with the goal of preventing the
occurrence of defects.
 Innovations that exploit the best software
engineering practices are identified and transferred
throughout the organization.
 Data on process effectiveness used for cost benefit
analysis of new technologies and proposed process
changes

34
Key Process Areas (KPA)

 Issues to address to reach each maturity level


 Related activities for achieving goals
 Except for level 1, each level is decomposed into key
process areas (KPA)
 Each KPA identifies a cluster of related activities that, when
performed collectively, achieve a set of goals considered
important for enhancing software capability
◦ Commitment
◦ Ability
◦ Measurement
◦ Verification
35
KPA …

36
KPA — Repeatable(2)
Level 2 KPA

 Requirements management
 Software project planning
 Software project tracking and oversight
 Software quality assurance
 Software configuration management
 Software subcontract management

37
Level 2 KPAs …
 Requirements Management

◦ Establish common understanding of customers


requirements between the customer & the software
project
◦ Requirements is basis for planning & managing the
software project
◦ Not working backwards from a given release date

 Software Project Planning


◦ Establish reasonable plans for performing the
software engineering activities & for managing the
software project

38
Level 2 KPAs …
 Software Project Tracking & Oversight
◦ Establish adequate visibility into actual progress
◦ Take effective actions when project’s performance
deviates significantly from planned
 Software Subcontract Management
◦ Manage projects outsourced to subcontractors
 Software Quality Assurance
◦ Provide management with appropriate visibility into
 Process being used by the software projects
 Work products

39
Level 2 KPAs …

 Software Configuration Management


◦ Establish & maintain the integrity of work
products
◦ Produce baseline
◦ Baseline authority

40
Key Process Areas — Defined (3)

 Organization process focus


 Organization process definition
 Training program
 Integrated software management
 Software product engineering
 Intergroup coordination
 Peer reviews

41
Level 3 KPAs …

 Organization process focus


◦ Establish organizational responsibility for software
process activities that improve the organization’s
overall software process capability
 Organization process definition
◦ Develop & maintain a usable set of software process
assets
◦ Stable foundation that can be institutionalized
◦ Basis for defining meaningful data for quantitative
process management

42
Level 3 KPAs …

 Training Program
◦ Develop skills & knowledge so that individual can perform
their roles effectively & efficiently

◦ Organizational responsibility

◦ Needs identified by project

 Integrated Software Management


◦ Integrated engineering & management activities

◦ Engineering & management processes are tailored from the


organizational standard processes
◦ Tailoring based on business environment & project needs
43
Level 3 KPAs …
 Software Product Engineering
◦ Technical activities of the project are well defined
(SDLC)
◦ Correct, consistent work products
 Intergroup Coordination
◦ Software engineering groups participate actively
with other groups
 Peer Reviews
◦ Early defects detection & removal
◦ Better understanding of the products
◦ Implemented with inspections, walkthroughs, etc.

44
Key Process Areas — Managed (4)

 Quantitative Process Management


◦ Control process performance quantitatively
◦ Actual results from following a software process
◦ Focus on identifying & correcting special causes of
variation with respect to baseline process

 Software Quality Management


◦ Quantitative understanding of software quality
 Product
 Process

45
Key Process Areas — Optimized(5)

 Process Change Management


◦ Continuous process improvement to improve
quality, increase productivity, decrease cycle time
 Technology Change Management
◦ Identify & transfer beneficial new technologies
 Tools
 Methods
 Processes
 Defect Prevention
◦ Cause analysis of defects to prevent recurrence

46
Overall Benefits of CMM

 Defect rates can be dropped


 Defect detection occurs earlier
 User requirements can be documented, controlled,
and managed
◦ Especially important when users change their minds
 Estimating improves and becomes more precise
 Risk management is a practice
 Development processes remain agile(Sable to move
quickly and easily)

47
CMM Outcomes

 Fewer project overruns


 Better cost prediction (dollars, time)
 Predicted performance improvements

48
Evaluation

 Process maturity is evaluated by SEI teams (and


those trained by them).
 For each Key Process Area, an organization is
rated according to:
◦ Commitment to perform
◦ Ability to perform
◦ Activities performed
◦ Measurement and analysis
◦ Verifying implementation

49
Conclusion

 The software development process maturity model


provides a framework for assessing software organizations
and identifying the priority areas for immediate
improvement.
 It also helps identify those places where advanced
technology can be most valuable in improving the
software development process.
 CMM is not the only model but it the most commonly
used & effective model

50
Self Reading Assignments

 Is CMM is affordable & applicable by all firms?

 Is CMM perfect? If not try to identify the main


pitfalls of CMM

 Try to identify research areas/problem areas in


the area of CMM for your future Masters thesis

51
Assignment 1

 Discuss the Strength & Weakness of at least


three Software improvement Reference
Models
◦ Prepare a short report & submit it
◦ Submission & Presentation date: August 14/2019

52
Paper Review 1
 Find, read and select one article within the area of
Software Process Maturity Frameworks/Models.

◦ Review & write a short summary (max three

pages) of that article

◦ Highlighting the contribution of the article

◦ Submission Date: From August 12 – 15

◦ Presentation Date: August 15/2019

 How to review papers

53
Thank You

54

You might also like