Custom Search

Friday, June 6, 2008

A typical CMMi based Process Improvement life cycle

A Typical life cycle for CMMI based Software Process Improvement is described below. If you have any difficulty to understand, please subscribe the Google Group “Life With Software Engineering”. For subscription just sent your email address in the right side Google Group Subscription box.




Figure: A typical CMMi based Process Improvement life cycle


1. SEI (Software Engineering Institute)
Software Engineering Institute (SEI) is the Institute who developed the CMMi framework. The main person behind developing the model is Watts S Humphrey. SEI has partnership with US Department of Defense (DoD) and Carnegie Mellon University in Pittsburgh.

2. SEI Partner Company
These Partners Company are the institutes who actually work with your company. These company become partner of SEI fulfilling few pre defined criteria. One of that criteria is, they must have SEI Certified Lead Appraiser to perform Gap Analysis or SCAMPI C, Conduct Primary Appraisal that mean SCAMPI B and Final Appraisal that mean SCAMPI A .

3. Gap Analysis
Company / Sponsor ask for Gap Analysis that is SCAMPI C to the SEI Partner Company (e.g. QAI). SEI partner will sent a Lead Appraiser to conduct the Gap Analysis. S/He will conduct an audit and submit a report about current gap. This report will show actually on which area your company is strong and in which area you are weak. Depending on this, you are going to develop your Process Improvement Plan.

4. Process Improvement Plan
Here, SEPG (Software Engineering Process Group) will develop a Process Improvement Plan along with help of Gap Analysis Report.

5. PA (Process Area) Training by (SEI) Partner Company
At This stage many works will start simultaneously. Like, PA Training, Consultant from SEI Partner company will provided consultancy for Process Definition. SEPG will be responsible for Process Definition. Both SEPG and QA team will start own defined Process Training inside the organization.

6. Piloting
Along with the point 5, QA team will implement all developed Process and other Artifacts in live projects. They will identify problems (if any) of the artifacts and will change that. After that, they will publish the final release of the Process or Artifact (Template, Forms, Checklists, and Guidelines) Until all process are defined, piloted and implemented in projects, Consultant will provide consultancy on how to solve the issues.

7. IDEAL – A User(s) Guide for Software Process Improvement
IDEAL (Initiating, Diagnosing, Establishing, Acting, Leveraging) model is a guideline for software process improvement project based on CMMi. IDEAL describes a software process improvement (SPI) program model, IDEAL, which can be used to guide development of a long-range, integrated plan for initiating and managing a SPI program. The purpose of IDEAL is to provide process improvement managers with a generic description of a sequence of recommended steps for SPI. All the phases (from SCAMPI C to SCAMPI A) of SPI program covered by IDEAL.

Figue: IDEAL Model

8. Conduct Primary Appraisal (SCAMPI B)
After implementing all the processes in the organization and projects, SEPG will ask for a primary appraisal. It is call SCAMPI B. It is actually B category appraisal in SCAMPI (Standard CMMI Appraisal Method for Process Improvement) family. This SCAMPI B will be conducted by the LA (Lead Appraiser) from the SEI Partner Company who is consulting you.

9. Prepare for Formal Appraisal
If LA find any nonconformity then in this stage, your people will fix the problem and will be prepared for final appraisal.

10. Conduct Formal Appraisal and get Maturity CMMI MLx
It’s the SCAMPI A where the LA will audit the full QMS and compare with the requirements of CMMI Model. Depending on this appraisal’s finding it will be decided that, either you will get the Maturity Level or not. If for any reason, you don’t get the Maturity Level, you need to conduct the SCAMPI A again when you want.

Thursday, May 29, 2008

How mature is your process and how can you make it better?

When developing a software system, every single person or organization must perform the basic steps/stages of software development life cycle. E.g. Requirement Analysis, Requirement specification, Design, Coding... Based on project type, these steps will be followed on any sweet able process model like Waterfall, Iterative, V Model, Spiral, RAD, DSDM, Agile method etc.

Though everyone performing the same high level steps, in root level of these stages, everyone perform in their own way (here the variation happen). For this reason, Performance of process, Quality of product and other software attribute did vary for different person/organization. Like, in Requirement Analysis / Requirement Specification stage, some company collect documents to analyze requirement, some take interview of users and external stakeholders, some do nothing without just talk etc.

Now the question is, the way you are performing these steps, is that good enough for better software? Or if good, how can you make it better (I think in fast growing world, we should not say best)? To improve your process performance, you must measure, where you is now and where you want to go?



To assess your SDLC (Software Development Life Cycle) performance, there are some International standards, frameworks. All these are widely used in all over the world and accepted. Some company apply these standards to prove their quality of work, some company apply these models & frameworks to improve their process performances. Whoever applies for what reason, all they get Return On Investment.

List of some SDLC Standards, Frameworks:

Standards:
· ISO 9001:2000 (Quality Model)


· ISO/IEC 12207 (Standard for Software Life Cycle Process)

· IEEE/EIA 12207 (Standard for Information Technology-Software Life Cycle Processes)

Framework:
· CMMi (Capability Maturity Model Integration) by SEI

· ISO/IEC 15504 also known as SPICE (Software Process Improvement and Capability dEtermination)

Monday, May 26, 2008

Process Model and Missing Functionality

Process Models
During development of Software, we choose any Process Mode or Software Development Life Cycle. More or less, we all know about all common Life cycle models.

For example:

· Waterfall life cycle,


· Incremental Process Model,


· V Model,


· Spiral Model,

· Rapid Application Development (RAD),




· Agile Method etc.


Though they are very differences between all these models, all has some common activities as well. These activities might be presented in different name in different models, but outputs of them are same. Examples of such activity are:
· Requirement Analysis,

· Requirement Specification,

· Design,

· Coding,

· Testing,

· Deployment,

· Maintenance etc.

These all are very important activity in software development. I think I dont need to explain these process models. Because in practical life, there are more process models and you can find a lot of study material to study about these process models.
No mater people do document these phases or not, they go through with these activities. Except these activities, no one can make any software.

Missing Functionality in Process Model
Making something and making something betteris different Right? To perform on all those phases, there are selected skilled people. But where is the role of Project Manager of Project Management function in the life cycle? YES, he plays his role all over the project, but where is Quality Assurance function? Yes this function also work in everywhere of the function! Like this, Configuration Controller for Configuration Management function, Reviewer for Review Team work all over the project.

List of Missing functions in every Software Development Life Cycle:

· Project Management

· Quality Assurance

· Configuration Management

· Metrics and Measurement Analysis
· Review
Figure: Example of Waterfall with all these functions

All these functions are missing in every process models/ software development life cycle. When these functions will start work actively with traditional SDLC, it’s a guaranty to the better product then before.
This blog's main focus will be on these functions and how to improve the Process Model through several process improvement models e.g. CMMi, ISO 9001.