Aplicación del modelo de madurez de capacidad (CMM) en la empresa BNYCS
Enviado por carlos alberto palacio londoño
RESUMEN
La ingeniería de requerimientos y la ingeniería de software poseen modelos de procesos les como el CMM. En este trabajo se describe la base conceptual y fundamental para el desarrollo de un modelo personalizado de CMM en la empresa BNYCS por parte de los consultores de Whittman-Venado, el cual se orienta a la mejora de procesos software como herramienta para asesorar en el proceso de evolución entre los diferentes niveles de madurez propuestos por el modelo de referencia CMM. Luego de una reseña histórica a los conceptos fundamentales del modelado y simulación del proceso software, se abordan los parámetros para un posicionamiento estratégico, causas que permiten un cambio de requerimientos y análisis comparativo de procesos maduros e inmaduros.
PALABRAS CLAVES:
Maturity Model, CMM, strategic positioning
ABSTRACT:
Requirements engineering and software engineering process models have them as
CMM .. This paper describes the conceptual basis and fundamental to the
development of a customized model of CMM in the company BNYCS by Whittman-
Deer consultants, which is aimed at software process improvement as a tool to
assist in the process evolution between the different levels of maturity given by the
CMM reference model. After a historical overview to the fundamentals of modeling
and simulation, software process, addresses the parameters for strategic positioning, causes that allow a change of requirements and comparative analysis of immature and mature processes.
KEYWORDS:
Project Management Office, project, strategic planning
Luego de implementar y poner en funcionamiento la oficina de proyectos, la organización debe evaluar la dirección de proyectos.
Son claras las tendencias ideológicas para este análisis: la formal y los modelos de madurez para el desarrollo orgánico. Dentro de estos se encuentran CMM. SPICE y otros que recomiendan la aplicación de un control estadístico y de guías de métricas para la definición, implementación y posterior evaluación de diferentes mejoras del proceso. Pero nuestro interés se centrara en el CMM. Son muchos los procesos de desarrollo de software que existen, la Ingeniería de Software ha introducido una serie de estándares para medir y certificar la calidad, tanto del sistema a desarrollar, como del proceso de desarrollo en sí.
Este modelo es aplicable en cualquier sector o área de servicios o producción y es que el CMM."El Software Engineering Institute-SEI, es un centro de investigación y desarrollo, creado por el Departamento de Defensa de los EE UU y asignado en 1984 a la Universidad de Carnegie Mellon. Su principal objetivo consiste en mejorar e impulsar la práctica de la Ingeniería de Software, para que el software que se produzca sea de calidad, esté en tiempo y dentro del presupuesto asignado.
Con esta orientación, el SEI elaboró el modelo de mejora de procesos conocido como CMM (Capability Maturity Model), el cual pretende incrementar la capacidad administrativa de las organizaciones para predecir y controlar la calidad, programa, costo, tiempos y productividad de los sistemas de software adquiridos o construidos.
El modelo CMM es específico para el desarrollo de software y por lo tanto sirve de "benchmarking" para medir la capacidad y competitividad de las organizaciones y madurez de sus procesos tanto de los sistemas de software construidos como de los adquiridos. De igual manera, el CMM provee un esquema de niveles por los cuales la empresa avanza conforme su proceso de desarrollo va madurando en el tiempo.
Nota.-CMM, Capability Maturity Model; y PSP, Personal Software Process, son marcas de servicio (SM) del Software Engineering Institute (SEI) de Carnegie Mellon University, USA." (Ver ANEXO 1).
Los errores más comunes que enfrenta un CEO en un modelo de madurez son:
1. Poco compromiso ejecutivo en la creación del modelo y su valoración de conducta.
2. No comprender el modelo de Madurez y sus resultados finales.
3. identificar en forma inoportuna las debilidades y que debe existir la adecuada infraestructura de comunicación interna, basado en el plan de gestión para la comunicación.
El esquema básico del modelo CMM es el siguiente:
Niveles de CMM
"Nivel 1
En este nivel es del todo recomendable introducir la idea del proceso de software como un entidad dinámica cuyo comportamiento está gobernado por lazos de realimentación. Resulta muy útil colocar a los directores de proyectos en entornos de simulación que les permitan llevar a cabo experimentos y practicar juegos de simulación. De esta manera, se pretende que el director tome contacto con los entornos de simulación y con la potencialidad y ventajas del empleo de este tipo de modelos.
Nivel 2
Conforme se progresa hacia el nivel 2, las organizaciones pueden comenzar a diseñar modelos de sus procesos y examinar algunas de las propiedades de sus comportamientos. En concreto, se pueden desarrollar modelos de gestión de proyectos muy generales (sin un alto nivel de detalle) que permitan simular aspectos tales como la planificación, el seguimiento y supervisión del proyecto. En este nivel de madurez, sólo se dispondrá de medidas muy generales (basadas en la experiencia en la mayoría de las ocasiones) relativas a los costes y al calendario. Las métricas del producto, como por ejemplo la densidad de errores, no están disponibles todavía. Por tanto, estos modelos de simulación sólo serán aproximados en cuanto al nivel de detalle al que se pueden construir y a la precisión de los datos que reciben en su entrada. No obstante, representan un comienzo importante para la predicción cuantitativa.
Las entradas más comunes para los modelos de simulación situados en el nivel 2 son:
– Dependencias de tareas.
– Duración de las tareas.
– Ciclo de repetición de tareas.
– Datos de gestión de personal (contratación, adaptación, etc.).
Las salidas pueden incluir datos sobre:
– Calendario del proyecto.
– Perfil de evolución del presupuesto.
– Perfil de evolución de personal.
Las herramientas de simulación actuales permiten la rápida construcción de modelos muy sofisticados. Sin embargo hay que tener en cuenta que dadas las limitaciones de los datos métricos disponibles en el nivel 2, la validación de los modelos a este nivel es muy difícil de alcanzar. Por tanto, en este nivel se pueden utilizar los modelos para obtener avances cualitativos, pero su capacidad de predicción cuantitativa debe estar todavía cuestionada.
Nivel 3
Las organizaciones del nivel 3 aplican un énfasis especial sobre la ingeniería del producto, la definición formal de los procesos de ingeniería y la instrumentación de estos procesos. Por tanto, la gestión (que inicialmente trataba a las actividades de ingeniería como cajas negras) posee ahora conocimiento sobre el interior de estas actividades. Los datos recogidos de la observación de los procesos de ingeniería pueden servir de soporte para las actividades de simulación, para comprender el comportamiento, estabilidad y sensibilidad de los cambios. Ya que los procesos de ingeniería conducen muchos de los procesos de gestión, la simulación precisa del nivel de ingeniería resultará en una precisión mejorada en el nivel de gestión. Por ejemplo, las tasas de corrección de errores afectan al tiempo de finalización de los módulos software y esto, tiene un efecto directo sobre el calendario del proyecto.
Las entradas más comunes a las simulaciones del nivel 3 pueden incluir (además de las del nivel 2) datos sobre:
– Cambios en los requisitos.
– Defectos de diseño.
– Defectos de codificación.
– Pruebas y revisiones.
además de distribuciones estadísticas de éstos. Las salidas pueden incluir datos sobre:
– Calidad del software.
– Información sobre el ciclo de vida.
El nivel 3 también otorga una gran importancia a la definición, mantenimiento y reutilización de procesos en una organización. Esto implica que las organizaciones del nivel 3 deberían soportar una librería de los procesos que pueden reutilizarse, con una adaptación adecuada, en otras partes de la organización. Manteniendo las definiciones de los procesos como modelos de simulación, un usuario futuro de un proceso existente puede evaluar las características de evolución de los procesos dentro del contexto de un proyecto para un nuevo usuario y puede adaptarlo de una manera mucho más precisa que los procesos estáticos tradicionales.
Finalmente, en el nivel 3 la formación recibe un gran énfasis. En muchas industrias, la simulación es un componente esencial de esta actividad. Sin embargo, la industria del software no ha explotado aún esta aplicación. Como herramienta de entrenamiento, la simulación puede ayudar a mejorar el proceso de toma de decisiones. Las áreas claves de proceso como el seguimiento y supervisión, aseguramiento de la calidad e ingeniería del producto software son candidatos perfectos para el entrenamiento basado en simulación.
El énfasis de las prácticas de ingeniería en el nivel 3, hace que sea muy importante recoger métricas del producto. Estas métricas están asociadas con parámetros como la duración de las tareas, la estabilidad de los requisitos y los defectos de diseño y codificación y permitirán validar los modelos de simulación con un alto grado de confidencialidad. Además, las métricas de cada parámetro se deben recoger con el detalle suficiente para permitir la generación de distribuciones estadísticas. Las simulaciones estocásticas que utilizan estas distribuciones permitirán acceder a la incertidumbre de las variables independientes como, por ejemplo, la productividad del equipo técnico. Tener el conocimiento de la incertidumbre asociada con el coste o calendario planificado inicialmente sería de un valor inapreciable en la gestión de riesgos y mejora del proceso.
Nivel 4
Los modelos de los niveles 3 y 4 no difieren significativamente en su nivel de detalle o instrumentación. Sin embargo, en el progreso hacia el nivel 4, la validación de los procesos simulados gana en rigor y refleja el nivel de confidencialidad ganado a través de la experiencia. Si se realizan modificaciones a los modelos del nivel 4 existe una alta probabilidad de que los cambios de comportamiento que exhiba el modelo se produzcan también en la realidad. Esto proporciona a la dirección la confianza de que las predicciones resultantes de la simulación son generalmente mejores que las que se basan, en exclusiva, en el juicio humano. Los directores son más capaces de asumir los riesgos de modificar sus procesos o integrar nuevos elementos en los ya existentes.
En el nivel 4, el objetivo es operar los procesos dentro de límites de rendimiento cuantitativo. La simulación es un medio para determinar cuáles deben ser esos límites. En primer lugar se deben determinar los límites de las variables dependientes (límites principales de coste, plazo y calidad). Estos límites actúan como restricciones de las variables independientes tales como densidad de errores, recursos, etc. A través de la simulación es posible determinar los límites superiores e inferiores que estas variables dependientes no deben exceder con el objeto de que el coste, la calidad y el plazo se mantengan dentro de los límites aceptables.
En este nivel, la simulación también va a permitir predecir (dentro de un intervalo de confianza) si el proyecto va a cumplir con éxito los objetivos del proyecto. Por otro lado, estas averiguaciones se pueden hacer en cualquier momento del ciclo de vida, basta con inicializar el modelo con una instantánea de los datos actuales del proyecto real.
Nivel 5
A partir de las experiencias del nivel 4, se obtienen un conjunto de métricas de calidad, modelos validados que pueden utilizarse para seguir y dirigir (en tiempo real) el curso del proceso. En el nivel 5 esta experiencia se utiliza para realizar cambios más radicales en los procesos, es decir, para cambiar los componentes principales de los mismos. En el nivel 5, se prueban mejoras o nuevas maneras de construir el software en un ambiente controlado. Insertar un nuevo componente en un proceso posee un elemento de riesgo independientemente de cuáles sean las técnicas de análisis. Pero las ventajas ofrecidas por el uso de la simulación ayudan a reducir el riesgo de manera significativa. Además, es posible comparar la salida de la simulación del cambio en un proceso, con la salida real de ese proceso sin modificar.
Un factor muy importante en el nivel 5 es la capacidad de responder rápidamente a la nueva tecnología, por ejemplo, las herramientas CASE y las herramientas de flujo de trabajo. La inserción de estas nuevas tecnologías posee importantes efectos, entre los que destacan los factores de riesgo humano, que la simulación no puede tener en cuenta de manera completa, pero su utilización nos puede orientar sobre sus efectos. Existe también una importante conexión entre la simulación, el flujo de trabajo y las métricas. Por un lado, la simulación puede identificar dónde puede instrumentarse un proceso (es decir, los puntos en los que los datos deben insertarse para conducir la simulación). Por otro lado, el flujo de trabajo nos ofrece la oportunidad de recoger métricas automáticamente en una rutina, no intrusiva y de una manera precisa. Por tanto, la simulación soporta el flujo de trabajo apuntando al lugar donde éste debe ser instrumentado, mientras que el flujo de trabajo proporciona los datos que permiten validar la simulación.
En resumen, las organizaciones de nivel 5 poseen modelos detallados y validados para sus procesos. Son capaces de realizar cambios importantes en sus procesos, validarlos a través de la simulación y poseen un alto nivel de confianza que, cuando se lleva a la práctica hace que los procesos respondan de la misma manera que lo hace la evolución real. El énfasis sobre la inserción tecnológica que se realiza en el nivel 5, puede verse favorecido por la simulación que permite averiguar el impacto de los cambios de herramientas sobre el proceso antes de llevarlo realmente a la práctica." (Ver anexo 2).
El modelo CMM desarrollado para BNYCS, se bautizo con el nombre "OPM3". Este afianza la clasificación jerárquica nivelada a la madurez y minimizando la posibilidad de un descenso en esta a través de un modelo personalizado.
Este modelo personalizado de BNYCS, debió seguir los siguientes parámetros para un posicionamiento estratégico:
1. Alineación del modelo de madurez con el comité de OPM3 a PMI
2. Direccionamiento en la investigación de las normas de dirección del proyecto, prácticas metodológicas, etc.
1. Interacción entre los empleados de BNYCS y los consultores de Whittman-Venado
2. Estudio y adaptación al modelo de madurez OPM3, de las funciones ejercidas por los ejecutivos de BNYCS.
3. Rastreo de los consultores sobre las fases individuales de los funcionarios de BNYCS,y con ello determinar el nivel de madurez en cada proceso.
4. Identificar la importancia que tiene un requerimiento en términos de implementación. A esta característica se le conoce como prioridad y debe ser usada para establecer la secuencia en que ocurrirán las actividades de diseño y prueba de cada requisito.
5. Desarrollo de una matriz, con los cinco niveles de madurez que muestran la cuenta compuesta para una organización
6. Tener un ROI positivo, que necesita de beneficios mayores que el costo de crear y usar el modelo de Madurez OPM3
Además, el identificar debilidades y vacíos en BNYC, facilitaron que la implementación de una oficina de proyectos se tradujera en un ROI positivo.
La dirección de la organización determina que parte del publico puede intervenir en la valoración y cuales son las áreas de la compañía que están involucradas en la dirección del proyecto y que serán valoradas.
El paso siguiente en el modelo de madurez, es generar un proceso continuo de valoración, el análisis, planes de mejora. En fin el modelo de madurez OPM3 de BNYCS, se convirtió en una herramienta para la dirección continuada de proyectos.
El CEO debe poseer claridad sobre el monitoreo a realizar una vez implementado un modelo de madurez, y que las causas que pueden cambiar los requerimientos son:
"Porque al analizar el problema, no se hacen las preguntas correctas a las personas correctas.
"Porque cambió el problema que se estaba resolviendo.
Porque los usuarios cambiaron su forma de pensar o sus percepciones.
Porque cambió el ambiente de negocios.
Porque cambió el mercado en el cual se desenvuelve el negocio."1
Finalmente," Curtis y Paulk en 1993 realizaron un comparativo entre los procesos maduros e inmaduros, con el fin de comparar los extremos y crear un marco de referencia, y es el siguiente:
Dados estos factores parecen obvios los beneficios adquiridos al paso de los niveles y hace aun más importante para las organizaciones el interés en cambiar paulatinamente a estos resultados. Existen varias maneras para evaluar el impacto del CMM como la matriz de alineamiento estratégico en la cual es posible ponderar actividades y costos evaluando su importancia en el proceso. Con el fin de identificar los puntos de mayor atención en los proyectos y así dirigir los esfuerzos de una manera más eficiente. Otra manera de evaluar un proyecto es mediante sus habilidades y beneficios en cada nivel del CMM, y de esta manera encontrar fácilmente las evoluciones en distintas características de nuestra calidad y desempeño."2
CONCLUSIÓN
Un tópico especial en la administración de proyectos bajo la metodología PMI, es el desarrollo de software orientado a medir y certificar la calidad, tanto del sistema a desarrollar, como el proceso de desarrollo en si. En fin el modelo de madurez CMM personalizado para la compañía BNYCS y denominado OPM3, se convirtió en una herramienta para la dirección continuada de proyectos. Cumpliendo así con los objetivos fundamentales del modelo CMM: establecer un indicador de calidad y una mejora continua de la organización.
BIBLIOGRAFÍA
CERTO, Samuel. ADMINSTRACIÓN MODERNA. Pearson Educación.
WWW.PRENHALL.COM/CERTO
WWW.PEARSONEDLATINO.COM
Cleland, David I. y Ireland, Lewis R. Manual Portátil del Administrador de Proyectos. Primera Edición. Editorial Mc Graw Hill. México 2001.
www.ne.com.co/html/esp/calidad.html
www.fact.cl/labc/CMM.asp
www.synspace.com/ES/Assessments/cmm.html
Anexos
ANEXO 1
CALIDAD Y COMPETITIVIDAD EN LA INDUSTRIA DEL SOFTWARE
Dr. Leonardo Chapela C. Director General de Prodigia SA de CV
1. COMPETITIVIDAD3
El nivel de competitividad de las empresas se fundamenta en su capacidad tecnológica y de innovación y se mide de acuerdo al Proceso de Evolución en la Competitividad de las Empresas, como a continuación se describe.
El proceso evolutivo que posiciona el nivel de competitividad de las empresas, se basa en sus prácticas establecidas en todas sus áreas y departamentos, de acuerdo a características que reflejan sus capacidades operativas y tecnológicas. Este proceso evolutivo expone el tipo de prácticas predominantes, que parten de un nivel elemental (nivel emergente) y se desplazan hacia mejores prácticas hasta los estándares de excelencia internacional (nivel clase mundial).
El siguiente cuadro muestra una clasificación de las empresas en los cuatro niveles de competitividad, de acuerdo a características que reflejan sus capacidades administrativas, operativas y tecnológicas.
NIVELES DE COMPETITIVIDAD
2. DESARROLLO TECNOLÓGICO4
El desarrollo tecnológico en la mayoría de las empresas se soporta en las habilidades y creatividad del emprendedor para innovar sus productos, procesos o servicios. Sin embargo el desarrollo tecnológico demanda un proceso sistemático y deliberado para asegurar la generación oportuna de las mejoras e innovaciones que la empresa necesita para competir en sus mercados.
La incorporación de tecnología a los procesos de producción de las empresas, redunda básicamente en el incremento de la productividad y en la reducción de costos, de tal manera que ello se traduce directamente en un aumento en la posición competitiva de la empresa. Para elevar la competitividad y la innovación en las empresas se tiene que incrementar la inversión en actividades de investigación y desarrollo, lo que incluye la administración y gestión tecnológica, formación de personal, servicios tecnológicos y sistemas de calidad necesarios.
? Investigación y Desarrollo
Una mayor inversión en investigación y desarrollo tecnológico permite a las empresas acelerar e incrementar significativamente el ciclo de creación y renovación de sus productos, procesos y servicios. La aceleración del ciclo se traduce en márgenes de ganancia mucho mayores, simplemente por el hecho de convertirse en los primeros en impactar el mercado y la multiplicación de nuevos negocios. Además de que la innovación tecnológica5, por si misma, se puede comercializar a través del licenciamiento.
Las actividades de investigación y desarrollo se clasifican en:
i) investigación básica,
ii) investigación aplicada y
iii) desarrollo tecnológico.
El desarrollo experimental consiste en transformar el conocimiento científico y tecnológico en nuevos productos, procesos y servicios.
? Gestión Tecnológica
La gestión tecnológica en las empresas consiste en la generación de un proceso formativo que conduzca a un correcto manejo del recurso tecnológico en la empresa. Esta incluye, entre otros aspectos:
La administración estratégica de los recursos tecnológicos de la empresa.
La gestión que apoye a la empresa para evaluar, adquirir, asimilar y desarrollar tecnologías y su adecuado manejo.
Programas de capacitación en Administración y Gestión Tecnológica
Fortalecer la infraestructura orientada a apoyar la competitividad y la innovación tecnológica de la empresa.
El uso de herramientas de diagnóstico y administración de la tecnología.
? Servicios Científicos y Tecnológicos
Salvo las grandes empresas que tienen la capacidad económica para financiar la infraestructura y soportar su proceso de innovación, la gran mayoría de la pequeñas y medianas carecen de recursos para soportar una infraestructura de Investigación y Desarrollo o área funcional lleven a cabo los programas y proyectos que aseguren la competitividad de sus negocios
Esta situación plantea el reto de aprovechar al máximo el capital de que disponen las empresas y optimizar la infraestructura existente, creando esquemas de cooperación que permita la conjunción de recursos, para el logro de objetivos comunes.
La incorporación de personal de alto nivel además de permitir a la empresa llevar a cabo un proceso de desarrollo tecnológico más eficiente, favorece la vinculación con las instituciones y centros de investigación y propicia mejores condiciones para incorporar en la empresa los avances científico y tecnológicos que constantemente se están generando en el medio.
? Sistemas de Calidad
Los sistemas de calidad han pasado de simples mecanismos para asegurar la repetición eficiente de operaciones a plataformas sobre las cuales se han establecido sistemas de administración por tecnología. Esto ha permitido a las empresas progresar hacia sistemas de "cero defectos" y ocuparse en originar el cambio en sus nichos de mercado.
3. Mejora de procesos de Software (SPI)
Entorno
Para N. Murthyy y P. Jalote6, el éxito de la industria del software en la India ha sido el tránsito por la calidad, comenzando por productos, después proyectos, norma ISO y actualmente modelo CMM. Y en la industria Irlandesa el estándar de calidad ha sido ISO, que en palabras de J. Corrigan7, "les ha dado credibilidad".
a).-PRODUCTIVIDAD Y CALIDAD DEL SOFTWARE
Existen en el mundo varios Modelos de Mejora de Procesos de Software, sin embargo todos coinciden en que el objetivo primordial consiste en el incrementar la productividad de las empresas y de los Ingenieros de Software, a través de prácticas para el mejoramiento continuo en la calidad del software
Adicionalmente es importante destacar algunas de las ventajas que se obtienen, como industria y empresa, al implementar programas de calidad en la mejora de procesos de software:
La Mejora de Procesos de Software permite la estandarización y optimización de procesos y recursos en las empresas.
Aplicación de estándares internacionales de calidad en todo el ciclo de vida del software.
La calidad del software, por sí misma, proporciona a las empresas de Software una mejor y más sólida posición competitiva a nivel internacional.
Valor de cadena, de los productos de software que se desarrollan:
-Menor Costo para el Cliente. Presupuestos y programas elaborados con mejores técnicas de estimación de recursos y tiempos.
-Garantía de Satisfacción del Cliente. Especificación y seguimiento de requerimientos del cliente de manera controlada.
-Reducción de Fallas y Errores. Personal capacitado en la aplicación de mejora de procesos de software.
b).- CAPABILITY MATURITY MODEL – CMMSM
El Software Engineering Institute-SEI, es un centro de investigación y desarrollo, creado por el Departamento de Defensa de los EE UU y asignado en 1984 a la Universidad de Carnegie Mellon. Su principal objetivo consiste en mejorar e impulsar la practica de la Ingeniería de Software, para que el software que se produzca sea de calidad, esté en tiempo y dentro del presupuesto asignado.
Con esta orientación, el SEI elaboró el modelo de mejora de procesos conocido como CMM (Capability Maturity Model), el cual pretende incrementar la capacidad administrativa de las organizaciones para predecir y controlar la calidad, programa, costo, tiempos y productividad de los sistemas de software adquiridos o construidos.
El modelo CMM es específico para el desarrollo de software y por lo tanto sirve de "benchmarking" para medir la capacidad y competitividad de las organizaciones y madurez de sus procesos tanto de los sistemas de software construidos como de los adquiridos. De igual manera, el CMM provee un esquema de niveles por los cuales la empresa avanza conforme su proceso de desarrollo va madurando en el tiempo.
Nota.- CMM, Capability Maturity Model; y PSP, Personal Software Process, son marcas de servicio (SM) del Software Engineering Institute (SEI) de Carnegie Mellon University, USA.
Niveles de CMM
En este contexto, el CMM se ha convertido en el estándar de facto para la evaluación y el mejoramiento de los procesos de software y en un modelo para juzgar la madurez del proceso de desarrollo de software de una organización e identificar las practicas clave que se requieren para incrementar la madurez de estos procesos. (Ferguson, Leman, Perini, Prasad, Renner, Seshagiri: Software Process Improvement Works!. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1999.)
c).-PERSONAL SOFTWARE PROCESS –PSPSM
Personal Software Process – PSP, fue también elaborado en 1989 por el Software Engineering Institute, como una aplicación del modelo CMM que provee directamente a los ingenieros de software con una metodología para la planeación y seguimiento a su trabajo con el objeto de producir consistente y eficientemente desarrollos de alta calidad y para analizar, predecir y controlar ciertas propiedades de los sistemas de software.
El PSP muestra a los ingenieros como manejar la calidad de sus productos y como establecer compromisos que puedan cumplir. La mejora de calidad es el resultado de varios factores: el seguimiento de los defectos, permite a los ingenieros darse cuenta de sus propios errores y los sensibiliza para evitarlos en el futuro; el costo involucrado en el análisis y corrección de los defectos, les induce a la aplicación de los más eficientes métodos para su identificación y eliminación.
El PSP presenta una variedad de prácticas de calidad que han demostrado su efectividad en la prevención de defectos y su eficiencia en la identificación y eliminación de los mismos. (Results of Applying the Personal Software Process. Pat Ferguson, Watts S. Humphrey et all. IEEE Computer Society . Reprint.-Computer Vol 30, Num 5, May 1997.)
4. COMPETITIVIDAD DE LA INDUSTRIA DEL SOFTWARE A NIVEL MUNDIAL
??ESTADÍSTICAS CMM DE LA COMUNIDAD DE SOFTWARE.
En un reporte de marzo del 2001, el Software Engineering Institute publicó el Perfil de la Madurez de Procesos de la Comunidad de Software 20008, donde se presentan estadísticas de Competitividad de la Industria del Software y el Modelo CMM.
El reporte muestra que durante el período de 1987–2001, el SEI registró 1,380 unidades evaluadas de 371 empresas participantes. Las unidades evaluadas pueden corresponder a una o varias áreas de desarrollo de software o sistemas de cualquier empresa o a la propia empresa si esta se dedica exclusivamente al desarrollo de software.
El SEI indica que aproximadamente el 81% de dichos registros se efectuaron durante el período de los últimos 5 años. Y es a partir de este período que el SEI efectúa el estudio del Perfil antes mencionado, del cual se destacan los siguientes aspectos:
1996 – 2000 Período del Estudio.
1,012 Unidades evaluadas (el 32.7% son "No" Norteamericanas)
Tamaño de las Unidades (empleados dedicados al software)
Nivel logrado:
CMM1: Inicial 32.2% CMM2: Repetible 39.3%
Subtotal 71.5% CMM3: Definido 19.4% CMM4: Administrado 5.4% CMM5: Optimizando 3.7%
? Período de Movilidad:
Nivel de madurez de 1 a 2 de CMM: 25 meses Nivel de madurez de 2 a 3 de CMM: 23 meses Nivel de madurez de 3 a 4 de CMM: 30 meses Nivel de madurez de 4 a 5 de CMM: 22.5 meses
? Características de las Unidades Evaluadas:
© 2001 by Carnegie Mellon University. Process Maturity Profile of the Software Community 2001
??LA EXPERIENCIA DE LA INDIA
De acuerdo al reporte de la Asociación Nacional de Empresas de Software y Servicios de la India (NASSCOM)*, se tienen las siguientes cifras de empresas Hindúes con CMM.
(Número de Empresas)
* Indian IT Software and Services Industry. NASSCOM. www.nasscom.org
La India tiene claramente una posición privilegiada en la oferta al exterior de servicios de desarrollo de software, la variable que mayor impacto tiene es la madurez de sus procesos de desarrollo de software y su costo relativamente bajo, lo que les brinda un valor altamente competitivo y una posición ventajosa en el mercado mundial.
5. Consideraciones en el caso de Mexico
En el caso de México, el PECyT destaca el hecho de que "la inmensa mayoría de las organizaciones productivas del país se localiza en un nivel emergente (de nivel competitivo) y, como consecuencia, poseen muy limitadas capacidades de generación de valor en comparación con los niveles superiores de competitividad.
Debido a que muy pocas empresas en México han optado por una dinámica de cambio, el país cuenta con una planta productiva vulnerable. En el año 2000, de aproximadamente
2.8 millones de empresas, el 99% tienen un nivel de competitividad emergente, 3,377 cuentan con ISO 9000, 2,500 son exportadoras y menos de 300 hacen algún tipo de investigación y desarrollo.
La visión limitada respecto a la posibilidad de aspirar a un nivel competitivo de liderazgo (clase mundial), con una participación dominante en el mercado a través de productos innovadores, ha impactado negativamente en la competitividad global del país y muy importantemente, en el nivel de vida de la población" 9.
La anterior consideración, se puede afirmar con toda certeza, que es totalmente transferible, en su debida dimensión, a la situación actual de la Industria de Desarrollo de Software en México.
ANEXO 2
Marco dinámico integrado para la mejora de los procesos software
Mercedes Ruiz Carreira1, Isabel Ramos Román2, Miguel Toro Bonilla2
1Universidad de Cádiz
2Universidad de Sevilla
{isabel.ramos, miguel.toro}@lsi.us.es
Resumen: Los modelos de procesos actuales como CMM, SPICE y otros recomiendan la aplicación de control estadístico y de guías de métricas para la definición, implementación y posterior evaluación de diferentes mejoras del proceso. Sin embargo, precisamente en este contexto no se ha considerado lo suficiente el modelado cuantitativo, reconocido en otras áreas como un elemento esencial para la adquisición de conocimiento. En este trabajo se describe la base conceptual y fundamental para el desarrollo de un marco enfocado a la mejora de procesos software que combina las técnicas de estimación tradicionales con la utilización extensiva de modelos dinámicos de simulación como herramienta para asesorar en el proceso de evolución entre los diferentes niveles de madurez propuestos por el modelo de referencia CMM. Tras una introducción a los conceptos fundamentales del modelado y simulación del proceso software y la justificación para la creación de dicho marco, se abordan las cuestiones necesarias para su desarrollo, tales como el enfoque conceptual y su estructura, prestando especial atención al paradigma de desarrollo de los modelos dinámicos de simulación que le dan soporte.
Palabras clave: Mejora de procesos software, modelado y simulación del proceso software, gestión de proyectos software.
1 Simulación del proceso de desarrollo de software
Un modelo de simulación es un modelo computacional consistente en la abstracción o representación simplificada de un sistema dinámico complejo. Los modelos de simulación ofrecen como principal ventaja la posibilidad de experimentar diferentes decisiones y analizar sus resultados en sistemas donde el coste o el riesgo de una experimentación real son prohibitivos. Por otro lado, la simulación permite el análisis de sistemas de una complejidad tan elevada que resultan imposibles de representar mediante modelos estáticos.
Entre las fuentes de complejidad más frecuentes en los sistemas reales podemos citar: – Incertidumbre. Algunos sistemas se caracterizan por un grado elevado de incertidumbre. Los modelos analíticos cuentan con restricciones sobre el número y tipo de variables aleatorias que permitan modelar el riesgo y los distintos comportamientos del sistema asociados a dicha incertidumbre. Sin embargo, la simulación constituye un mecanismo mucho más flexible y, por tanto útil, para capturar y modelar la incertidumbre. – Comportamiento dinámico. Ciertos sistemas se caracterizan porque su comportamiento puede variar con el tiempo. Por ejemplo, algunas variables principales de los proyectos software como la productividad o la tasa de detección de errores toman valores diferentes conforme se avanza en el ciclo de vida. En casos como éstos, los modelos dinámicos facilitan el modelado y estudio de estas evoluciones. Las técnicas analíticas como la programación dinámica pueden dar lugar a problemas intratables cuando la complejidad del sistema es elevada. La simulación dinámica se presenta en este caso como una herramienta flexible que permite representar un amplio rango de estructuras e interacciones dinámicas. – Realimentación. Hay sistemas en los que el comportamiento y decisiones tomadas en un instante determinado repercuten sobre la evolución del proceso de diversas maneras, directas o indirectas. Por ejemplo, en un proyecto de desarrollo de software, la decisión de contratar o no más personal tiene diferentes implicaciones sobre la evolución global del proyecto. Cuando las implicaciones son diversas y complejas, los modelos analíticos son inaplicables o no resultan útiles. El objetivo común de los modelos de simulación consiste en proporcionar mecanismos para la experimentación, predicción del comportamiento, resolución de preguntas del tipo ¿Qué pasaría si …? y aprendizaje del sistema representado, entre otros.
Un modelo de simulación del proceso software se centra en determinados aspectos o procesos del desarrollo, mantenimiento o evolución de la producción de software. El modelo puede representar el proceso tal y como es actualmente en una organización o puede representar cómo se planifica que éste sea. Un aspecto fundamental que siempre hay que tener en cuenta al hablar de modelos será que estos constituyen abstracciones del sistema real. Un modelo representará solamente algunos aspectos del proceso software; aquellos que ha sido posible modelar o aquellos que resultan especialmente relevantes para una organización.
Existen un gran número de razones para aplicar la simulación al proceso software. En la mayoría de las ocasiones la simulación se comporta como una ayuda en el proceso de toma de decisiones. También favorece el estudio y disminución de los riesgos y asesora a la dirección en los niveles estratégico, táctico y operacional.
A continuación se indican las razones principales para la simulación del proceso software:
– Gestión estratégica. La simulación puede ayudar a resolver un amplio rango de cuestiones relacionadas con la gestión estratégica. Algunos ejemplos de este tipo de preguntas pueden ser: ¿Sería mejor desarrollar todo el software en la organización, o subcontratar una parte?, ¿Cuál es el impacto a largo plazo de las decisiones de contratación, formación o mejora del proceso que se toman en la actualidad? En estos casos, los modelos de simulación recogen el comportamiento de la organización en una serie de parámetros que se instancian a valores diferentes según la cuestión que se trate de resolver. Los directores de proyectos pueden comparar los resultados de los diferentes escenarios simulados obteniendo un conocimiento extra que les ayude en la toma de decisiones.
Página siguiente |