Models and standards for software at first look like something strange and unnecessary when you are working on your own, but these standards are helpful to evaluate the software quality and in this way you can see what areas of improvement you can work on and how to optimise your current project to make a better product.
There are some standards for ensure quality in software some of them are the following:
Capability Maturity Model Integration (CMMI):
CMMI was developed at Carnegie Mellon University. It is required by many U.S Government contracts, just by that you can see how important are these models to ensure that software being developed by certain company have all the requirements of quality needed, this model focus in the part of product and service development, service establishment, management and product and service acquisition, this is important as well because thanks to this best practices that this model propose is easier to maintain the software.
The Personal Software Process (PSP) provides a operational framework with the objective of helping a person in how they manage their own time, productivity. This help teams of managers and engineers to organize small projects or large projects. PSP has as objective to improve the levels of quality and productivity of the team developing those projects. In this framework or model each team manage itself, they do their own plans, how they track their work and are responsible of the quality of their work, but before someone can take part on a team is necessary to learn about TSP(Team Software process) because in each team there are roles to ensure the quality and organization of the team.
Software Process Improvement Capability Determination (ISO/IEC 15504) has the following objectives:
- Create an standar to evaluate software processes.
- Measure and evaluate customer-supplier, supporting, management.
Now this standard measure the following processes in the business organization, management, engineering, acquisition and supply, support and operations. This standard is a framework for continuous improvement, their analyze each process capability and see what areas of improvement are available and is divided in 6 levels.
- Incomplete( Level 0): The process is not implemented or fails to achieve its purpose.
- Performed(Level 1): The process is performed and achieves its purpose.
- Manages(Level 2): The process is managed and results are specified, controlled and maintained.
- Established(Level 3): A standard process is defined and used throughout the organization.
- Predictable(Level 4): The process is executed consistently within defined limits.
- Optimizing(Level 5): The process is continuously improved to meet current and projected business goals.
So as we can see these models are standards that can be used for ensure quality and a framework to always keep improving how the workflow, the processes and the organization of a business works together to create software that meets the criteria so in the future that software can be modified, scaleted and improved.