Toda empresa dedicada al desarrollo de software puede conseguir certificaciones sobre los procesos que realizan al momento de crear software; una de ellas es CMM (Capability Maturity Model) Modelo de Madurez de Capacidades la cual fue creada por el SEI, el cual es un instituto de EEUU de investigación y desarrollo, el cual tienen la intención de establecer modelos de evaluación y mejora en el desarrollo de software.
Los niveles del CMM son:
1.Inicial: Las organizaciones en este nivel no disponen de un ambiente estable para el desarrollo y mantenimiento de software. Aunque se utilicen técnicas correctas de ingeniería, los esfuerzos se ven minados por falta de planificación. El éxito de los proyectos se basa la mayoría de las veces en el esfuerzo personal, aunque a menudo se producen fracasos y casi siempre retrasos y sobre costes. El resultado de los proyectos es impredecible.
2.Repetible: En este nivel las organizaciones disponen de unas prácticas institucionalizadas de gestión de proyectos, existen unas métricas básicas y un razonable seguimiento de la calidad. La relación con subcontratistas y clientes está gestionada sistemáticamente.
3.Definido: Además de una buena gestión de proyectos, a este nivel las organizaciones disponen de correctos procedimientos de coordinación entre grupos, formación del personal, técnicas más detalladas de ingeniería y un nivel más avanzado de métricas en los procesos. Se implementan técnicas de revisión por pares.
4.Gestionado: Se caracteriza por que las organizaciones disponen de un conjunto de métricas significativas de calidad y productividad, que se usan de modo sistemático para la toma de decisiones y la gestión de riesgos. El software resultante es de alta calidad.
5.Optimizado: La organización completa está volcada en la mejora continua de los procesos. Se hace uso intensivo de las métricas y se gestiona el proceso de innovación.