2.1 La gestión de proyectos usando un marco de calidad El desarrollo de software es una actividad joven, comparada con otras ingenierías. En sus inicios, ésta disciplina se desarrolló con base en habilidades personales y con la firme creencia de que su naturaleza era artesanal. La falta de procesos, la indisciplina personal y la falta de visión para conceptualizar al desarrollo de software como una ingeniería se materializó en la crisis del software en los años 70 y desde entonces se han tomado acciones para cambiar las malas prácticas y considerar al desarrollo de software como una ingeniería.
Desafortunadamente, los esfuerzos no han sido suficientes. En el reporte “Resumen del Caos 2009” del Grupo Standish se indica que tan solo el 32% de los proyectos evaluados fueron exitosos, es decir: fueron entregados en tiempo, en presupuesto y con la funcionalidad requerida. Otra línea de acción para aliviar el problema ha sido el promover la mejora de procesos de software en las organizaciones a través del estándar ISO 9000, el modelo TSP y el modelo CMMI.
La importancia otorgada durante los últimos años al control de calidad es una respuesta a la competencia Japonesa basada en la calidad.
Al Dr. Joseph M. Juran se le reconoce como la persona que agregó la calidad a la dimensión humana, lo que nosotros llamamos ahora la dirección de calidad total.
La Calidad según Juran, tiene múltiples significados. Dos de esos significados son críticos, no solo para planificar la calidad sino también para planificar la estrategia empresarial.
Calidad: Se refiere a la ausencia de deficiencias que adopta la forma de: Retraso en la entregas, fallos durante los servicios, facturas incorrectas, cancelación de contratos de ventas, etc.
Calidad es " adecuación al uso".
La calidad es un atributo o característica de algo, es decir cosas que se pueden conocer para comparar estándares, como longitud, color, propiedades eléctricas, etc.
El software es más difícil de caracterizar que los objetos físicos, entre las principales mediciones de un programa se encuentran: la complejidad ciclomática, número de puntos de función, líneas de código, etc.
De diseño:
• Se refiere a las características que los diseñadores especifican para un elemento, incluye requisitos, especificaciones y diseño del sistema.
De concordancia:
• Es el grado en que las especificaciones de diseño se aplican durante la fabricación. Está enfocado a la implementación, si esta sigue el diseño y el sistema resultante satisface sus requisitos y metas de desempeño, entonces la calidad de concordancia es alta.
El control de calidad involucra una serie de inspecciones, revisiones y pruebas empleadas a lo largo del proceso de software para garantizar que cada producto de trabajo satisfaga los requisitos que se le han asignado.
Revisiones de la calidad en las que el software, su documentación y los procesos utilizados para producir ese software son revisados por un grupo de personas.
Valoración automática del software en la que el software y los documentos producidos se procesan por algún programa y se comparan con los estándares que aplican a ese proyecto de desarrollo en particular.
2.2 Estándares y Métricas de calidad en la ingeniería de SW
2.2.1 PSP y TSP
PSP Personal Software Process Flujo del proceso de PSP
Requirements
Planning Design Scripts
guide
Code
Logs
Compile Test PM
Finished product
Project summary
Project and process data summary report
Pasos del PSP
TSP Team development
PSP2 Code reviews Design reviews
PSP1 Size estimating Test report
PSP0 Current process Time recording Defect recording Defect type standard
PSP2.1 Design templates
PSP1.1 Task planning Schedule planning
PSP0.1 Coding standard Size measurement Process improvement proposal (PIP)
El PSP se desarrolló considerando los siguientes principios de calidad y planeación:
• Cada ingeniero debe planear su trabajo con base en sus datos históricos personales. • Los ingenieros deben medir su trabajo y analizar los resultados para mejorar su desempeño. • Los ingenieros deben sentirse personalmente responsables de la calidad de sus productos buscando decididamente hacer trabajo de calidad. • Es más eficiente prevenir los defectos que encontrarlos y corregirlos. • La manera correcta es siempre la manera más rápida y económica de hacer el trabajo. La importancia del entrenamiento y el marco de trabajo personal del PSP es que provee a los ingenieros un proceso disciplinado, métricas de desempeño, habilidades de planeación y estimación y habilidades de administración de la calidad.
TSP El TSP (Team Software Process) es una estrategia enfocada a procesos para ayudar a los equipos de software a mejorar su habilidad para producir software de alta calidad en los tiempos y costos comprometidos. La mejora en el desempeño organizacional se logra mejorando el desempeño personal y posteriormente el del equipo asignado a un proyecto.
Marco de trabajo de TSP
Características de TSP
2.2.2 CMM Es un modelo de evaluación de los procesos de una organización. Fue desarrollado inicialmente para los procesos relativos al desarrollo e implementación de software por la Universidad Carnegie-Mellon para el SEI (Software Engineering Institute).
Los niveles 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 sobrecostes. 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 de ingeniería más detalladas y un nivel más avanzado de métricas en los procesos. Se implementan técnicas de revisión por pares ( peer reviews).
4 - Gestionado. Se caracteriza porque 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.
A partir de 2001, en que se presentó el modelo CMMI, el SEI ha dejado de desarrollar el SW-CMM, cesando la formación de los evaluadores en diciembre de 2003, quienes dispondrán hasta fin de 2005 para reciclarse al CMMI.
2.2.3 MOPROSOFT Modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software. Desarrollado por la Asociación Mexicana para la Calidad en Ingeniería de Software. Moprosoft es el nombre del modelo en la comunidad universitaria y profesional, y la norma técnica a la que da contenido es la NMX-059/01-NYCE-2005 que fue declarada Norma Mexicana el 15 de agosto de 2005 con la publicación de su declaratoria en el Diario oficial de la Federación. Moprosoft considera que los modelos de evaluación y mejora CMMI e ISO/IEC 15504 no resultan apropiados para empresas pequeñas y medianas de desarrollo y mantenimiento de software. Sobre las áreas de procesos de los niveles 2 y 3 del modelo SW-CMM e inspirándose en el marco de ISO/IEC 15504 se ha desarrollado este modelo.
Procesos Categoría alta dirección (DIR) Gestión de Negocio •
Categoría Gerencia (GER) Gestión de Procesos Gestión de Proyectos Gestión de Recursos Recursos Humanos y Ambiente de Trabajo Bienes Servicios e Infraestructura Conocimiento de la Organización. • • •
• • •
Categoría Operación (OPE) Administración de Proyectos Específicos Desarrollo y Mantenimiento de Software • •
NMX-I-059/02-NYCE-2011 ( MOPROSOFT)
NMX-I-15504-2-NYCE-2010
- Modelo mexicano basado en una combinación - Modelo internacional basado en una combinación de estándares (ISO/IEC Spice de estándares. 15504, ISO /IEC 12207). - Cubre el ámbito completo de una organización. - Orientado a empresas dedicadas al desarrollo y mantenimiento de software.
- Cubre el ámbito completo de una organización. - Orientado a empresas de software o empresas con departamentos de desarrollo de software
- Sencillo y entendible. - Penetración en las PyMes en México.
- Sencillo y entendible. - Orientado a empresas de software o empresas con departamentos de desarrollo de software
- Bajos costos de verificación en comparación con otros estándares. - Obtención de un dictamen de conformidad de los procesos verificados en términos de la LFMN.
- Bajos costos de verificación en comparación con otros estándares. - Obtención de un dictamen de conformidad de los procesos verificados en términos de la LFMN.
2.3. Impacto de la calidad en tiempo, costo y alcance del proyecto Cuando se implementan métricas de calidad de la manera correcta podemos entregar proyectos en tiempo y forma. En cuanto a presupuestos si se hace una buena planeación y seguimiento del proyecto, entonces se terminará el proyecto dentro del presupuesto previsto. El alcance del proyecto se puede planear desde el inicio e ir sufriendo replaneaciones en el transcurso del mismo.