In my last post I talked a little about the introduction of software quality and some basic concepts and descriptions. This time we will talk more about specific standards and models used in the industry.
CMMI (Capability Maturity Model Integration), is a model that describes the best practices for a company to improve their processes. It was created thanks to the fast increment of popularity in software development, in the beginning this process was only used in defense programs. The government financed a two year program where more than 200 hundred experts in the area gathered and created the most known model nowadays.
CMMI helps companies to have better communication inside the organization because everyone use the same language. It helps to improve clients satisfaction and companies can create more efficient projects with better quality. CMMI works with different maturity levels, each layer helps our project to achieve continuous improvement and better performance. According to the official CMMI web site the five maturity levels are the following:
Maturity Level 0: Incomplete
Maturity Level 1: Initial
Maturity Level 2: Managed
Maturity Level 3: Defined
Maturity Level 4: Quantitatively Managed
Maturity Level 5: Optimizing
Next we will talk about TSP/PSP which are a set of practices to allow software developers and programmers to administrate their time and be more efficient. Team Software Process (TSP) is a process that helps to create and improve team work, it allows teams to establish objectives, create plan works, give feedback of completed objective and finally delivered efficient, reliable and quality software. It focuses mainly in two primary aspects, creating a good team and managing this team in order to allow a better performance. PSP (Personal Software Process) is just the antecesor of TSP and it was more focused in improving the personal aspect of every developer, TSP is more team orientated as we can see.
Next we have ISO/IEC 15504 (Software Process Improvement Capability Determination), is a model that allows us to evaluate the capacity of our process of software development. Using this model helps us to create a better and more efficient project.
The international ISO 15504 measures 9 attributes in order to qualify the specific processes we want to improve. Those 9 attributes are the following and can be rated with 4 different points depending on the level of achievement (0-15%), (15%-50%), (50%-85%), (85%, 100%)
- Process performance
- Performance management
- Work product management
- Process definition
- Process deployment
- Process measurement
- Process control
- Process innovation
- Process optimization
As we can see each attribute is directly related with different part of the cycle of software development therefore ISO 15504 is a model that helps to improve all this processes, leading to a better software with more quality.
ISO 15504 provides 5 different maturity levels that are abstracted from CMM, the predecesor of CMMI, those levels are the following:
- Level 0: The process is incomplete;
- Level 1 – The process is done.
- Level 2: The process is manage.
- Level 3: The process is establish.
- Level 4: The process is predictable.
- Nivel 5: The process is optimized.
Finally we have MoProSoft model to improve software, this is a specific model used in Mexico and was developed by the UNAM (Universidad Nacional Autónoma de México) and the Secretaria de Economía de México in the year 2001, it was created because non of the existing models could full-fill the national requirements. MoProSoft includes 7 lines of strategy in order to achieve an improvement of software development. The last one is designed to full-fill international capacities and the other six are the following ones.