Subscribe by Email


Showing posts with label CMM. Show all posts
Showing posts with label CMM. Show all posts

Thursday, July 12, 2012

What are CMM and CMMI? What is the difference between the two?


In this article we take up two very important topics CMM and CMMI! Though these two concepts sound too much similar with only a difference of “I” there is a whole lot of difference between the two. 

The CMM stands for “capability maturity model whereas the CMMI stands for capability maturity model integration. 

What is CMM?


- CMM was born as a registered service mark of the CMU (Carnegie Mellon University). 
- CMM is quite a popular model these days that was created post the study of some data that was collected from many different organizations which had made a contract with the USDD (U.S. department of defense), the organization that had funded the whole research. 
- This model is regarded as the birth point for the engineering giant SEI or software engineering institute.
- An effective approach for improving the quality of the software system or application that is under development can be planned by applying this model to that concerned software system or application. 
- Previously, it was thought that the CMM model can only be applied to the software systems and applications.
- But eventually it was proved it cane be very effectively applied to the other processes as well. Gradually a concept of this model was developed which could also be applied to the business.

What is CMMi?


- CMMI is the abbreviation for capability maturity model integration.
- It is rather like a simple approach for improving the processes whose basic aim lies in helping the organizations in improving their overall performance.
- Unlike CMM, CMMI can effectively drive the improvement process across a whole organization, project or even across a division of the organization. 
- Current version 1.3 of CMMI is supportable by most of the organizations. 
- With the aid of CMMI, following things can be done:
  1. Traditionally separate organizational functions can be properly integrated.
  2. Process improvement priorities as well as goals can be set.
  3. Guidance for quality processes can be provide and
  4. A point of reference for the appraisal of the current processes can be provided etc.
To say three major aspects are addressed in CMMI as mentioned below:
  1. Product and service development
  2. Service establishment, management and delivery and
  3. Product and service acquisition.

Differences between CMM and CMMi

Now let us clearly state what all the differences among these two! 

- Firstly the CMM was developed for software systems and applications whereas the CMMI was developed as a means for the integration of the past and future models and build some initially integrated models. 
- Gradually, CMM models gained success and found their use in the following concepts also:
  1. Systems engineering
  2. Software acquisition
  3. Integrated public development
  4. Software quality assurance and so on.
- Though all the above mentioned CMMs proved to be quite useful they presented some of the drawbacks also as mentioned below:
  1. They were overlapping.
  2. They were contradicting
  3. They lack an understandable interface
  4. They lack standardization and
  5. They all displayed different levels of detail etc.
All these drawbacks led to a quite expensive and utter confusing improvement programs that conflicted with one another. 
- CMMI is nothing but an upgraded version of the CMM which has got much wider applications than CMM. 
- CMM model can be considered to be a reference model constituting of matured practices in a discipline that is specified but difficult to integrate as and when needed. On the other hand, the CMMI can be considered to be a more matured set of practices as well as guidelines. 
- It was resultant of the combination of the best components of individual disciplines of CMM. 


Wednesday, June 6, 2012

Differentiate between Capability Maturity Model (CMM) and Scrum?


In the year of 2002, when both the CMM (capability maturity model) and agile software development models were on the list of the highest demanded software development methodologies, the CMM model and agile processes were considered to be to pretty much same.
But, later in the same year two of the software engineers Jain and Turner argued that these two software development models or processes have much difference between them if investigated in detail.
This article discusses about the differences between the cmm model and agile methods. There is no fixed or appropriate way to develop a software system or application but at different stages a different methodology is to be adopted. 

Coming to the scrum, it is a pre defined development life cycle based entirely up on the agile principles. The CMM on the other hand comprises of many practices that can be adopted by a team so as to improve its overall performance. The CMM model pays more attention to the areas that require change and project management. 
Another aspect of the CMM is focussed up on the following three aspects:
1.      Engineering skills
2.      Organizational learning
3.      Advanced project management

Differences between Capability Maturity Model and Scrum



Difference #1:
- In CMM, it is required that an understanding is developed with the requirement
providers  based upon the definition of the requirements.
- In Scrum, there are reviews of the requirements listed in the product back log with
development team and product owner.

Difference #2:
- In CMM, commitment to the requirements is demanded from all those involved in    
the project. 
- In Scrum practice, the commitment is needed in the sprint planning and release 
planning.

Difference #3:
- In CMM, practice any changes to be made are directly carried out on the
requirements.
- In Scrum practice, the changes are recorded in the product back log and are worked 
up on in the later sprints.

Difference #4:
- In CMM, it involves the identification of the inconsistencies among the work 
products and the requirements.
- In Scrum practice, the inconsistencies are identified during the sprint planning and
release planning sessions.

Difference #5:
- CMM develops a top level work breakdown structure for the proper estimation of the  
project scope. 
- In scrum, the standard tasks combined with the specific project tasks define the 
scope of the project.

Difference #6:
- In CMM, the attributes of the work products and tasks are maintained kept for the 
maintenance of the estimates.
- In scrum, this task is done with the help of story points.

Difference #7:
- In CMM, the whole project budget and schedule is prepared in CMM.
- In scrum, a project is broken down in to several sprints and for every sprint there is a 
separate schedule and back log.

Difference #8:
- The main estimates that are carried out in CMM are of the resources required to 
perform the development tasks. 
- On the other side, the scrum maintains the estimates of the sprint back log, release 
plan and assignments.

Difference #9:
- In CMM a plan of involvement is prepared for all the stakeholders separately during 
the planning process.
- In Scrum, there are predefined core and ancillary roles that saves a lot of time.

Difference #10:
- In CMM, at the end of the day the project plan is re-conciliated to check out the 
available resources.
- In scrum, there is sprint planning meetings and daily scrum meetings to do this task.

Difference #11:
- The project development in CMM is tracked by monitoring the actual values of the 
project parameters against the already prepared project plan. 
- On the other hand the scrum is aided by the sprint burn down charts for the same 
purpose. 






Wednesday, March 7, 2012

What is meant by peer review in software testing?

In the process of software development at every stage the software system or application under development has to be reviewed be it before its completion or after its completion. Many techniques have been designed to carry out an effective review of the software systems or applications.

What is Peer Review in Software Testing?

- Peer review is one such technique employed in software testing.

- Peer review is a type of software review technique which involves the examination of the software product or code or documentation by its author or developer as well as by his/ her colleagues for the evaluation of the quality of the product and its technical content.

- The number of peers for carrying out a peer review may vary from one to any number the author wishes.

- The process of peer review is aimed at providing an engineering practice which is well disciplined for the detection as well as the correction of the bugs and errors in the software product.

- It is also aimed at the prevention of the defects from leaking in to the operational field.

- These aims of the peer review have been defined on the basis of the CMM or capability maturity model.

- Peer reviews form an essential part of the software development cycle and proves to be very helpful in the detection of the bugs in the early stages of the software development.

- A requirements problem as identified by the peer review during the requirements testing is a lot easier and cheaper to rectify than what it would have been in the development stages of the software testing and architecture.

Now the question comes “how the peer review is different from the other kinds of reviews?”

- Peer reviews are somewhat different from their counterpart of management reviews.

- The management reviews are performed by the management representatives rather than by colleagues as in peer review.

- The management reviews are focussed up on the control and management purposes and not on the technical evaluation like the peer review.

- Peer reviews are also a way apart from the software audit reviews in the way that the software audit reviews are carried out by the personnel external for the evaluation of the level of compliance with the standards, specifications and agreements etc.

- Several formal and informal approaches have been designed for carrying out the peer reviews.

- Buddy checking is one informal approach.

- Some formal approaches are:

1. Technical peer reviews
2. Walk throughs and
3. Software inspections.

- The roles, processes and structures for the above mentioned formal processes are governed by the IEEE standards.

- Management representatives are chosen to carry out a peer review only very rarely when specific technical expertise is required or when the documentation to be reviewed is of management level.

- The third formal approach i.e., software inspection involves the assignment of specific roles to the participants, quantification of the stages by defining the entry and exit criteria, and capturing of the software metrics.

- The peer review carried out for the open sources is commonly known as open source review.

Advantages of Peer Reviews

- Peer reviews have always been observed as a powerful methodology for a great improvement in the software quality.

- A peer review can be performed in many forms like an inspection, team review, pair programming, peer desk check or pass around etc.

Which approach is to be followed is decided on the basis of the rigor, cost, spectrum of formality and of course effectiveness!

The cheapest review method should be selected that is more effective in reducing the project associated risks. But, the inspections are always the best approach and are fit for both high level and low level risk projects.


Tuesday, January 24, 2012

What are different characteristics of Capability Maturity Model (CMM)?

Capability maturity model or CMM as it is often abbreviated. It is a development model developed after a prolonged study of the data collected from various organizations from all over the world.

Characteristics of Capability Maturity Model
1.The development of this model was funded by the USDD (United States department of defence).

2.The capability maturity model became the foundation for the development of software engineering institute or SEI as it is popularly known as.

3.The term “maturity” emphasises process optimization and level of formality.

4.Processes are optimized from ad-hoc practices to steps that have been formally defined.

5.Nowadays this model is being used effectively for management of result metrics.

6.Capability maturity model has proved to be great help in active optimization of the processes.

7.This model allows improvement in the development processes of an organization.

8.It is an effective and good approach towards improvement of any organization’s development processes.

9.This model is securely based upon the frame work of process maturity which was developed in 1989.

10.Initially it was used for objective assessment of the processes carried out by the contractors of the government to keep a track on the project.

11.CMM is not only used in the field of software engineering but, it is also applied to organizational processes of a business.

12.It is used in other fields like:
- Software development
- System engineering
- Software maintenance
- Project management
- System acquisition
- Risk management
- Information technology
- Human capital management and
- Services

Where is Capability Maturity Model used?

Capability maturity model is being extensively used in various organizations like in commerce, government offices, software development organizations and industry.

What was the need for Capability Maturity Model?
- In the 20th century the use of computers was wide spread.

- Computerized processes were thought to be less costly, effective and flexible way to carry out tasks.

- As more and more organizations started adopting computerized processing systems, the demand for software development eventually rose.

- As a result CMM was developed, of course with lots of failures.

- The computers were a new technology at that time and so there was a lot of pressure on developers to deliver quality products within a stipulated period of time.

- The US military was in havoc that because all their projects were running out of budget and time.

- So in order to know the reason behind all this, they funded the study at SEI. Active study started at SEI.

- It was watts Humphrey who actually came up with the actual idea of CMM.

- He based his approach on the evolution of software development practices.

- He concentrated on all the processes as one instead of concentrating on just one software development process.

- Since then the CMM has become popular among various organizations and is used as a powerful tool for improving overall performance of the business.

Though CMM proved to be a very effective tool for business but many times it caused problems in software development.

- CMM didn’t allow use of multiple software development practices. It was superseded by CMMI.

- These days still the capability maturity model is being used as the model with the capability of handling general processes when it comes to public domain.

Some Important Facts About CMM
1.CMM is still maintaining its position as a model of maturity of process.

2.CMM provides a place to start the development.

3.It uses a common language and the development is based upon a shared vision.

4.It effectively develops a frame work for actions according to their priority.

5.For an organization it defines the ways for improvement.

6.It is used an aid for better and effective understanding.

CMM has 5 aspects:
- Maturity level
- Key process area
- Goal
- Features
- Practices.


Tuesday, May 25, 2010

Differences between Capability Maturity Model(CMM) and Capability Maturity Model Integration(CMMI)

Capability Maturity Model (CMM)

The Capability Maturity Model for Software (CMM) is a framework that describes the key elements of an effective software process. There are CMMs for non software processes as well, such as Business Process Management (BPM).
- The CMM describes an evolutionary improvement path from an ad hoc, immature process to a mature, disciplined process.
- The CMM covers practices for planning, engineering, and managing software development and maintenance.
- When followed, these key practices improve the ability of organizations to meet goals for cost, schedule, functionality, and product quality.
- The CMM establishes a yardstick against which it is possible to judge, in a repeatable way, the maturity of an organization's software process and compare it to the state of the practice of the industry.
- The CMM can also be used by an organization to plan improvements to its software process.
- It also reflects the needs of individuals performing software process, improvement, software process assessments, or software capability evaluations; is documented; and is publicly available.

Capability Maturity Model Integration (CMMI)
- CMMI is a process improvement approach that provides organizations with the essential elements of effective processes.
- It can be used to guide process improvement across a project, a division, or an entire organization.
- CMMI helps integrate traditionally separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes.


Monday, May 24, 2010

Misconceptions of the Capability Maturity Model (CMM)

CMM is the most widely used Software Process Improvement model. It was developed by Carnegie Mellon University’s Software Engineering Institute (SEI). A maturity level is a well-defined evolutionary plateau toward achieving a mature software process. Each maturity level provides a layer in the foundation for continuous process improvement.
In CMMI models with a staged representation, there are five maturity levels designated by the numbers 1 through 5.
- Initial
- Managed/Repeatable
- Defined
- Quantitatively Managed
- Optimizing

Misconceptions About Maturity Levels
- If you are at Level 1, you are pond scum.
Being Level 1 does not mean that the members of a software organization are barely breathing. It does mean that the organization's projects are likely to have less predictability, more rework, more defects, and more schedule slippage than those in a higher maturity organization.
- Level 2 is mostly about software engineering activities, such as requirements analysis, design, coding, and testing.
- You have to perform all of the activities and practices defined at some maturity level in order to achieve that level.
- Software measurement is not required until you are approaching Level 4.
- The SEI certifies an organization at a specific maturity level.
- The CMM requires that you use specific software development practices, tools, and methodologies.
- The CMM mandates a waterfall life cycle model.
- The Software Quality Assurance KPA is mostly about testing.
- The CMM requires that you perform software inspections to achieve Level 3.
- Having a "tailorable" process really means that you can do whatever you want.
- Requirements management is the same thing as requirements engineering.
- You cannot work on improving KPAs more than one maturity level higher than your current level.
- The CMM mandates bureaucracy and wasteful paperwork.
- The CMM is a quick fix for short-term problems.
- CMMI is proprietary for the US military use.
- CMMI is the next release of CMM.
- Everyone uses the Staged Representation.
- You cannot use CMMI if you already use some other improvement model.
- CMMI is not suitable for small organizations.
- CMMI is used only to get an appraisal rating.
- CMMI is not suitable for companies using Agile methods.
- CMMI implementation takes long and is expensive and does not pay off.
- CMMI is a process model.


Sunday, May 2, 2010

CMMI - Generic goals and practices in Process Areas

Each process area is defined by a set of goals and practices. There are two categories of goals and practices:
- Generic goals and practices (GG & GP): They are part of every process area.
- Specific goals and practices (SG & SP): They are specific to a given process area.

A process area is satisfied when company processes cover all of the generic and specific goals and practices for that process area.
Capability Maturity Model Integration (CMMI)--CMMI for Development, Version 1.2—contains 22 Process Areas that describe the aspects of product development that are to be covered by organizational processes.

Generic goals and practices


GG 1 Achieve Specific Goals
- GP 1.1 Perform Specific Practices.
GG 2 Institutionalize a Managed Process
- GP 2.1 Establish an Organizational Policy.
- GP 2.2 Plan the Process.
- GP 2.3 Provide Resources.
- GP 2.4 Assign Responsibility.
- GP 2.5 Train People.
- GP 2.6 Manage Configurations.
- GP 2.7 Identify and Involve Relevant Stakeholders.
- GP 2.8 Monitor and Control the Process.
- GP 2.9 Objectively Evaluate Adherence.
- GP 2.10 Review Status with Higher Level Management.
GG 3 Institutionalize a Defined Process
- GP 3.1 Establish a Defined Process.
- GP 3.2 Collect Improvement Information.
GG 4 Institutionalize a Quantitatively Managed Process
- GP 4.1 Establish Quantitative Objectives for the Process.
- GP 4.2 Stabilise Subprocess Performance.
GG 5 Institutionalize an Optimizing Process
- GP 5.1 Ensure Continuous Process Improvement.
- GP 5.2 Correct Root Causes of Problems.


Saturday, May 1, 2010

Process Areas in Capability Maturity Model (CMM)

The Capability Maturity Model Integration (CMMI), based process improvement can result in better project performance and higher quality products.
A Process Area is a cluster of related practices in an area that, when implemented collectively, satisfy a set of goals considered important for making significant improvement in that area.
In CMMI, Process Areas (PAs) can be grouped into the following four categories to understand their interactions and links with one another regardless of their defined level:
Process Management : It contains the cross-project activities related to defining, planning, resourcing, deploying, implementing, monitoring, controlling, appraising, measuring, and improving processes. Process areas are :
- Organisational Process Focus.
- Organisational Process Definition.
- Organisational Training.
- Organisational Process Performance.
- Organisational Innovation and Deployment.

Project Management : The process areas cover the project management activities related to planning, monitoring, and controlling the project. Process areas are :
- Project Planning.
- Project Monitoring and Control.
- Supplier Agreement Management.
- Integrated Project Management for IPPD (or Integrated Project Management).
- Risk Management.
- Integrated Teaming.
- Integrated Supplier Management.
- Quantitative Project Management.

Engineering : Engineering process areas cover the development and maintenance activities that are shared across engineering disciplines. Process areas are :
- Requirements Development.
- Requirements Management.
- Technical Solution.
- Product Integration.
- Verification.
- Validation.

Support : Support process areas cover the activities that support product development and maintenance. Process areas are :
- Process and Product Quality Assurance.
- Configuration Management.
- Measurement and Analysis.
- Organisational Environment for Integration.
- Decision Analysis and Resolution.
- Causal Analysis and Resolution.


Tuesday, April 27, 2010

Configuration Management (CM) and Decision Analysis and Resolution (DAR) process area in CMMi

The purpose of Configuration Management (CM) is to establish and maintain the integrity of work products using configuration identification, configuration control, configuration status accounting, and configuration audits. It is a support process area at Maturity Level 2.
Configuration management is normally not used or managed within the development process for a Level 1 organization.

Specific Practices by Goal


SG 1 Establish Baselines
- SP 1.1 Identify Configuration Items.
- SP 1.2 Establish a Configuration Management System.
- SP 1.3 Create or Release Baselines.
SG 2 Track and Control Changes
- SP 2.1 Track Change Requests.
- SP 2.2 Control Configuration Items.
SG 3 Establish Integrity
- SP 3.1 Establish Configuration Management Records.
- SP 3.2 Perform Configuration Audits.

Decision Analysis and Resolution (DAR)
It is a support process area at Maturity Level 3. The purpose of Decision Analysis and Resolution (DAR) is to analyze possible decisions using a formal evaluation process that evaluates identified alternatives against established criteria.

Specific Practices by Goal


SG 1 Evaluate Alternatives
- SP 1.1 Establish Guidelines for Decision Analysis.
- SP 1.2 Establish Evaluation Criteria.
- SP 1.3 Identify Alternative Solutions.
- SP 1.4 Select Evaluation Methods.
- SP 1.5 Evaluate Alternatives.
- SP 1.6 Select Solutions.

Note : SP stands for Specific Practice and SG stands for Specific Goal.


Monday, April 26, 2010

Benefits of Capability Maturity Model (CMM)

Quality is the very essence of any organization. An individual is known by the level of quality he/she possesses. Similarly in an organization, be it a products or services company, the organisation is identified in the market by the level of quality it maintains.
The CMM provides software organizations with guidance on how to gain control of their processes for developing and maintaining software and to gradually evolve towards a culture of software engineering and management excellence.

Fundamentally speaking CMM helps an organization in two ways :
- Firstly, CMM instills definite practices, which results in an increase in profitability.
- Secondly and most importantly is the immediate change it brings about in an organization's culture and mentality, thereby helping it to climb up the CMM ladder.

The advantages of moving up the CMM ladder are evident in a large number of organizations :
- A shift from reactive to proactive management.
- Helps build a skilled and motivated workforce.
- Cuts cost in development and support system.
- Shortens delivery schedules and improves delivery of requirements.
- Results in customer satisfaction.
- Improves quality of software products.
- Induces robustness.
- Improves management decision-making.
- Introduces newer technology thus creating competitive advantages.

At Level 1 - Initial level : No benefits, inconsistency, schedule and budget overruns and defective applications.
At Level 2 - Repeatable level : By achieving CMM Level 2, projects can set realistic expectations, commit to attainable deadlines and avoid the Level 1 "death marches" on nights and weekends that produce excessive defects.
At Level 3 - Defined level : At Level 3, IS organizations use historical measures describing the performance of a common application development process as the basis for their estimations.
At Level 4 - Managed level : Predictable results. Knowledge of factors causing variance and reuse.
At Level 5 - Optimizing level : Continuously targeting improvements results

Many of the initial benefits from CMM-based improvement programs result from eliminating rework.


Saturday, April 24, 2010

Introduction to Capability Maturity Model (CMM)

The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes. CMM was developed and is promoted by the Software Engineering Institute (SEI), a research and development center sponsored by the U.S. Department of Defense (DoD).

Levels of Capability Maturity Model


Predictability, effectiveness, and control of an organization's software processes are believed to improve as the organization moves up these five levels.
- At the initial level, processes are disorganized, even chaotic. Success is likely to depend on individual efforts, and is not considered to be repeatable, because processes would not be sufficiently defined and documented to allow them to be replicated.
- At the repeatable level, policies for managing a development project and procedures to implement those policies are established. Effective management processes for development projects are institutionalized, which allow organizations to repeat successful practices developed on earlier projects, although the specific processes implemented by the projects may differ.
- At the defined level, an organization has developed its own standard software process through greater attention to documentation, standardization, and integration. Processes are used to help the managers, team leaders, and development team members perform more effectively. 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.
- At the managed level, an organization monitors and controls its own processes through data collection and analysis.
- At the optimizing level, processes are constantly being improved through monitoring feedback from current processes and introducing innovative processes to better serve the organization's particular needs.


Facebook activity